在回归模型中,哪些因素会导致极大的RMSE值?

2024-05-16 22:58:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

经过合并和清理,最终的数据集由183个观测值和53个特征组成。两个分类特征,类型和生产国家被扩展。例如,“动作”、“戏剧”、“喜剧”等新列,如果该电影属于该类型,则值为1。与生产国相同。在

我使用数据集构建回归模型,但遇到了一个问题。无论我使用训练-测试分离或交叉验证方法,或尝试不同的回归模型,我得到的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 

我不知道是什么因素导致了这种情况。有人能帮我吗?非常感谢。在


Tags: 数据模型类型电影val特征moviepredict
1条回答
网友
1楼 · 发布于 2024-05-16 22:58:28

看来你计算的RMSE是正确的,我会检查R2测量值,并尝试手动进行,只是为了确定。在

但是如果我们检查下面的参考文献,我将尝试更详细地回顾这个概念:http://brenocon.com/rsquared_is_mse_rescaled.pdf

我们可以观察到

r2=1-毫秒(x,y)/VAR(y)

如果MSE->;0,则为RMSE->;0和r2->;1。在

但如果RMSE->;+inf,MSE->;+inf,如果MSE<;=VAR(y),这将导致r2值低于1,例如0.2、0.3等,因此您的结果可能会使您的分析走上正确的轨道。在

相关问题 更多 >