Правильная интерпретация и настройки XGBoost - PullRequest
0 голосов
/ 12 июля 2020
• 1000 1002 * Я понял, что использование train-test-split в сочетании с перекрестной проверкой является лучшей практикой, чтобы избежать утечки, но я заметил, что Datacamp не всегда использует метод trian-test-split при запуске поиска по сетке. Вот почему я не понимаю, какие метрики на самом деле дают мне релевантную информацию о моей модели.

Я использовал XGBRegressor в моем обучающем наборе. Я не определил явно метод оценки в моем XGBRegressor или рандомизированном поиске. Когда я запускаю эти строки кода, я получаю следующие результаты:

  • cv.best_score -> 0.85
  • cv.score (X1_train, y1_train) -> 0.99
  • cv.score (X1_test, y1_test) -> 0,96
  • y1_pred = cv.predict (X1_test)
  • RMSE = np.sqrt (mean_squared_error (y1_test, y1_pred)) -> 1.02

Вкратце:

  1. Как мне интерпретировать эти результаты?
  2. На каких результатах мне следует сосредоточиться?
  3. Следует ли мне использовать настройки оценки по умолчанию или я должен указать их самостоятельно?

Ниже вы найдете несколько строк кода, чтобы вы могли увидеть мои настройки:

# Create full pipeline
pipeline = Pipeline([
                     ("featureunion", num_cat_union),
                     ("dictifier", Dictifier()),
                     ("vectorizer", DictVectorizer(sort=False)),
                     ("clf", xgb.XGBRegressor(max_depth=3))
                    ])

# Perform RandomizedSearchCV
cv= RandomizedSearchCV(estimator=pipeline,
                                        param_distributions=parameters,
                                        n_iter=50,  cv=5, verbose=1)

# Fit the estimator
cv.fit(X1_train, y1_train)
...