當前位置:
首頁 > 最新 > SPA 大賽:win10 python3.5.X 下開啟 lightgbm 支持

SPA 大賽:win10 python3.5.X 下開啟 lightgbm 支持

更多騰訊海量技術文章,請關注云加社區:https://cloud.tencent.com/developer

作者:祁旭翔

在數據分析的過程中,我們經常需要對數據建模並做預測。GBDT (Gradient Boosting Decision Tree) 是機器學習中一個長盛不衰的模型,其主要思想是利用弱分類器(決策樹)迭代訓練以得到最優模型,該模型具有訓練效果好、不易過擬合等優點。GBDT在工業界應用廣泛,通常被用於點擊率預測,搜索排序等任務。GBDT也是各種數據挖掘競賽的致命武器,據統計Kaggle上的比賽有一半以上的冠軍方案都是基於GBDT。

GBDT屬於集成學習模型,它基本思想是把成百上千個分類準確率較低的樹模型組合起來,成為一個準確率很高的模型。這個模型會不斷地迭代,每次迭代就生成一顆新的樹。然而Boosting分類器的速度實在是太慢了。為了解決這一問題,xgboost應運而生:xgboost最大的特點在於,它能夠自動利用CPU的多線程並行計算,同時在演算法上加以改進提高了精度。xgboost因為計算速度快,精確度高,在Kaggle和天池等數據挖掘競賽中的逐漸成為大殺器。但是去年,xgboost迎來了一個重量級挑戰者:lightGBM。

lightgbm

去年(2016年)12月,微軟開源了LightGBM,地址:https://github.com/Microsoft/LightGBM 。該項目剛開源就被受到熱捧:三天之內GitHub上被star了1000+次,fork了200+次;知乎上有近千人關注「如何看待微軟開源的LightGBM?」。接下來簡單介紹下這個號稱「性能超越其他boosting」的學習模型及其編譯和安裝方法,以及開啟python的lightgbm支持。

LightGBM全稱:Light Gradient Boosting Machine,是一個基於決策樹演算法的快速的、分散式的、高性能 gradient boosting(GBDT、GBRT、GBM 或 MART)框架,可被用於排行、分類以及其他許多機器學習任務中。

LightGBM 是一個梯度 boosting 框架,使用基於學習演算法的決策樹。它是分散式的,具有以下優勢:

更快的訓練效率

低內存使用

更好的準確率

支持並行學習

可處理大規模數據

在實際使用的過程中,給我一個最直接的感覺就是LightGBM的速度比xgboost快很多,下圖是微軟官網給出lightgbm和其他學習模型之間的比較:

原理簡介

現有的GBDT工具基本都是基於預排序的方法(pre-sorted)的決策樹演算法(如 xgboost),GBDT 雖然是個強力的模型,但卻有著一個致命的缺陷,不能用類似 mini batch 的方式來訓練,需要對數據進行無數次的遍歷。如果想要速度,就需要把數據都預載入在內存中,但這樣數據就會受限於內存的大小;如果想要訓練更多的數據,就要使用外存版本的決策樹演算法。雖然外存演算法也有較多優化,SSD 也在普及,但在頻繁的 IO 下,速度仍然比較慢。

LightGBM (Light Gradient Boosting Machine)是一個實現GBDT演算法的框架,在Histogram演算法之上,LightGBM進行進一步的優化。首先它拋棄了大多數GBDT工具使用的按層生長 (level-wise) 的決策樹生長策略,而使用了帶有深度限制的按葉子生長 (leaf-wise) 演算法。

除此之外,LightGBM還對類別特徵的支持進行了優化,可以直接輸入類別特徵,不需要額外的0/1展開,並在決策樹演算法上增加了類別特徵的決策規則。LightGBM的單機版本還有很多其他細節上的優化,比如cache訪問優化,多線程優化,稀疏特徵優化等,這就讓參賽者省去了調參和處理的麻煩。

lightgbm安裝教程:

準備:Anaconda 和VS2015。

本教程假設你已經安裝好python3.5.x和visual studio2015,然後克隆倉庫到本地:

git clone https://github.com/Microsoft/LightGBM.git

然後根據http://blog.csdn.net/testcs_dn/article/details/54176824 教程編譯dll文件和exe文件。注意配置選項一定選好,只有按照教程生成正確的dll和exe文件,才能成功安裝lightgbm python包。

然後進入到python-package目錄,筆者的目錄是:

D:lightgbmlightgbmpython-package

然後打開cmd窗口,直接執行命令:

python setup.py install

此時在cmd 輸入python,然後import lightgbm as lgb,如果不報錯,證明安裝成功!

現在最新的lightgbm python包已經更新到了0.2版本,支持sklearn的自動尋優調參,大家可以試下:

更多教程見:https://github.com/Microsoft/LightGBM/blob/master/examples/python-guide/sklearn_example.py


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲加社區 的精彩文章:

雲時代程序員的社會責任和機會

TAG:雲加社區 |