您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關怎么使用CatBoost進行快速梯度提升,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
我們將仔細研究一個名為CatBoost的梯度增強庫。
在梯度提升中,預測是由一群弱學習者做出的。與為每個樣本創建決策樹的隨機森林不同,在梯度增強中,樹是一個接一個地創建的。模型中的先前樹不會更改。前一棵樹的結果用于改進下一棵樹。在本文中,我們將仔細研究一個名為CatBoost的梯度增強庫。
CatBoost 是Yandex開發的深度方向梯度增強庫 。它使用遺忘的決策樹來生成平衡樹。相同的功能用于對樹的每個級別進行左右拆分。
(CatBoost官方鏈接:https://github.com/catboost)
與經典樹相比,遺忘樹在CPU上實現效率更高,并且易于安裝。
在機器學習中處理分類的常見方法是單熱編碼和標簽編碼。CatBoost允許您使用分類功能,而無需對其進行預處理。
使用CatBoost時,我們不應該使用一鍵編碼,因為這會影響訓練速度以及預測質量。相反,我們只需要使用cat_features
參數指定分類特征即可 。
以下是考慮使用CatBoost的一些原因:
CatBoost允許在多個GPU上訓練數據。
使用默認參數可以提供很好的結果,從而減少了參數調整所需的時間。
由于減少了過度擬合,因此提高了精度。
使用CatBoost的模型應用程序進行快速預測。
經過訓練的CatBoost模型可以導出到Core ML進行設備上推理(iOS)。
可以在內部處理缺失值。
可用于回歸和分類問題。
讓我們看一下CatBoost中的常用參數:
loss_function
別名為 objective
-用于訓練的指標。這些是回歸指標,例如用于回歸的均方根誤差和用于分類的對數損失。
eval_metric
—用于檢測過度擬合的度量。
iterations
-待建的樹的最大數量,默認為1000。別名是 num_boost_round
, n_estimators
和 num_trees
。
learning_rate
別名 eta
-學習速率,確定模型將學習多快或多慢。默認值通常為0.03。
random_seed
別名 random_state
—用于訓練的隨機種子。
l2_leaf_reg
別名 reg_lambda
—成本函數的L2正則化項的系數。默認值為3.0。
bootstrap_type
—確定對象權重的采樣方法,例如貝葉斯,貝努利,MVS和泊松。
depth
—樹的深度。
grow_policy
—確定如何應用貪婪搜索算法。它可以是 SymmetricTree
, Depthwise
或 Lossguide
。 SymmetricTree
是默認值。在中 SymmetricTree
,逐級構建樹,直到達到深度為止。在每個步驟中,以相同條件分割前一棵樹的葉子。當 Depthwise
被選擇,一棵樹是內置一步步驟,直到指定的深度實現。在每個步驟中,將最后一棵樹級別的所有非終端葉子分開。使用導致最佳損失改善的條件來分裂葉子。在中 Lossguide
,逐葉構建樹,直到達到指定的葉數。在每個步驟中,將損耗改善最佳的非終端葉子進行拆分
min_data_in_leaf
別名 min_child_samples
—這是一片葉子中訓練樣本的最小數量。此參數僅與 Lossguide
和 Depthwise
增長策略一起使用。
max_leaves
alias num_leaves
—此參數僅與Lossguide
策略一起使用, 并確定樹中的葉子數。
ignored_features
—表示在培訓過程中應忽略的功能。
nan_mode
—處理缺失值的方法。選項包括 Forbidden
, Min
,和 Max
。默認值為 Min
。當 Forbidden
使用時,缺失值導致錯誤的存在。使用 Min
,缺少的值將作為該功能的最小值。在中 Max
,缺失值被視為特征的最大值。
leaf_estimation_method
—用于計算葉子中值的方法。在分類中,使用10 Newton
次迭代。使用分位數或MAE損失的回歸問題使用一次 Exact
迭代。多分類使用一次 Netwon
迭代。
leaf_estimation_backtracking
—在梯度下降過程中使用的回溯類型。默認值為 AnyImprovement
。 AnyImprovement
減小下降步長,直至損失函數值小于上次迭代的值。 Armijo
減小下降步長,直到滿足 Armijo條件 。
boosting_type
—加強計劃。它可以plain
用于經典的梯度增強方案,也可以 用于或 ordered
,它在較小的數據集上可以提供更好的質量。
score_function
— 分數類型, 用于在樹構建過程中選擇下一個拆分。 Cosine
是默認選項。其他可用的選項是 L2
, NewtonL2
和 NewtonCosine
。
early_stopping_rounds
—當時 True
,將過擬合檢測器類型設置為, Iter
并在達到最佳度量時停止訓練。
classes_count
—多重分類問題的類別數。
task_type
—使用的是CPU還是GPU。CPU是默認設置。
devices
—用于訓練的GPU設備的ID。
cat_features
—具有分類列的數組。
text_features
-用于在分類問題中聲明文本列。
CatBoost在其實施中使用scikit-learn標準。讓我們看看如何將其用于回歸。
與往常一樣,第一步是導入回歸器并將其實例化。
擬合模型時,CatBoost還可以通過設置來使用戶可視化 plot=true
:
它還允許您執行交叉驗證并使過程可視化:
同樣,您也可以執行網格搜索并將其可視化:
以上就是怎么使用CatBoost進行快速梯度提升,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。