Io uso l'interfaccia xgboots sklearn sotto per creare e addestrare un xgb model-1.diverso tra originale xgboost e sklearn XGBClassifier
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)])
E il modello xgboost possono essere creati da xgboost originale come modello-2 di seguito:
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)
Credo che tutti i parametri sono gli stessi tra il modello-1 e il modello-2. Ma il punteggio di validazione è diverso. C'è qualche differenza tra model-1 e model-2?
ho avuto lo stesso problema. Ho passato alcune ore a esaminare tutti i documenti e tutto il mio codice, ho impostato tutti i parametri allo stesso modo e poi mi sono allenato. Comunque, trovo che 'xgb.XGBClassifier' dia 0.51 auc e' xgb.train' dia 0.84 auc. Non ho idea del perché. L'interfaccia 'sklearn' – josh
non ha alcune opzioni. Ad esempio, il metodo 'set_group' della classe' DMatrix' che è cruciale per la classifica non ha un analogo nell'interfaccia 'sklearn'. – xolodec