拟合线到数据上(最小二乘法)
你平时努力工作, 你完成了你的实验并得到了一些数据,然后把数据绘制在 X-Y 坐标的图中,我们通常希望给数据添加一条线, 以便我们了解数据的趋势。
image.png
问题这就出来了:我们应该使用的最佳线在哪里??
一般步骤
现在让我们先关注这条横线,它穿过了数据的平均值对应的 y 点, 即 3.5。让我们称这个点为 b 点。
y = b = 3.5 这条直线
我们将从图的左下角坐标 (x₁, y₁) 开始,我们可以从这一点绘制一条竖直线与穿过数据平均值所在的线相交。
线和第一个数据点之间的 "距离" 等于 (b - y₁),此距离表示点到线上具有与该点相同横坐标所对应点的连线的长度, 下同。
第四个点的距离为 (b - y₄),注意: y₄ > b, 因为它在水平线之上, 所以这个值将是负数,这可不行的, 因为它会从总数中减掉值 (使总和变小)。并会造成过拟合, 使拟合 "看起来" 比实际更好。
解决方案:可以取绝对值,这听上去非常合理,但是,计算太麻烦。于是,选择了对每一项进行平方。
现在 (b - y1)2+ (b - y2)2+ (b - y3)2+ (b - y4)2+ (b - y5)2+ (b - y6)2+ (b - y7)2+ (b - y8)2+ (b - y9)2是衡量这条线与数据吻合程度的指标,它被称为残差平方和。
概念普及:残差是实际数据和线之间的差异
image.png
如果我们用y = b = 3.5 这条直线,那么残差平方和=24.62
让我们看看如果我们稍微旋转线条, 那么拟合程度会变得怎么样:旋转以后, 残差平方和等于18.72
image.png
如果我们再旋转一点, 这拟合程度会变得更好吗?平方残差之和现在等于14.05
image.png
当我们旋转线越多时, 该值越来越低,如果我们将线路旋转了很多会怎么样?拟合变得更糟糕了,这个时候, 残差平方和等于31.71
image.png
所以在水平线到垂直线之间有一个最佳点。
要找到那个最佳点, 让我们从通用直线方程开始:y = ax +b
我们想要找到 "a" 和 "b" 的最佳值使残差平方和最小
image.png
因为我们想要能给出最小平方和的线,这种方法用来找到 "a" 和 "b" 的最佳值的方法被称为最小二乘法。
如果我们以残差平方和与直线每次旋转得到的 "姿态" 来进行绘图:
在 y 轴上我们放置残差平方和
在 x 轴上, 我们得到了线的不同旋转 "姿态"
image.png
我们就要取这个函数的导数,导数告诉我们该函数在每个点的斜率。我们具有最小平方的最佳点处的斜率为 0。