2016-06-21 4 views
8

Я использую интерфейс xgboots sklearn ниже для создания и обучения модели xgb-1.любой другой между оригинальным xgboost и 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)]) 

И модель xgboost может быть создан оригинальный xgboost как модель-2 ниже:

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) 

Я думаю, что все параметры одинаковы между моделью-1 и модели-2. Но оценка проверки отличается. Есть ли разница между моделью-1 и модель-2?

+2

Я была такая же проблема. Я провел несколько часов, проходя через все документы и весь мой код, задал все параметры одинаково, а затем обучил. Тем не менее, я обнаружил, что 'xgb.XGBClassifier' дает 0.51 auc и' xgb.train' дает 0.84 auc. Понятия не имею почему. – josh

+1

Интерфейс 'sklearn' не имеет некоторых параметров. Например, метод 'set_group' класса DMatrix, который имеет решающее значение для ранжирования, не имеет аналога в интерфейсе' sklearn'. – xolodec

ответ

1

Результаты должны быть такими же, как XGBClassifier - это только интерфейс sklearn, который в конце вызывает библиотеку xgb.

Вы можете попытаться добавить тот же самый seed к обоим подходам, чтобы получить одинаковые результаты. Например, в интерфейсе вашей sklearn «s:

clf = xgb.XGBClassifier(n_estimators = 100, objective= 'binary:logistic',seed=1234) 
+0

Я сделал это, но все равно не повезло. См. Комментарий к вопросу! – josh

3

Как я понимаю, есть много различий между параметрами по умолчанию в xgb и в его sklearn интерфейсе. Например: по умолчанию xgb имеет eta = 0,3, а другой - eta = 0,1. Вы можете увидеть больше о параметрах по умолчанию каждого реализует здесь:

https://github.com/dmlc/xgboost/blob/master/doc/parameter.md http://xgboost.readthedocs.io/en/latest/python/python_api.html#module-xgboost.sklearn

+0

@ gofr1: Существенная часть состоит в том, что два инструмента имеют разные параметры по умолчанию. Я также приведу пример. С Уважением, –

 Смежные вопросы

  • Нет связанных вопросов^_^