机器学习入门 07.线性回归模型性能评估

562 阅读3分钟

这是我参与更文挑战的第10天,活动详情查看: 更文挑战

我们之前了解了线性回归模型,但是如何评测一个模型性能如何?通过那些指标可以评测模型呢?我们来看一下一些线性回归模型的性能指标.

共平方和 & 剩余平方和

假如我们有一些数据,他们分布在二维坐标系中,如果我们取他们纵坐标的平均值那么可以如果这个值画出一条直线.

6b526ce49b42440995661f18b8e152d.png

我们取所有坐标点的y轴差值的平方和,称这个为共平方和,用SStotSS_{tot}表示

SStot=SUM(yiyavg)SS_{tot} = SUM(y_i - y_{avg})

可以看出共平方和计算平均值线得出的,他与X轴数据无关,只由Y轴数值决定,我们不需要预测只需要计算平均值就可以的得出这么一条直线.

我们再画出另外一条线,这条直线到是我们使用模型预测出的直线,对应的yiy_i我们的预测值是yiˉy_{\bar{i}}

624c161455107f64dcac30f494d0eb5.png

我们取yiyiˉy_i - y_{\bar{i}}平方和,我们称这是这个模型的剩余平方和.

SSres=SUM(yiyiˉ)SS_{res} = SUM(y_i - y_{\bar{i}})

可以看出如果模型预测的越精准,预测线就应该越贴近所有的点,那么剩余平方和就应该越小.

R2R^2

判断模型的一个重要指标就是R2R^2(R-Squared),在模型中R-Squared越大,表示模型拟合效果越好。R-Squared 反映的是大概有多准,因为,随着样本数量的增加,R-Square必然增加,无法真正定量说明准确程度,只能大概定量.

R-Squared通过公式可以表示为:

R2=1SSresSStotR^2 = 1 - {SS_{res} \over SS_{tot}}

可以看出R-Squared剩余平方和共平方和相关,剩余平方和越小则R-Squared越趋近于1,而剩余平方和越差则R-Squared在越小,当剩余平方和大于共平方和时,R-Squared则会小于0,但这也表示跟模型性能连取平均值都不如,这也不会在显示情况中出现.

所有可以通过R-Squared来大概的判断模型性能,R-Squared数值越趋近于1,性能越好.

但是R-Squared也存在一个问题,那就是我们在多元线性回归模型中添加了新的参数后,R_Square永远不会降低.

y=b0+b1x1+b2x2+b3x3y = b_0 + b_1*x_1 + b_2*x_2 + b_3*x_3

假如存在多元线性回归模型如上,b3x3b_3 * x_3 使我们新添加的参数,如果我们可以找到对应的值使剩余平方和变小,那么R-Squared就会增加,如果我们无法找到使剩余平方和变小,那么b3=0b_3 = 0即可保持R-Squared不变.

AdjR2Adj R^2

既然R-Squared可以不能完全精确的表示拟合情况,那么我们应该如何解决R-Squared存在的问题,这里我们就要了解AdjR2Adj R^2(广义R平方)

AdjR2=1(1R2)n1np1Adj R^2 = 1 - (1 - R^2) * {n-1 \over n-p-1}

  • n: 数据量
  • p: 自变量个数

可以看出p代表自变量个数,当p升高时,n1np1{n-1 \over n-p-1}就会升高,那么(1R2)n1np1 (1 - R^2) * {n-1 \over n-p-1}就会升高,而AdjR2Adj R^2就会降低.

可以看出引入了np后,类似加入了惩罚系数,这样添加了无用的自变量后,惩罚系数的影响是大于R-Squared,所有AdjR2Adj R^2依然会降低,这样就解决了我们R-Squared上存在的问题.