Как рассчитать RMSE на модели регрессии Риджа

Я выполнил модель гребневой регрессии для набора данных (ссылка на набор данных: https://www.kaggle.com/c/house-prices-advanced-regression-techniques/data), как показано ниже:

from sklearn.linear_model import Ridge
from sklearn.model_selection import train_test_split

y = train['SalePrice']
X = train.drop("SalePrice", axis = 1)

X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.30)
ridge = Ridge(alpha=0.1, normalize=True)
ridge.fit(X_train,y_train)
pred = ridge.predict(X_test)

Я рассчитал MSE, используя библиотеку метрик от sklearn, как

from sklearn.metrics import mean_squared_error
mean = mean_squared_error(y_test, pred) 
rmse = np.sqrt(mean_squared_error(y_test,pred)

Я получаю очень большое значение MSE = 554084039.54321 и RMSE = 21821.8, я пытаюсь понять, правильна ли моя реализация.


person user2480288    schedule 10.02.2019    source источник
comment
Пожалуйста, предоставьте код для вашего mean_sqaured_error и RMSE, как вы разделяете данные, какое значение MSE вы получаете, а также ссылку/описание вашего набора данных.   -  person Szymon Maszke    schedule 10.02.2019
comment
Возможный дубликат среднеквадратичной ошибки в python   -  person Andrew Naguib    schedule 10.02.2019
comment
@SzymonMaszke Я обновил вопрос с кодом   -  person user2480288    schedule 10.02.2019


Ответы (1)


Реализация RMSE

Ваша реализация RMSE верна, что легко проверить, если взять корень sqaure из mean_squared_error sklearn.

Я думаю, что вам не хватает закрывающих скобок, здесь, если быть точным:

rmse = np.sqrt(mean_squared_error(y_test,pred)) # the last one was missing

Проблема с высокой ошибкой

Ваша MSE высока из-за того, что модель не может очень хорошо моделировать отношения между вашими переменными и целью. Имейте в виду, что каждая ошибка оценивается в степени 2, поэтому снижение цены на 1000 резко увеличивает значение до 1000000.

Вы можете изменить цену с помощью натурального логарифма (numpy.log) и преобразовать ее в логарифмическую шкалу, это обычная практика, особенно для этой проблемы (я предполагаю, что вы делаете Цены на жилье: расширенные методы регрессии), см. доступные ядра для получения инструкций. При таком подходе вы не получите таких больших значений.

И последнее, но не менее важное: проверьте среднюю абсолютную ошибку в чтобы увидеть, что ваши предсказания не так ужасны, как кажутся.

person Szymon Maszke    schedule 10.02.2019