Ich habe mit scikit-learn ein XGBoost-Modell aufgebaut und bin sehr zufrieden damit. Als Feinabstimmung, um Überanpassung zu vermeiden, möchte ich Monotonie einiger Funktionen sicherstellen, aber dort fange ich an, einige Schwierigkeiten zu stellen ...Wie erzwinge Monotonic Constraints in XGBoost mit ScikitLearn?
Soweit ich verstanden habe, gibt es keine Dokumentation in scikit-lerne über xgboost (das ich gestehen, ich bin wirklich überrascht - in dem Wissen, dass diese Situation mehrere Monate dauert. Die einzige Dokumentation, die ich fand, ist direkt auf http://xgboost.readthedocs.io
Auf dieser Website fand ich heraus, dass Monotonie mit der Option "monotone_constraints" erzwungen werden kann. Ich habe versucht, es zu benutzen, in Scikit-Learn, aber ich bekam eine Fehlermeldung „Typeerror: init() bekam ein unerwartetes Stichwort Argument‚monotone_constraints‘“
Kennen Sie einen Weg, es zu tun? Hier
ist der Code, den ich in Python geschrieben (mit spyder):
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)])
scheint jedoch wie monotone Einschränkungen für jetzt nicht funktioniert. Ich habe eine Frage dazu [hier] gestellt (https://github.com/dmlc/xgboost/issues/1514#issuecomment-307567705). @ Chapelon funktioniert es für dich? –