Какие факторы приведут к чрезвычайно высокому значению RMSE в регрессионной модели?

1

Я пытался создать регрессионную модель, чтобы предсказать кинопрокат. Набор данных был получен из набора данных Kaggle-TMDB 5000 Movie вместе с другим набором данных, который содержит некоторые атрибуты, связанные с социальными сетями.

После слияния и очистки окончательный набор данных состоит из 183 наблюдений и 53 функций. Были расширены две категориальные функции, жанр и production_countries. Например, новые столбцы, такие как "Действие", "Драма", "Комедия"... и т.д. И значение равно 1, если этот фильм принадлежит к этому жанру. То же, что и production_countries.

Я использовал набор данных для создания моей модели регрессии, но у меня возникла проблема. Независимо от того, использую метод разделения поездов или метод перекрестной проверки или пробую другую регрессионную модель, полученная мной RMSE была безумно высокой.

from sklearn.model_selection import cross_val_predict
X=movie.drop('Gross',axis=1)
y=movie['Gross']
print 'R2:',r2_score(y,cross_val_predict(RandomForestRegressor(),X,y,cv=10))
print 'RMSE:',np.sqrt(metrics.mean_squared_error(y,cross_val_predict(method,X,y,cv=10)))

output:
R2: 0.344831741145
RMSE: 76169019.1588 

Я не знаю, какие факторы приводят к такой ситуации. Может кто-нибудь помочь мне здесь? Большое спасибо.

  • 0
    (1) Я предполагаю, что этот вопрос будет более уместным, например, при перекрестной проверке. (2) Как говорится в статье Википедии об отклонении RMS, ... потому что мера зависит от масштаба используемых чисел. Вы не можете сделать вывод, что это «слишком высоко», не утверждая что-то о масштабе.
  • 0
    Означает ли это, что если целевая переменная является большим числом, это нормально для получения высокого значения RMSE?
Показать ещё 1 комментарий
Теги:
machine-learning
regression
evaluation

1 ответ

0

Кажется, что вы правильно вычисляете RMSE, я бы проверил меру R2 и попытался сделать это вручную, чтобы быть уверенным.

Но я попытался бы более подробно рассмотреть концепцию, если мы проверим следующую ссылку: http://brenocon.com/rsquared_is_mse_rescaled.pdf

Мы можем заметить, что

r2 = 1 - MSE (x, y)/VAR (y)

Если MSE → 0, следовательно, RMSE → 0 и r2 → 1.

Но если RMSE → +inf, MSE → +inf, и если MSE <= VAR (y), это приведет к значениям r2 ниже 1, например 0,2, 0,3 и т.д. Таким образом, ваши результаты могут поместить ваш анализ в нужное положение трек.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню