XGBoost淺入淺出

2021-07-28 11:43:26 字數 920 閱讀 8708

** 

xgboost風靡kaggle、天池、datacastle、kesci等國內外資料競賽平台,是比賽奪冠的必備大殺器。我在之前參加過的一些比賽中,著實領略了其威力,也取得不少好成績。如果把資料競賽比作金庸筆下的武林,那麼xgboost可謂屠龍刀,號令天下,莫敢不從!倚天不出,誰與爭鋒?

xgboost工具很多人都會用,但卻很少有人知道其原理,在我寫這篇文章之前,我也是一知半解,前陣子假期就抽空看了一下xgboost的**,了解了更多的細節,當然我不敢保證自己的理解完全正確,也有一些細節還沒搞明白,特別是xgboost工具的工程實現方面的內容,讀的時候大多略過了。

這篇文章還在初稿中,本來沒打算寫的,但是前幾天在知乎上看到乙個相關的問題「機器學習演算法中gbdt和xgboost的區別有哪些?」,就手癢回答了一下。這篇文章就先記錄一下該問題下我的回答,以及過去我總結的對xgboost的使用經驗。等之後有空了,系統地總結gbdt以及xgboost。

看了陳天奇大神的文章和slides,略抒己見,沒有面面俱到,不恰當的地方歡迎討論:

**********===

其中正則項控制著模型的複雜度,包括了葉子節點數目t和leaf score的l2模的平方:

那這個跟剪枝有什麼關係呢???

跳過一系列推導,我們直接來看xgboost中樹節點**時所採用的公式:

這個公式形式上跟id3演算法(採用entropy計算增益) 、cart演算法(採用gini指數計算增益) 是一致的,都是用**後的某種值 減去 **前的某種值,從而得到增益。為了限制樹的生長,我們可以加入閾值,當增益大於閾值時才讓節點**,上式中的gamma即閾值,它是正則項裡葉子節點數t的係數,所以xgboost在優化目標函式的同時相當於做了預剪枝。另外,上式中還有乙個係數lambda,是正則項裡leaf score的l2模平方的係數,對leaf score做了平滑,也起到了防止過擬合的作用,這個是傳統gbdt裡不具備的特性。

XGBoost淺入淺出

xgboost風靡kaggle 天池 datacastle kesci等國內外資料競賽平台,是比賽奪冠的必備大殺器。我在之前參加過的一些比賽中,著實領略了其威力,也取得不少好成績。如果把資料競賽比作金庸筆下的武林,那麼xgboost可謂屠龍刀,號令天下,莫敢不從!倚天不出,誰與爭鋒?xgboost工...

淺入淺出dubbo

只是乙個框架 hibernate是持久層框架,springmvc是mvc的框架,而dubbo是分布式服務框架。是框架而不是服務 所以不是像tomcat或memcached可以單獨啟動,它必須依附於應用才有意義。引入dubbo.jar的應用,並完成適合的配置後,這個應用就成為了dubbo應用。前面說了...

CSS 之 淺入淺出

css,層疊樣式表 英語 cascading style sheets,簡寫css 又稱串樣式列表 層次結構式樣式表檔案,一 種用來為結構化文件 如html文件或xml應用 新增樣式 字型 間距和顏色等 的計算機語言。層疊 是指乙個 檔案的樣式可以從其他的樣式表中繼承下來。讀者在有些地方可以使用他自...