Python 什么因素会导致回归模型中的RMSE值极高?

Python 什么因素会导致回归模型中的RMSE值极高?,python,machine-learning,regression,evaluation,Python,Machine Learning,Regression,Evaluation,我试图建立一个回归模型来预测电影票房。该数据集是从Kaggle TMDB 5000电影数据集获取的,另外一个数据集包含一些与社交媒体相关的属性 经过合并和清理,最终数据集由183个观测值和53个特征组成。扩大了两个分类特征:流派和制作国家。例如,新的专栏如“动作”、“戏剧”、“喜剧”等。如果该电影属于该类型,则该值为1。与生产国相同 我使用数据集建立回归模型,但遇到了一个问题。无论我使用序列测试分割或交叉验证方法,还是尝试不同的回归模型,我得到的RMSE都非常高 from sklearn.mod

我试图建立一个回归模型来预测电影票房。该数据集是从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 

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

似乎您正在正确计算RMSE,我将检查R2度量值,并尝试手动执行以确保

但是,如果我们检查以下参考资料,我会尝试更详细地审查该概念:

我们可以观察到

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

如果MSE->0,则RMSE->0和r2->1


但是如果RMSE->+inf,MSE->+inf,如果MSE(1),我认为这个问题在交叉验证时更合适。(2) 正如维基百科关于均方根偏差的文章所说,……因为衡量标准取决于所用数字的规模。你不能在不声明尺度的情况下得出“太高”的结论。这是否意味着如果目标变量是一个大数字,获得高RMSE值是正常的?@c-ho:我想是的。RMSE还没有正常化,对吗?在“RMSI规范化”上进行谷歌搜索。另请参见pablo reynoso回答中的链接。