我使用scikit-learn構建了一個XGBoost模型,我對此非常滿意。作爲微調,以避免過度配合,我想確保一些功能的單調性,但在那裏我開始面臨一些困難...如何使用ScikitLearn在XGBoost中實施單調約束?
據我瞭解,在scikit-learn中沒有關於xgboost的文檔(其中I承認我真的很驚訝 - 知道這種情況持續數月)。我發現的唯一文檔是直接在http://xgboost.readthedocs.io
在這個網站上,我發現單調性可以使用「monotone_constraints」選項強制執行。 我試着在Scikit,瞭解如何使用它,但我得到一個錯誤信息「類型錯誤:初始化()得到了一個意想不到的關鍵字參數‘monotone_constraints’」
你知道一個辦法做到這一點?
這裏是(使用Spyder的)我在Python寫的代碼:
grid = {'learning_rate' : 0.01, 'subsample' : 0.5, 'colsample_bytree' : 0.5,
'max_depth' : 6, 'min_child_weight' : 10, 'gamma' : 1,
'monotone_constraints' : monotonic_indexes}
#'monotone_constraints' ~ = "(1,-1)"
m07_xgm06 = xgb.XGBClassifier(n_estimators=2000, **grid)
m07_xgm06.fit(X_train_v01_oe, Label_train, early_stopping_rounds=10, eval_metric="logloss",
eval_set=[(X_test1_v01_oe, Label_test1)])
但似乎單調約束現在不起作用。我問了這個問題[這裏](https://github.com/dmlc/xgboost/issues/1514#issuecomment-307567705)。 @chapelon是否適合你? –