I want use callbacks and eval_set etc. but i have a problem:
from sklearn.multiclass import OneVsRestClassifier
import lightgbm
verbose = 100
params = {
"objective": "binary",
"n_estimators": 500,
"verbose": 0
}
fit_params = {
"eval_set": eval_dataset,
"callbacks": [CustomCallback(verbose)]
}
clf = OneVsRestClassifier(lightgbm.LGBMClassifier(**params))
clf.fit(X_train, y_train, **fit_params)
how i can hand over fit_params to my estimator? I get
----------------------------------------------------------------------
---> 13 clf.fit(X_train, y_train, **fit_params)
TypeError: OneVsRestClassifier.fit() got an unexpected keyword argument 'eval_set'
Per
scikit-learn's docs forOneVsRestClassifier(link), as of v1.4.0 additional**fit_paramsare only passed through to estimators'fit()methods if you've enabled whatscikit-learncalls "metadata routing".There are 2 required steps which are missing in your example:
sklearn.set_config(enable_metadata_routing=True)scikit-learnto pass througheval_setandcallbacks, via.set_fit_request().(docs link)
Consider this minimal, reproducible example using Python 3.11,
lightgbm==4.3.0, andscikit-learn==1.4.1.