全文的技術實現分為兩部分。
顯然,xgboost是壹個非線性加法模型。
如果是回歸問題,可能是:?
?
?而分類問題應該是交叉熵,這裏:
兩個分類問題:
多分類問題:
這裏復習壹下,對於多分類和二分類,交叉熵和軟公式,二分類是多分類的特例。
:
:
原描述:默認方向,我理解應該是:每次叠代,每棵樹都要對待同方向缺失的壹個特征,但是不同特征的缺失方向是隨機的;不同的叠代子樹有隨機策略。
在建樹的過程中,最耗時的就是尋找最優分割點,而這個過程中最耗時的部分就是對數據進行排序。為了減少排序時間,Xgboost使用塊結構存儲數據(每個塊中的數據以壓縮列(CSC)格式存儲,每列按相關特征值排序)?
對於近似算法,Xgboost使用多個塊,這些塊存在於多個機器或磁盤上。每個塊對應於原始數據的壹個子集。不同的塊可以在不同的機器上計算。這種方法對於局部策略特別有效,因為局部策略每次分支時都會重新生成候選切分點。
使用塊結構的壹個缺點是,在取梯度時,是按索引獲取的,獲取這些梯度的順序是按照特征的大小來的。這會導致內存訪問不連續,可能會使CPU緩存的緩存命中率較低,從而影響算法效率。
在非近似貪婪算法中?使用緩存感知預取。具體來說,給每個線程分配壹個連續的緩沖區,讀取梯度信息並存儲在緩沖區中(從而實現由不連續到連續的轉變),然後統計梯度信息。
在近似算法中,合理地設置了塊的大小。將塊的大小定義為塊中的最大樣本數。設定壹個合適的尺寸是非常重要的。過大容易導致命中率低,過小容易導致並行化效率低。通過實驗發現2 16較好。
當數據量太大而無法放入主存時,為了使核外計算成為可能,數據被分成多個塊存儲在磁盤上。計算時,使用獨立線程將塊提前放入主存,這樣可以邊計算邊讀盤。但由於磁盤IO速度太慢,通常沒有計算速度快。所以要提高磁盤IO的銷量。Xgboost采用兩種策略:
塊壓縮:按列壓縮塊(LZ4壓縮算法?),閱讀時用另壹個線程解壓。對於行索引,只保存第壹個索引值,然後只保存數據和第壹個索引值之間的偏移量,用16位保存壹個* * *位。
因此,壹個塊壹般有16個2的樣本。
塊分片:將數據劃分到不同的磁盤中,為每個磁盤分配壹個預取線程,並將數據提取到內存緩沖區中。然後,訓練線程交替從每個緩沖區讀取數據。當有多個磁盤可用時,這有助於提高磁盤讀取的吞吐量。
[1] ?r .貝克曼。KDD杯比賽的現在和未來:壹個局外人的觀點。(XG boost應用程序)
[2] ?貝克曼、比連科和蘭福德。?擴大機器學習:並行和分布式方法。美國紐約州紐約市劍橋大學出版社,2011。(並行分布式設計)
[3] ?班奈特和朗寧。網飛獎。在?2007年KDD杯研討會程序,第3–6頁,紐約州,2007年8月。(XG Boost應用程序)
[4] ?布萊曼。隨機森林。?機械加工學習,45(1):5–32,2006年10月5438+0。(布雷曼的隨機森林論文)
[5] ?伯吉斯。從蘭克內到蘭達蘭克到蘭達馬特:概述。?學習,11:23–581,2010。
[6] ?O. Chapelle和Y. Chang。雅虎!學習排列挑戰概述。?機器學習研究雜誌。CP,14:1–24,2011。(XG Boost應用程序)
[7] ?陳廷驊,李,楊,余。使用梯度推進的壹般函數矩陣分解。在?進行
第30屆機器學習國際會議(通用的矩陣分解是通過梯度提升實現的)。
(ICML 13),第1卷,第436–444頁,2013頁。
[8] T .陳、s .辛格、b .塔斯卡爾和c .蓋斯特林。高效的
條件隨機場的二階梯度增強。在?18人工智能與統計會議論文集(AI Stats' 15),第1卷,2015。(具有二次衍生增強的條件隨機場)
[9]範若英、張國威、謝振傑、王希瑞和林振傑。LIBLINEAR:大型線性分類庫。?機器學習研究雜誌,9:1871–1874,2008。(XG Boost應用程序)
j·弗裏德曼。貪婪函數逼近:梯度推進機。?統計年鑒,29(5):1189–1232,2001。(GBM的貪婪算法)
j .弗裏德曼。隨機梯度增強。?計算統計學與數學。數據分析,38(4):367–378,2002。
(隨機梯度下降)
[12] J .弗裏德曼、t .哈斯蒂和r .蒂布拉尼。加法邏輯回歸:助推的統計觀點。?統計年鑒,28(2):337–407,2000年。(重疊邏輯回歸)
J.H .弗裏德曼和B.E .波佩斯庫。2003年重要抽樣學習集合。(抽樣學習)
格林沃爾德先生和卡納先生。有效利用空間的分位數匯總在線計算。在?2001 ACM SIGMOD數據管理國際會議論文集,第58–66頁,2001。
[15] X .何,j .潘,o .金,t .徐,b .劉,t .徐,y .石,
A.阿塔拉,r .赫布裏希,s .鮑爾斯和J. Q. n .坎德拉。預測facebook廣告點擊量的實踐經驗。在?
第八屆在線廣告數據挖掘國際研討會程序,dkdd' 14,2014。(XG Boost應用程序)
李。健壯的Logitboost和自適應基類(ABC) Logitboost。在?第26屆人工智能不確定性年會會議錄(UAI'10),第302–311,2010頁。(logitboost)
[17] P .李,q .吳和C. J .伯格斯。Mcrank:學習使用多重分類和梯度推進進行排序。在?神經信息處理系統進展20,897-904頁,2008。(多分類應用)
[18] X .孟,j .布拉德利,b .亞武茲,e .斯帕克斯,
南文卡塔拉曼,劉,弗裏曼,蔡,阿姆德,歐文,辛,
米(meter的縮寫))紮哈裏亞和塔沃卡。ml lib:Apache spark中的機器學習。?
機器學習研究雜誌,17(34):1–7,2016。(分布式機器學習設計)
B. Panda、J. S. Herbach、S. Basu和R. J. Bayardo。Planet:用mapreduce大規模並行學習樹集合。?VLDB耐力賽論文集,2(2):1426–1437,2009年8月。(分布式機器學習設計)
[20] F. Pedregosa,G. Varoquaux,A. Gramfort,V. Michel
B.Thirion,O. Grisel,M. Blondel,P. Prettenhofer,
R.放大圖片作者:Jeffrey w .
D.庫爾納波,m .布魯徹,m .佩羅特和e .杜斯奈。sci kit-learn:Python中的機器學習。?
機器學習研究雜誌,12:2825–2830,2011。(sklearn)
g .裏奇韋。?廣義增強模型:gbm軟件包指南。
[22] S. Tyree、K. Weinberger、K. Agrawal和J. Paykin。用於網頁搜索排序的並行增強回歸樹。在?第20屆萬維網國際會議論文集,387-396頁。ACM,2011。
[23]葉俊傑、周俊輝、陳俊傑和鄭誌軍。隨機梯度推進的分布式決策樹。在?CIKM’09第18屆美國計算機學會信息與知識管理會議錄。
[24]章啟月、王文偉。高速數據流中近似分位數的快速算法。在?2007年第19屆科學與統計數據庫管理國際會議程序。(數據處理的加速計算)
25t .張和r .約翰遜。利用正則化貪婪森林學習非線性函數。?IEEE模式分析和機器智能匯刊,36(5),2014。