GBDT二分類V2
梯度提升決策樹 (Gradient Boosting Decision Trees) 二分類,是經(jīng)典的基于梯度提升(Gradient Boosting)的有監(jiān)督學(xué)習(xí)模型,可以用來解決二分類問題。
支持計(jì)算資源
支持的計(jì)算引擎為MaxCompute。
算法簡介
梯度提升決策樹 (Gradient Boosting Decision Trees) 二分類,是經(jīng)典的基于梯度提升(Gradient Boosting)的有監(jiān)督學(xué)習(xí)模型,可以用來解決二分類問題。
算法原理
梯度提升決策樹模型構(gòu)建了一個(gè)由多棵決策樹組成的組合模型。每一棵決策樹對應(yīng)一個(gè)弱學(xué)習(xí)器,將這些弱學(xué)習(xí)器組合在一起,可以達(dá)到比較好的分類或回歸效果。
梯度提升的基本遞推結(jié)構(gòu)為:
其中,通常為一棵 CART 決策樹,為決策樹的參數(shù),為步長。第m棵決策樹在前m-1棵決策樹的基礎(chǔ)上對目標(biāo)函數(shù)進(jìn)行優(yōu)化。最終得到包含若干棵決策樹的模型。
算法使用
該算法實(shí)現(xiàn)中包含了XGBoost提出的二階梯度優(yōu)化目標(biāo)以及LightGBM的直方圖近似計(jì)算。對于一些常見的二分類問題,都可以使用這個(gè)算法解決,模型擁有較好的性能,且擁有不錯(cuò)的可解釋性。
該算法支持稀疏向量格式與多列特征格式的輸入。輸入為稀疏向量格式時(shí),僅能選擇1個(gè)String類型的列,每條數(shù)據(jù)是以單個(gè)空格為分隔符的鍵值對,鍵值之間用冒號(hào)分隔,例如:1:0.3 3:0.9
。輸入為多列特征時(shí),可以選擇多個(gè)Double、Bigint和String的列,包括了數(shù)值型特征(numerical feature)與類別型特征(categorical feature)。對于數(shù)值型特征,算法會(huì)對數(shù)據(jù)進(jìn)行分箱操作;對于類別型特征,不需要提前進(jìn)行OneHot預(yù)處理,算法會(huì)使用 many-vs-many 的分裂策略。
該算法要求二分類的類別必須為0和1。
當(dāng)該組件與GBDT二分類預(yù)測V2組件成對執(zhí)行完成后,訓(xùn)練得到的模型支持部署為在線服務(wù),詳細(xì)操作可以參考Pipeline部署在線服務(wù)。
可視化配置參數(shù)
輸入樁配置
輸入樁(從左到右) | 限制數(shù)據(jù)類型 | 建議上游組件 | 是否必選 |
輸入數(shù)據(jù) | 無 | 是 |
組件參數(shù)
頁簽 | 參數(shù) | 是否必選 | 描述 | 默認(rèn)值 |
字段設(shè)置 | 是否為稀疏向量格式 | 否 | 輸入表中用于訓(xùn)練的特征列是否為稀疏向量格式。在稀疏向量格式中,每條數(shù)據(jù)是以單個(gè)空格為分隔符的鍵值對,鍵值之間用冒號(hào)分隔,例如: | 否 |
選擇特征列 | 是 | 輸入表中用于訓(xùn)練的特征列名數(shù)組。非稀疏向量格式時(shí),支持類型double/bigint/string;稀疏向量格式時(shí),支持string類型,并且只能選擇1列。 | 無 | |
選擇類別型特征列 | 否 | 非稀疏向量格式,選擇作為類別型特征(categorical feature)處理的列,其他列作為數(shù)值型特征處理。 | 無 | |
選擇標(biāo)簽列 | 是 | 輸入表中用于訓(xùn)練的標(biāo)簽列名。 | 無 | |
選擇權(quán)重列 | 否 | 輸入表中用于訓(xùn)練的權(quán)重列名。 | 無 | |
參數(shù)設(shè)置 | 樹的數(shù)目 | 否 | 模型中樹的棵數(shù)。 | 1 |
最大葉節(jié)點(diǎn)數(shù) | 否 | 訓(xùn)練每棵樹時(shí),最多包含的葉節(jié)點(diǎn)個(gè)數(shù)。 | 32 | |
學(xué)習(xí)速率 | 否 | 學(xué)習(xí)率。 | 0.05 | |
訓(xùn)練樣本比例 | 否 | 訓(xùn)練每棵樹時(shí),樣本的采樣比例,范圍為 (0, 1]。 | 0.6 | |
訓(xùn)練特征比例 | 否 | 訓(xùn)練每棵樹時(shí),特征的采樣比例,范圍為 (0, 1]。 | 0.6 | |
葉節(jié)點(diǎn)最少樣本數(shù) | 否 | 訓(xùn)練每個(gè)樹時(shí),各個(gè)葉子節(jié)點(diǎn)至少包含的樣本數(shù)量。 | 500 | |
最大分箱個(gè)數(shù) | 否 | 連續(xù)特征進(jìn)行離散分箱時(shí)的最大分箱個(gè)數(shù)。該值越大,進(jìn)行節(jié)點(diǎn)分裂時(shí)越精確,但計(jì)算代價(jià)越大。 | 32 | |
最多類別數(shù) | 否 | 類別型特征最多允許的類別個(gè)數(shù):對于一個(gè)類別型特征,所有出現(xiàn)的值按頻率從高到低排序后,序位多于該值的類別將合并到一個(gè)桶中。該值越大,進(jìn)行節(jié)點(diǎn)分裂時(shí)越精確,但也更容易過擬合,計(jì)算代價(jià)也越大。 | 1024 | |
特征數(shù)量 | 否 | 稀疏特征時(shí),填寫最大特征ID+1;不填寫時(shí)需要掃描一遍數(shù)據(jù)計(jì)算。 | 根據(jù)輸入數(shù)據(jù)自動(dòng)計(jì)算 | |
全局偏置項(xiàng) | 否 | 初始預(yù)測為正樣本的概率值;不填寫時(shí)需要掃描一遍數(shù)據(jù)進(jìn)行預(yù)估。 | 根據(jù)輸入數(shù)據(jù)自動(dòng)計(jì)算 | |
隨機(jī)數(shù)產(chǎn)生器種子 | 否 | 隨機(jī)種子,用于采樣。 | 0 | |
執(zhí)行調(diào)優(yōu) | 底層作業(yè)使用的計(jì)算資源 | 否 | 底層作業(yè)使用的計(jì)算資源:
| MaxCompute |
節(jié)點(diǎn)數(shù) | 否 | 執(zhí)行作業(yè)的節(jié)點(diǎn)數(shù)。 | 根據(jù)輸入數(shù)據(jù)自動(dòng)計(jì)算 | |
每節(jié)點(diǎn)內(nèi)存 | 否 | 節(jié)點(diǎn)所使用的內(nèi)存數(shù),單位為MB。 | 根據(jù)輸入數(shù)據(jù)自動(dòng)計(jì)算 | |
線程數(shù) | 否 | 使用多線程加速計(jì)算,但成本也更高;一般情況下,隨著線程數(shù)的增加,性能會(huì)先上升后下降;請謹(jǐn)慎調(diào)整線程數(shù)。 | 1 |
輸出樁說明
輸出樁 | 存儲(chǔ)位置 | 下游建議組件 | 數(shù)據(jù)類型 |
模型輸出 | 不需要配置 | MaxCompute表 | |
特征重要性輸出 | 不需要配置 | 無 | MaxCompute表 |
與PS-SMART二分類對比
如果您之前使用PS-SMART二分類訓(xùn)練組件遇到了一些問題不容易解決,那么可以嘗試使用GBDT二分類V2組件。兩個(gè)組件當(dāng)前的功能和參數(shù)支持情況,見下表:
PS-SMART二分類參數(shù) | 對應(yīng)本組件的參數(shù) |
是否稀疏格式 | 是否為稀疏向量格式 |
選擇特征列 | 選擇特征列 |
選擇標(biāo)簽列 | 選擇標(biāo)簽列 |
選擇權(quán)重列 | 選擇權(quán)重列 |
評估指標(biāo)類型 | 不適用,默認(rèn)為 AUC 指標(biāo),可以在 worker 日志中查看。 |
樹數(shù)量 | 樹的數(shù)目 |
樹最大深度 | 最大葉節(jié)點(diǎn)數(shù):換算公式為: |
數(shù)據(jù)采樣比例 | 訓(xùn)練樣本比例 |
特征采樣比例 | 訓(xùn)練特征比例 |
L1懲罰項(xiàng)系數(shù) | 暫不支持。 |
L2懲罰項(xiàng)系數(shù) | 暫不支持。 |
學(xué)習(xí)速率 | 學(xué)習(xí)速率 |
近似Sketch精度 | 最大分箱個(gè)數(shù):換算公式為: |
最小分裂損失變化 | 葉節(jié)點(diǎn)最少樣本數(shù):兩者不能直接換算,但都可用于控制過擬合。 |
特征數(shù)量 | 特征數(shù)量 |
全局偏置項(xiàng) | 全局偏置項(xiàng) |
隨機(jī)數(shù)產(chǎn)生器種子 | 隨機(jī)數(shù)產(chǎn)生器種子 |
特征重要性類型 | 不適用,當(dāng)前默認(rèn)為信息增益。 |
計(jì)算核心數(shù) | 節(jié)點(diǎn)數(shù):不能直接使用相同數(shù)值,推薦先試用系統(tǒng)自動(dòng)分配,然后進(jìn)行細(xì)調(diào)。 |
每個(gè)核內(nèi)存大小 | 每節(jié)點(diǎn)內(nèi)存:不能直接使用相同數(shù)值,推薦先試用系統(tǒng)自動(dòng)分配,然后進(jìn)行細(xì)調(diào)。 |