Python 线性回归():R2评分与交叉评分-奇怪的结果

Python 线性回归():R2评分与交叉评分-奇怪的结果,python,scikit-learn,linear-regression,scoring,Python,Scikit Learn,Linear Regression,Scoring,我正在使用cross_val_score()函数来计算拟合的R2系数。 这是我的密码: from sklearn.linear_model import LinearRegression from sklearn.model_selection import cross_val_score X = data.iloc[:,0:13] y = data.iloc[:,13] lin = LinearRegression() MSE = cross_val_score(lin,X,y,scorin

我正在使用cross_val_score()函数来计算拟合的
R2
系数。 这是我的密码:

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import cross_val_score
X = data.iloc[:,0:13]
y = data.iloc[:,13]
lin = LinearRegression()

MSE = cross_val_score(lin,X,y,scoring = 'neg_mean_squared_error',cv = 10)
MSE
array([  -9.28694671,  -14.15128316,  -14.07360615,  -35.20692433,
    -31.88511666,  -19.83587796,   -9.94726918, -168.37537954,
    -33.32974507,  -10.96041068])
MSE.mean()
-34.705255944525462

R2= cross_val_score(lin,X,y,cv = 10)
R2
array([ 0.73376082,  0.4730725 , -1.00631454,  0.64113984,  0.54766046,
    0.73640292,  0.37828386, -0.12922703, -0.76843243,  0.4189435 ])
R2.mean()
0.20252899006052702
我发现这些结果非常奇怪,尤其是
R2
结果:

  • 0
  • 我发现非常奇怪的是,均方结果和
    R2
    分数非常“分散”
我执行同样的回归任务,并使用“Rapidminer”计算分数,得到更“合理”的结果:

  • 均方误差=24.218+/-10.413
  • R2=0.848+/-0.066
注:我很精确地说,我在使用Python和Rapidminer进行拟合时得到了相同的系数

他们在学习中有错误吗? 有人能解释一下Python的这些奇怪的评分结果吗


在这里,您可以找到指向我的培训数据集(.csv文件)的链接,以便复制我观察到的行为:

您是否在Rapidminer中进行交叉验证?它是否执行10倍cv?你能分享你的数据以便其他人可以复制这种行为吗?嗨,是的,我在Rapidminer中执行10倍的cv交叉验证。如何共享我的数据集(.csv文件):我找不到如何附加文件……您可以找到指向我的培训数据集(.csv文件)的链接,以便复制我在更新的问题中观察到的行为。