树选手3号:XGboost

今天来认识一下kaggle比赛的常胜军-XGboost(extreme gradient boosting),跟朋友聊天的时候朋友也说 XGboost根本业界爱用之一,主要的优势有:

  1. 运算速度快:模型背後用C++逻辑,training速度快
  2. 精准度高

https://ithelp.ithome.com.tw/upload/images/20210920/20142004CVAkNjL6KZ.png

XGboost也与random forest一样是种出很多棵树的算法,那两者的差异在哪呢?前两天在讲random forest的时候,我们利用了bagging的方式来建不同的树,主要就是想让每棵树互相独立学习;而XGboost的重点则是:每一棵树都会根据前一棵树不足的地方进行改良,也就是每棵树是相互有关联的! 另外在每次建树的过程XGboost采用所有资料而非部份资料。

Loss function

XGboost主要透过loss function来评断树的好坏,这里用一个分类问题常用的loss function- cross entropy,下图p是label(实际值),q是prediction(预测值),基本上若p与q相近,则loss小:
https://ithelp.ithome.com.tw/upload/images/20210920/20142004cuy8paGJ8f.png

当XGboost要新建一棵树时,会拿新的树与前一棵树以loss function做比较,去找出loss降低最多的结构,再依序下去,下图中的learning rate可以先当成一个权重就好(之後会专门写一篇gradient descent),之後learning rate也会是实际用python应用时一个重要的参数。
https://ithelp.ithome.com.tw/upload/images/20210920/20142004fjwdzs9BRe.png

To be continue.


<<:  【Day20】比较Nodelist与HTML collection的差异

>>:  【Day5】重要底层系统篇-Discuss

Day25 Vue 双向绑定 vs 单向绑定

什麽是单向绑定什麽是双向绑定?简单来说一个只有单方面的传送,另一个则是可以来回传,wow讲完了,今天...

鬼故事 - 勒索软件骇客都在干嘛

鬼故事 - 勒索软件骇客都在干嘛 本次故事感谢我的俄罗斯朋友分享生活 故事开始 小丹是一位俄罗斯人网...

[Python]专题P01─台湾春节国道预估塞车时间准不准?

Hi! 大家好久不见,我是Eric。真的是时隔多日,我们的网站终於又更新啦!这次要练习运用Pytho...

追求JS小姊姊系列 Day8 -- 郑列展现的工具力(下)

前情提要 郑列终於要展现JS喜欢的工具力了吗? 郑列:是说,有人会跟情敌聊这麽久吗? 我:........

【day15】DashboardFragment X Firestore搜寻

今天要来带大家看一下搜寻资料,Firestore最简单的方式就是直接透过get()来拿到资料,但是...