gbdt(gradient boosting decision tree),全名叫梯度提公升決策樹,使用的是boosting的思想。
boosting方法訓練基分類器時採用序列的方式,各個基分類器之間有依賴。它的基本思路是將基分類器層層疊加,每一層在訓練的時候,對前一層基分類器分錯的樣本,給予更高的權重。測試時,根據各層分類器的結果的加權得到最終結果。
bagging與boosting的序列訓練方式不同,bagging方法在訓練過程中,各基分類器之間無強依賴,可以進行並行訓練。
gbdt的原理很簡單,就是所有弱分類器的結果相加等於**值,然後下乙個弱分類器去擬合誤差函式對**值的殘差(這個殘差就是**值與真實值之間的誤差)。當然了,它裡面的弱分類器的表現形式就是各棵樹。
舉乙個非常簡單的例子,比如我今年20歲了,但計算機或者模型gbdt並不知道我今年多少歲,那gbdt咋辦呢?
它會在第乙個弱分類器(或第一棵樹中)隨便用乙個年齡比如10歲來擬合,然後發現誤差有10歲;
接下來在第二棵樹中,用6歲去擬合剩下的損失,發現差距還有4歲;
接著在第三棵樹中用3歲擬合剩下的差距,發現差距只有1歲了;
最後在第四課樹中用1歲擬合剩下的殘差,完美。
最終,四棵樹的結論加起來,就是真實年齡20歲(實際工程中,gbdt是計算負梯度,用負梯度近似殘差)。
xgboost全稱是extreme gradient boosting,可譯為極限梯度提公升演算法。它由陳天奇所設計,致力於讓提公升樹突破自身的計算極限,以實現運算快速,效能優秀的工程目標。和傳統的梯度提公升演算法相比,xgboost進行了許多改進,它能夠比其他使用梯度提公升的整合演算法更加快速,並且已經被認為是在分類和回歸上都擁有超高效能的先進評估器。除了比賽之中,高科技行業和資料諮詢等行業也已經開始逐步使用xgboost,了解這個演算法,已經成為學習機器學習中必要的一環。
除了演算法上與傳統的gbdt有一些不同外,xgboost還在工程實現上做了大量的優化。總的來說,兩者之間的區別和聯絡可以總結成以下幾個方面。
gbdt是機器學習演算法,xgboost是該演算法的工程實現。
在使用cart作為基分類器時,xgboost顯式地加入了正則項來控制模 型的複雜度,有利於防止過擬合,從而提高模型的泛化能力。
gbdt在模型訓練時只使用了代價函式的一階導數資訊,xgboost對代 價函式進行二階泰勒展開,可以同時使用一階和二階導數。
傳統的gbdt採用cart作為基分類器,xgboost支援多種型別的基分類 器,比如線性分類器。
傳統的gbdt在每輪迭代時使用全部的資料,xgboost則採用了與隨機 森林相似的策略,支援對資料進行取樣。
傳統的gbdt沒有設計對缺失值進行處理,xgboost能夠自動學習出缺 失值的處理策略。
lightgbm是什麼東東??
不久前微軟dmtk(分布式機器學習工具包)團隊在github上開源了效能超越其他boosting工具的lightgbm,在三天之內github上被star了1000次,fork了200次。知乎上有近千人關注「如何看待微軟開源的lightgbm?」問題,被評價為「速度驚人」,「非常有啟發」,「支援分布式」,「**清晰易懂」,「占用記憶體小」等。
lightgbm (light gradient boosting machine)(是乙個實現gbdt演算法的框架,支援高效率的並行訓練。
lightgbm在higgs資料集上lightgbm比xgboost快將近10倍,記憶體佔用率大約為xgboost的1/6,並且準確率也有提公升。gbdt在每一次迭代的時候,都需要遍歷整個訓練資料多次。如果把整個訓練資料裝進記憶體則會限制訓練資料的大小;如果不裝進記憶體,反覆地讀寫訓練資料又會消耗非常大的時間。尤其面對工業級海量的資料,普通的gbdt演算法是不能滿足其需求的。
lightgbm提出的主要原因就是為了解決gbdt在海量資料遇到的問題,讓gbdt可以更好更快地用於工業實踐。
lightgbm在哪些地方進行了優化 (區別xgboost)?
基於histogram的決策樹演算法
帶深度限制的leaf-wise的葉子生長策略
直方圖做差加速直接
支援類別特徵(categorical feature)
cache命中率優化
基於直方圖的稀疏特徵優化多執行緒優化。
DW資料探勘學習(三)
趨勢項 週期項 季節項 隨機項 為延遲運算元,1 為差分多項式 1 b 為自回歸多項式 b 1 為滑動平均多項式?1 1?模型假定與arma模型一致 提取is特徵包括 3.2.2.1距離特徵提取 3.2.2.2波峰波谷特徵 繪製購買贖回月時序圖,觀察波峰波谷規律,並確定波峰波谷日期 3.2.2.3加...
DW學習筆記
1.標題標籤 標題1h1 1通常用於主標題 字型大小逐級變小 它是塊元素會自動換行 標題1h2 標題1h3 標題1h4 標題1h5 標題1h6 2.段落標籤 通常用於乙個段落 它是塊元素 會自動換行 並且存在一定的上邊距屬性 3.換行標籤 這是乙個單標籤 用在乙個段落中換行,另起一行 要注意的是不能...
資料探勘學習(一)
資料探勘 從大量資料中抽取出 隱含的 有潛在用途的 未知的 人們可以理解的 有價值的資訊和模式的過程。2.建立目標資料集 資料選擇 3.資料清理和預處理 4.資料簡化和變形 5.選擇資料探勘功能 6.選擇資料探勘演算法 7.資料探勘 尋找有趣的模式 8.模式評估和知識展示 9.知識發現的使用 方法 ...