哪些因素将导致回归模型的RMSE值极高?

时间:2018-08-02 19:11:03

标签: python machine-learning regression evaluation

我试图建立一个回归模型来预测电影票房。该数据集是从Kaggle-TMDB 5000电影数据集获取的,另一个数据集包含一些与社交媒体相关的属性。

合并和清理后,最终数据集包含183个观测值和53个特征。扩展了两个类别特征,类型和生产国。例如,新列如“动作”,“戏剧”,“喜剧” ...等。如果该电影属于该类型,则值为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 

我不知道是什么因素导致这种情况。有人可以帮我从这里出去吗?非常感谢。

1 个答案:

答案 0 :(得分: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等。因此您的结果可能会使您的分析走上正确的轨道。