小编Kru*_*iou的帖子

LinearRegression() :使用 cross_val_score 进行 R2 评分 - 奇怪的结果

我正在使用 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
Run Code Online (Sandbox Code Playgroud)

我发现这些结果非常奇怪,特别是R2结果:

  • 0 < R2 < 1?
  • 我发现很奇怪的是均方结果和R2分数非常“分散”。

我执行相同的回归任务并使用“Rapidminer”计算分数,我得到了更多“逻辑”结果:

  • 均方误差 = 24.218 +/- 10.413 …

python scoring linear-regression scikit-learn

5
推荐指数
0
解决办法
2435
查看次数

标签 统计

linear-regression ×1

python ×1

scikit-learn ×1

scoring ×1