Ich benutze die xgboots sklearn Schnittstelle unten, um ein xgb Modell-1 zu erstellen und zu trainieren.beliebig unterschiedlich zwischen original xgboost und sklearn XGBClassifier
param = {}
param['objective'] = 'binary:logistic'
param['eval_metric'] = "auc"
num_rounds = 100
xgtrain = xgb.DMatrix(x_train, label=y_train)
xgval = xgb.DMatrix(x_valid, label=y_valid)
watchlist = [(xgtrain, 'train'),(xgval, 'val')]
model = xgb.train(plst, xgtrain, num_rounds, watchlist, early_stopping_rounds=10)
Ich denke, dass alle Parameter sind die gleichen zwischen Modell-1 und Modell-2:
clf = xgb.XGBClassifier(n_estimators = 100, objective= 'binary:logistic',)
clf.fit(x_train, y_train, early_stopping_rounds=10, eval_metric="auc",
eval_set=[(x_valid, y_valid)])
Und das xgboost Modell kann von Original xgboost als Modell-2 unten erstellt werden. Der Validierungswert ist jedoch unterschiedlich. Gibt es einen Unterschied zwischen Model-1 und Model-2?
ich das gleiche Problem gehabt haben. Ich verbrachte ein paar Stunden damit, alle Dokumente und meinen gesamten Code durchzugehen, alle Parameter gleich einzustellen und dann zu trainieren. Dennoch finde ich, dass der "xgb.XGBClassifier" 0,51 Auc ergibt und "xgb.train" 0,84 Auc ergibt. Ich habe keine Idee warum. – josh
'sklearn' Schnittstelle hat nicht einige Optionen. Zum Beispiel hat die Methode 'set_group' der' DMatrix'-Klasse, die für das Ranking entscheidend ist, keine analoge Schnittstelle in 'sklearn'. – xolodec