xgboost
xgboost copied to clipboard
early_stopping_rounds can not work when train multilabel ?
import xgboost as xgb
from sklearn.multioutput import *
from sklearn.datasets import *
params = {'num_parallel_tree':2, 'n_estimators': 1000, 'booster':'gbtree', 'early_stopping_rounds':2,
'n_jobs':4}
clf = xgb.XGBClassifier(**params)
x, y = make_multilabel_classification(n_features=5,n_samples=50, n_classes=5, n_labels=2)
#print(x)
#print(y)
clf.fit(x, y, eval_set=[(x,y)])
# clf.predict_proba(x)
# xgb.plot_importance(clf)
output:
....
[845] validation_0-logloss:0.07376
[846] validation_0-logloss:0.07376
[847] validation_0-logloss:0.07375
[848] validation_0-logloss:0.07375
[849] validation_0-logloss:0.07374
[850] validation_0-logloss:0.07374
[851] validation_0-logloss:0.07374 -> should stop here
[852] validation_0-logloss:0.07373
[853] validation_0-logloss:0.07373
[854] validation_0-logloss:0.07372
[855] validation_0-logloss:0.07372
[856] validation_0-logloss:0.07371
[857] validation_0-logloss:0.07371
[858] validation_0-logloss:0.07371
[859] validation_0-logloss:0.07370
[860] validation_0-logloss:0.07370
[861] validation_0-logloss:0.07369
[862] validation_0-logloss:0.07369
[863] validation_0-logloss:0.07369
...
seems early_stopping_rounds doesn't work
I suspect that just floating-point printing inaccuracy.
I suspect that just floating-point printing inaccuracy.
I don't think so, as you can see, I used 1000 n_estimators to train, binary classification always stops early