catboost的參數(shù)調(diào)整方法

來源:https://catboost.ai/docs/concepts/parameter-tuning.html

https://effectiveml.com/using-grid-search-to-optimise-catboost-parameters.html

CatBoost提供了一個靈活的參數(shù)調(diào)優(yōu)接口,可以根據(jù)不同的任務進行配置。

本節(jié)包含一些關(guān)于可能的參數(shù)設置的技巧。

一、One-hot encoding

當分類特性沒有很多值時,one-hot編碼就可以很好地工作。

通常one-hot編碼并沒有顯著提高模型的質(zhì)量。但是如果需要,使用內(nèi)置參數(shù)而不是預處理數(shù)據(jù)集。

參數(shù):one_hot_max_size

二、Number of trees

在調(diào)整任何其他參數(shù)之前,建議檢查是否存在明顯的欠擬合或過擬合。為此,需要分析驗證數(shù)據(jù)集上的度量值并選擇適當?shù)牡螖?shù)。

這可以通過將迭代次數(shù)設置為一個較大的值、使用過擬合檢測器參數(shù)并打開use best model選項來實現(xiàn)。在這種情況下,得到的模型只包含前k個最佳迭代,其中k是驗證數(shù)據(jù)集中損失值最大的迭代。

此外,選擇最佳模型的度量方法可能與優(yōu)化目標值的度量方法不同。例如,可以將優(yōu)化后的函數(shù)設置為Logloss,并使用AUC函數(shù)進行過擬合檢測器。為此,使用評估度量參數(shù)。

參數(shù):iterations

三、Learning rate

此設置用于減小梯度步長。它影響整個訓練時間:值越小,訓練所需的迭代次數(shù)越多。根據(jù)性能期望選擇價值。

默認情況下,學習率是根據(jù)dataset屬性和迭代次數(shù)自動定義的。自動定義的值應該接近最優(yōu)值。

根據(jù)過擬合結(jié)果調(diào)整學習率的可能方法:

在最后的訓練迭代中沒有過度擬合(訓練不收斂)——提高學習率。

檢測到過擬合——降低學習速度。

參數(shù):learning_rate

四、Tree depth

在大多數(shù)情況下,最佳深度范圍從4到10。建議使用6到10之間的值。

參數(shù):depth

五、L2正規(guī)化

嘗試不同的值為正則化,以找到最好的可能。

參數(shù):l2_leaf_reg

六、Random strength

嘗試為random_strength參數(shù)設置不同的值。

參數(shù):random_strength

七、Bagging temperature

嘗試為bagging_temperature參數(shù)設置不同的值。

參數(shù):bagging_temperature

八、Border count

數(shù)值特征的分裂數(shù)。

默認情況下,它被設置為254(如果在CPU上執(zhí)行訓練)或128(如果在GPU上執(zhí)行訓練)。

該參數(shù)的取值對GPU的訓練速度有顯著影響。值越小,訓練執(zhí)行得越快(詳細信息請參考數(shù)值特征部分的分割數(shù))。

128個分割對于許多數(shù)據(jù)集來說已經(jīng)足夠了。但是,如果需要最好的質(zhì)量,請在GPU上進行訓練時將該參數(shù)的值設置為254。

該參數(shù)的值對CPU的訓練速度沒有顯著影響。試著將它設置為254以獲得最好的質(zhì)量。

參數(shù):border_count

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容