本篇文章給大家分享的是有關(guān)怎么使用CatBoost進(jìn)行快速梯度提升,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)城口,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792
我們將仔細(xì)研究一個(gè)名為CatBoost的梯度增強(qiáng)庫(kù)。
在梯度提升中,預(yù)測(cè)是由一群弱學(xué)習(xí)者做出的。與為每個(gè)樣本創(chuàng)建決策樹的隨機(jī)森林不同,在梯度增強(qiáng)中,樹是一個(gè)接一個(gè)地創(chuàng)建的。模型中的先前樹不會(huì)更改。前一棵樹的結(jié)果用于改進(jìn)下一棵樹。在本文中,我們將仔細(xì)研究一個(gè)名為CatBoost的梯度增強(qiáng)庫(kù)。
CatBoost 是Yandex開(kāi)發(fā)的深度方向梯度增強(qiáng)庫(kù) 。它使用遺忘的決策樹來(lái)生成平衡樹。相同的功能用于對(duì)樹的每個(gè)級(jí)別進(jìn)行左右拆分。
(CatBoost官方鏈接:https://github.com/catboost)
與經(jīng)典樹相比,遺忘樹在CPU上實(shí)現(xiàn)效率更高,并且易于安裝。
在機(jī)器學(xué)習(xí)中處理分類的常見(jiàn)方法是單熱編碼和標(biāo)簽編碼。CatBoost允許您使用分類功能,而無(wú)需對(duì)其進(jìn)行預(yù)處理。
使用CatBoost時(shí),我們不應(yīng)該使用一鍵編碼,因?yàn)檫@會(huì)影響訓(xùn)練速度以及預(yù)測(cè)質(zhì)量。相反,我們只需要使用cat_features
參數(shù)指定分類特征即可 。
以下是考慮使用CatBoost的一些原因:
CatBoost允許在多個(gè)GPU上訓(xùn)練數(shù)據(jù)。
使用默認(rèn)參數(shù)可以提供很好的結(jié)果,從而減少了參數(shù)調(diào)整所需的時(shí)間。
由于減少了過(guò)度擬合,因此提高了精度。
使用CatBoost的模型應(yīng)用程序進(jìn)行快速預(yù)測(cè)。
經(jīng)過(guò)訓(xùn)練的CatBoost模型可以導(dǎo)出到Core ML進(jìn)行設(shè)備上推理(iOS)。
可以在內(nèi)部處理缺失值。
可用于回歸和分類問(wèn)題。
讓我們看一下CatBoost中的常用參數(shù):
loss_function
別名為 objective
-用于訓(xùn)練的指標(biāo)。這些是回歸指標(biāo),例如用于回歸的均方根誤差和用于分類的對(duì)數(shù)損失。
eval_metric
—用于檢測(cè)過(guò)度擬合的度量。
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
—確定對(duì)象權(quán)重的采樣方法,例如貝葉斯,貝努利,MVS和泊松。
depth
—樹的深度。
grow_policy
—確定如何應(yīng)用貪婪搜索算法。它可以是 SymmetricTree
, Depthwise
或 Lossguide
。 SymmetricTree
是默認(rèn)值。在中 SymmetricTree
,逐級(jí)構(gòu)建樹,直到達(dá)到深度為止。在每個(gè)步驟中,以相同條件分割前一棵樹的葉子。當(dāng) Depthwise
被選擇,一棵樹是內(nèi)置一步步驟,直到指定的深度實(shí)現(xiàn)。在每個(gè)步驟中,將最后一棵樹級(jí)別的所有非終端葉子分開(kāi)。使用導(dǎo)致最佳損失改善的條件來(lái)分裂葉子。在中 Lossguide
,逐葉構(gòu)建樹,直到達(dá)到指定的葉數(shù)。在每個(gè)步驟中,將損耗改善最佳的非終端葉子進(jìn)行拆分
min_data_in_leaf
別名 min_child_samples
—這是一片葉子中訓(xùn)練樣本的最小數(shù)量。此參數(shù)僅與 Lossguide
和 Depthwise
增長(zhǎng)策略一起使用。
max_leaves
alias num_leaves
—此參數(shù)僅與Lossguide
策略一起使用, 并確定樹中的葉子數(shù)。
ignored_features
—表示在培訓(xùn)過(guò)程中應(yīng)忽略的功能。
nan_mode
—處理缺失值的方法。選項(xiàng)包括 Forbidden
, Min
,和 Max
。默認(rèn)值為 Min
。當(dāng) Forbidden
使用時(shí),缺失值導(dǎo)致錯(cuò)誤的存在。使用 Min
,缺少的值將作為該功能的最小值。在中 Max
,缺失值被視為特征的最大值。
leaf_estimation_method
—用于計(jì)算葉子中值的方法。在分類中,使用10 Newton
次迭代。使用分位數(shù)或MAE損失的回歸問(wèn)題使用一次 Exact
迭代。多分類使用一次 Netwon
迭代。
leaf_estimation_backtracking
—在梯度下降過(guò)程中使用的回溯類型。默認(rèn)值為 AnyImprovement
。 AnyImprovement
減小下降步長(zhǎng),直至損失函數(shù)值小于上次迭代的值。 Armijo
減小下降步長(zhǎng),直到滿足 Armijo條件 。
boosting_type
—加強(qiáng)計(jì)劃。它可以plain
用于經(jīng)典的梯度增強(qiáng)方案,也可以 用于或 ordered
,它在較小的數(shù)據(jù)集上可以提供更好的質(zhì)量。
score_function
— 分?jǐn)?shù)類型, 用于在樹構(gòu)建過(guò)程中選擇下一個(gè)拆分。 Cosine
是默認(rèn)選項(xiàng)。其他可用的選項(xiàng)是 L2
, NewtonL2
和 NewtonCosine
。
early_stopping_rounds
—當(dāng)時(shí) True
,將過(guò)擬合檢測(cè)器類型設(shè)置為, Iter
并在達(dá)到最佳度量時(shí)停止訓(xùn)練。
classes_count
—多重分類問(wèn)題的類別數(shù)。
task_type
—使用的是CPU還是GPU。CPU是默認(rèn)設(shè)置。
devices
—用于訓(xùn)練的GPU設(shè)備的ID。
cat_features
—具有分類列的數(shù)組。
text_features
-用于在分類問(wèn)題中聲明文本列。
CatBoost在其實(shí)施中使用scikit-learn標(biāo)準(zhǔn)。讓我們看看如何將其用于回歸。
與往常一樣,第一步是導(dǎo)入回歸器并將其實(shí)例化。
擬合模型時(shí),CatBoost還可以通過(guò)設(shè)置來(lái)使用戶可視化 plot=true
:
它還允許您執(zhí)行交叉驗(yàn)證并使過(guò)程可視化:
同樣,您也可以執(zhí)行網(wǎng)格搜索并將其可視化:
以上就是怎么使用CatBoost進(jìn)行快速梯度提升,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站題目:怎么使用CatBoost進(jìn)行快速梯度提升
文章URL:http://jinyejixie.com/article10/jjhpgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、虛擬主機(jī)、軟件開(kāi)發(fā)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)