Первое использование XGBoost Regressor - PullRequest
0 голосов
/ 07 августа 2020

Некоторое время боролись, чтобы заставить это работать и найти руководство solid для xgboost. Не могу найти ничего в sklearn, поэтому я пытаюсь собрать воедино биты из прогулок xgboost.

def gradientBoost():
    xg_reg = xgb.XGBRegressor(objective="reg:linear", max_depth=5, n_estimators=100, random_state=42)
    xg_reg.fit(x_train, y_train)
    preds = xg_reg.predict(x_train)
    rmse = np.sqrt(metrics.mean_squared_error(y_train,preds))
    print("RMSE: %f" % rmse)

Используя этот код, я получаю сообщение об ошибке:

y_true and y_pred have a different number of outputs (18!=1)

Я знаю вы не можете видеть данные, которые я использую, но если я тренирую его на x_train, y_train, как могут быть разные размеры, когда я пытаюсь получить точность предсказания тех самых данных, которые я использовал для его обучения?

1 Ответ

0 голосов
/ 07 августа 2020

Ошибка сообщает, что в y_true 18 элементов и только 1 в y_pred, поэтому проблема может исходить из вашего y_pred. Вы должны попытаться распечатать его и понять свою ошибку. Я думаю, что y_pred - это массив массивов, что-то вроде этого, возможно, y_pred[0] сработает, но просто распечатайте его и посмотрите, что вы сделали не так, без этого я не могу вам больше помочь ...

...