Я использую XGBoost
с параметрами по умолчанию, Средняя абсолютная ошибка составляет 1,35% (пожалуйста, обратитесь к моему коду), RMSE = 4966,55, а затем используя Standard Scalar
с XGBoost, я получил Средняя абсолютная ошибка 9,16%,RMSE = 171445,32.а) Я хотел знать, почему это происходит?
б) Нужно ли мне также масштабировать Y_train
, я не знаю, как преобразовать Y_pred
в исходные значения тогда, потому что их модель будет предсказыватьмасштабируется Y_pred
значений.
model = xgboost.XGBRegressor()
model.fit(X_train, Y_train)
print(model)
Y_pred=model.predict(X_test)
print((abs(Y_pred-Y_test['Total.Production.(mt)'])/Y_test['Total.Production.(mt)']).mean()*100)
>>>1.35
from sklearn.preprocessing import StandardScaler
x1 = X_train.values
x1_t=X_test.values
# Standardizing the features
x = StandardScaler().fit_transform(x1)
x_t=StandardScaler().fit_transform(x1_t)
model = xgboost.XGBRegressor()
model.fit(x, Y_train)
print(model)
Y_pred=model.predict(x_t)
print((abs(Y_pred-Y_test['Total.Production.(mt)'])/Y_test['Total.Production.(mt)']).mean()*100)
>>>9.916
Я не ожидал такого огромного изменения в% ошибки и RMSE.