Używam interfejsu sklearn xgboots poniżej, aby utworzyć i wyszkolić model xgb-1.Różnica między oryginalnym Xgboost a 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)])
A model xgboost mogą być tworzone przez pierwotnego xgboost jako model-2 poniżej:
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)
Myślę, że wszystkie parametry są takie same od modelu 1 i modelu-2. Ale wynik sprawdzania poprawności jest inny. Czy jest jakaś różnica między modelem-1 a modelem-2?
miałem ten sam problem. Spędziłem kilka godzin przechodząc przez wszystkie dokumenty i cały mój kod, ustawiłem wszystkie parametry tak samo, a następnie trenowałem. Mimo to uważam, że 'xgb.XGBClassifier' daje 0,51 auc, a' xgb.train' daje 0,84 auc. Nie mam pojęcia dlaczego. – josh
Interfejs 'sklearn' nie ma niektórych opcji. Na przykład metoda 'set_group' klasy' DMatrix', która ma kluczowe znaczenie dla rankingu, nie ma analogii w interfejsie 'sklearn'. – xolodec