溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么使用CatBoost進(jìn)行快速梯度提升

發(fā)布時間:2021-12-21 18:05:40 來源:億速云 閱讀:154 作者:柒染 欄目:大數(shù)據(jù)

本篇文章給大家分享的是有關(guān)怎么使用CatBoost進(jìn)行快速梯度提升,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

我們將仔細(xì)研究一個名為CatBoost的梯度增強(qiáng)庫。

在梯度提升中,預(yù)測是由一群弱學(xué)習(xí)者做出的。與為每個樣本創(chuàng)建決策樹的隨機(jī)森林不同,在梯度增強(qiáng)中,樹是一個接一個地創(chuàng)建的。模型中的先前樹不會更改。前一棵樹的結(jié)果用于改進(jìn)下一棵樹。在本文中,我們將仔細(xì)研究一個名為CatBoost的梯度增強(qiáng)庫。

怎么使用CatBoost進(jìn)行快速梯度提升

CatBoost 是Yandex開發(fā)的深度方向梯度增強(qiáng)庫 。它使用遺忘的決策樹來生成平衡樹。相同的功能用于對樹的每個級別進(jìn)行左右拆分。

(CatBoost官方鏈接:https://github.com/catboost)

怎么使用CatBoost進(jìn)行快速梯度提升

與經(jīng)典樹相比,遺忘樹在CPU上實(shí)現(xiàn)效率更高,并且易于安裝。

處理分類特征

 在機(jī)器學(xué)習(xí)中處理分類的常見方法是單熱編碼和標(biāo)簽編碼。CatBoost允許您使用分類功能,而無需對其進(jìn)行預(yù)處理。

使用CatBoost時,我們不應(yīng)該使用一鍵編碼,因?yàn)檫@會影響訓(xùn)練速度以及預(yù)測質(zhì)量。相反,我們只需要使用cat_features 參數(shù)指定分類特征即可 。

使用CatBoost的優(yōu)點(diǎn)

 以下是考慮使用CatBoost的一些原因:

  • CatBoost允許在多個GPU上訓(xùn)練數(shù)據(jù)。

  • 使用默認(rèn)參數(shù)可以提供很好的結(jié)果,從而減少了參數(shù)調(diào)整所需的時間。

  • 由于減少了過度擬合,因此提高了精度。

  • 使用CatBoost的模型應(yīng)用程序進(jìn)行快速預(yù)測。

  • 經(jīng)過訓(xùn)練的CatBoost模型可以導(dǎo)出到Core ML進(jìn)行設(shè)備上推理(iOS)。

  • 可以在內(nèi)部處理缺失值。

  • 可用于回歸和分類問題。

