近日,apachecn 開放了 xgboost 中文文件專案,該專案提供了 xgboost 相關的安裝步驟、使用教程和調參技巧等中文內容。該專案目前已完成原英文文件 90% 的內容,機器之心簡要介紹了該文件並希望各位讀者共同完善它。梯度提公升樹已經在實踐中證明可以有效地用於分類和回歸任務的**挖掘。之前我們所選擇的提公升樹演算法一直都是 mart(multiple additive regression tree)。但從 2015 年開始,一種新的且總是獲勝的演算法浮出了水面:xgboost。這種演算法重新實現了樹提公升,並在 kaggle 和其它資料科學競賽中屢獲佳績,因此受到了人們的歡迎。
在介紹陳天奇等人提出的 xgboost 之前,我們需要先了解一些關於提公升方法的概念。首先提公升方法是一種使用多個更簡單的模型來擬合資料的學習演算法,它所用的這些更簡單的模型也被稱為基本學習器(base learner)或弱學習器(weak learner)。它通過改變訓練樣本的權重而學習多個分類器,並將這些分類器進行線性組合以提公升分類效能。
對於 adaboost 演算法來說,提高那些被前一輪弱分類器錯誤分類樣本的權重,而降低那些被正確分類樣本的全職。這樣,那些沒有得到正確分類的資料,由於權重的加大而受到後一輪的弱分類器的更大關注,因此分類問題就被一些列弱分類器分而治之。
若我們將提公升演算法與樹方法結合起來,就能構建提公升樹演算法,它在很多 kaggle 競賽中都能得到十分優秀的結果。提公升後的樹模型可以看作是自適應基函式模型,其中的基函式是分類回歸樹。提公升樹模型是多個樹模型的和,所以也被稱為樹整合或加性樹模型(additive tree model)。一般來說,提公升樹往往使用很淺的分類回歸樹,即僅有少數葉結點的回歸樹。相對於更深度的樹,這樣的方差較低,但偏差更大。
因此,在提公升樹模型(即自適應的確定鄰域)的幫助下,mart 和 xgboost 一般可以比其它方法實現更好的擬合。它們可以執行自動特徵選擇並且獲取高階互動,而不會出現崩潰。
通過比較 mart 和 xgboost,儘管 mart 確實為所有樹都設定了相同數量的葉結點,但 xgboost 通過設定 tmax 和乙個正則化引數而使樹變得更深,且同時仍然讓方差保持很低。相比於 mart 的梯度提公升,xgboost 所使用的牛頓提公升很有可能能夠學習到更好的結構。xgboost 還包含乙個額外的隨機化引數,即列子取樣,這有助於進一步降低每個樹的相關性。
因此總而言之,xgboost 在很多方面都優於一般的 mart 演算法,它帶來了一種改進提公升樹的新方法。
在最近的 apachecn 專案中,他們開放了乙份 xgboost 中文文件:可伸縮且靈活的梯度提公升。
該專案不僅包含完整的安裝指南:
該頁面提供了有關如何在各種作業系統上構建和安裝 xgboost 軟體包的說明. 由如下兩個步驟組成:
1. 首先, 從 c++ **中構建共享庫(針對 linux/osx 的是 libxgboost.so 然後針對 windows 的是 libxgboost.dll).
2. 然後, 安裝相關的程式語言軟體包(例如. python 軟體包).
git clone --recursive
針對使用 github 工具的 windows 使用者, 可以開啟 git shell, 然後輸入以下命令.
git submodule init
git submodule update
如果你在安裝期間有任何問題, 請首先參考 故障排除部分. 如果其中的說明不適合你, 請放心的到 xgboost-doc-zh/issues 上提問題, 或者如果你能解決該問題, 最好發起乙個 pull request.
安裝頁面內容目錄
在 ubuntu/debian 上構建
在 osx 上構建
在 windows 上構建
自定義構建
除了安裝外,學習教程頁面還介紹了提公升樹、aws 上的分布式 xgboost yarn 和 dart booster。這三個教程都有詳細的推導或實現步驟,是 xgboost 包中的官方教程。
在我們正式使用 xgboost 時,還有很重要的步驟就是引數調整。該文件的引數調整部分介紹了如何理解 bias-variance(偏差-方差)權衡、控制過擬合和處理不平衡的資料集等方面。
此外,本文件還提供了非常重要的 xgboost 執行過程,包括 libsvm 文字格式、numpy 2 維陣列和 xgboost 二進位制快取檔案等資料介面,引數設定、訓練過程、**和繪圖等方法。以下是使用 python 的概要:
import xgboost as xgb
# 讀取資料
dtrain = xgb.dmatrix('demo/data/agaricus.txt.train')
dtest = xgb.dmatrix('demo/data/agaricus.txt.test')
# 通過 map 指定引數
param =
num_round = 2
bst = xgb.train(param, dtrain, num_round)
# **
preds = bst.predict(dtest)
Pentaho bi 中文文件
目錄 building and debugging pentaho with eclipse zh cn 1.5.4 getting started with the bi platform zh cn 1.5.4 pentaho building components 1.5.4 pentaho ...
vim 中文文件
安裝中文幫助文件之前首先執行下列操作 在home目錄下列新建資料夾 vim vim是乙個隱藏檔案,不要漏了 vim plugin vim目錄下的plugin資料夾 vim doc vim目錄下的doc資料夾 vim syntax vim目錄下的syntax資料夾 在home目錄下新建隱藏檔案 vim...
sklearn中文文件
apachecn cwiki 位址為 scikit learn 0.18 中文文件 sklearn 基於 python 語言的,簡單高效的資料探勘和資料分析工具,建立在 numpy,scipy 和 matplotlib 上。以下是 sklearn 官方文件中文版,如果你也有興趣,歡迎來一起來維護迭代...