訓(xùn)練參數(shù)

 讓我們看一下CatBoost中的常用參數(shù):

  • loss_function 別名為 objective -用于訓(xùn)練的指標(biāo)。這些是回歸指標(biāo),例如用于回歸的均方根誤差和用于分類的對數(shù)損失。

  • eval_metric —用于檢測過度擬合的度量。

  • iterations -待建的樹的最大數(shù)量,默認(rèn)為1000。別名是 num_boost_round, n_estimators和 num_trees

  • learning_rate 別名 eta -學(xué)習(xí)速率,確定模型將學(xué)習(xí)多快或多慢。默認(rèn)值通常為0.03。

  • random_seed 別名 random_state —用于訓(xùn)練的隨機(jī)種子。

  • l2_leaf_reg 別名 reg_lambda —成本函數(shù)的L2正則化項(xiàng)的系數(shù)。默認(rèn)值為3.0。

  • bootstrap_type —確定對象權(quán)重的采樣方法,例如貝葉斯,貝努利,MVS和泊松。

  • depth —樹的深度。

  • grow_policy —確定如何應(yīng)用貪婪搜索算法。它可以是 SymmetricTree, Depthwise或 Lossguide。 SymmetricTree 是默認(rèn)值。在中 SymmetricTree,逐級構(gòu)建樹,直到達(dá)到深度為止。在每個步驟中,以相同條件分割前一棵樹的葉子。當(dāng) Depthwise 被選擇,一棵樹是內(nèi)置一步步驟,直到指定的深度實(shí)現(xiàn)。在每個步驟中,將最后一棵樹級別的所有非終端葉子分開。使用導(dǎo)致最佳損失改善的條件來分裂葉子。在中 Lossguide,逐葉構(gòu)建樹,直到達(dá)到指定的葉數(shù)。在每個步驟中,將損耗改善最佳的非終端葉子進(jìn)行拆分

  • min_data_in_leaf 別名 min_child_samples —這是一片葉子中訓(xùn)練樣本的最小數(shù)量。此參數(shù)僅與 Lossguide 和 Depthwise 增長策略一起使用。

  • max_leaves alias  num_leaves —此參數(shù)僅與Lossguide 策略一起使用, 并確定樹中的葉子數(shù)。

  • ignored_features —表示在培訓(xùn)過程中應(yīng)忽略的功能。

  • nan_mode —處理缺失值的方法。選項(xiàng)包括 Forbidden,  Min,和 Max。默認(rèn)值為 Min。當(dāng) Forbidden 使用時,缺失值導(dǎo)致錯誤的存在。使用 Min,缺少的值將作為該功能的最小值。在中 Max,缺失值被視為特征的最大值。

  • leaf_estimation_method —用于計算葉子中值的方法。在分類中,使用10 Newton 次迭代。使用分位數(shù)或MAE損失的回歸問題使用一次 Exact 迭代。多分類使用一次 Netwon 迭代。

  • leaf_estimation_backtracking —在梯度下降過程中使用的回溯類型。默認(rèn)值為 AnyImprovement。 AnyImprovement 減小下降步長,直至損失函數(shù)值小于上次迭代的值。 Armijo 減小下降步長,直到滿足 Armijo條件 。

  • boosting_type —加強(qiáng)計劃。它可以plain 用于經(jīng)典的梯度增強(qiáng)方案,也可以 用于或 ordered,它在較小的數(shù)據(jù)集上可以提供更好的質(zhì)量。

  • score_function — 分?jǐn)?shù)類型, 用于在樹構(gòu)建過程中選擇下一個拆分。 Cosine 是默認(rèn)選項(xiàng)。其他可用的選項(xiàng)是 L2, NewtonL2和 NewtonCosine。

  • early_stopping_rounds —當(dāng)時 True,將過擬合檢測器類型設(shè)置為, Iter 并在達(dá)到最佳度量時停止訓(xùn)練。

  • classes_count —多重分類問題的類別數(shù)。

  • task_type —使用的是CPU還是GPU。CPU是默認(rèn)設(shè)置。

  • devices —用于訓(xùn)練的GPU設(shè)備的ID。

  • cat_features —具有分類列的數(shù)組。

  • text_features -用于在分類問題中聲明文本列。

回歸示例

 CatBoost在其實(shí)施中使用scikit-learn標(biāo)準(zhǔn)。讓我們看看如何將其用于回歸。

與往常一樣,第一步是導(dǎo)入回歸器并將其實(shí)例化。

怎么使用CatBoost進(jìn)行快速梯度提升

擬合模型時,CatBoost還可以通過設(shè)置來使用戶可視化 plot=true

怎么使用CatBoost進(jìn)行快速梯度提升

怎么使用CatBoost進(jìn)行快速梯度提升

它還允許您執(zhí)行交叉驗(yàn)證并使過程可視化:

怎么使用CatBoost進(jìn)行快速梯度提升

怎么使用CatBoost進(jìn)行快速梯度提升

同樣,您也可以執(zhí)行網(wǎng)格搜索并將其可視化:

怎么使用CatBoost進(jìn)行快速梯度提升

怎么使用CatBoost進(jìn)行快速梯度提升

怎么使用CatBoost進(jìn)行快速梯度提升

怎么使用CatBoost進(jìn)行快速梯度提升

怎么使用CatBoost進(jìn)行快速梯度提升

怎么使用CatBoost進(jìn)行快速梯度提升

以上就是怎么使用CatBoost進(jìn)行快速梯度提升,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI