本文来自同步博客。ide
P.S. 不知道怎么如何更好地显示数学公式和排版文章。因此若是以为文章下面格式乱的话请自行跳转到上述连接。后续我将再也不对数学公式进行截图,毕竟行内公式截图的话排版会很乱。看原博客地址会有更好的体验。spa
上一篇文章介绍如何使用sklearn
进行线性回归预测。接下来本文将深刻原理,了解线性回归是如何工做的。code
基础概念
线性回归为什么叫线性?实际上,像在处理Google的股票统计数据时,咱们使用线性回归是在这堆数据所在的N维空间中找到一条线来描述这些数据的规律,所以才叫线性回归。这个过程称为拟合,这条线成为拟合线。get
这条拟合线上的某个数据点或多或少都会偏离实际统计的值。实际统计数据和拟合线对应数据的差叫残差。很明显,残差能够反映模型的预测偏差。同步
可是残差有正有负的,不方便计算。并且实际运用中咱们不须要关注残差的正负,由于正负并不能描述偏差的大小程度。为了下降计算复杂性,咱们使用这个差值的平方进行计算。你可能会想到,差值的平方不是把差值给改了吗,不要紧吗?答案是:数据确实变了,但没影响。由于咱们真正使用的是残差的绝对值,用它描述偏差大小的程度,而对这个绝对值进行平方后有一样的效果,毕竟y = |x| 与y = x^2有一样的单调性。博客
结合上述平方的想法,为了让预测更加准确,咱们应该选择一条线,可以使得线上每一个点与实际数据的残差平方的总和最小。这样的线才能叫最佳拟合线。数学
构建模型
接下来就是利用统计数据和上述原理来构建模型,也就是找最佳拟合线。it
二维空间中,直线能够表示为:io

咱们已经有经过统计获得的不少份数据Xi和Yi,接下来的目标就是利用这些数据求解参数a和b。ast
求解过程暂时不展开,请参考这个讲述求解参数的文章。最终获得的结果以下图所示:


至此便可获得最佳拟合线的参数,代回直线方程中就能够做为预测模型,可用于对新的X进行计算从而预测出对应的Y。其中,


上述的这种方法称为最小二乘法(Least Squares)。扩展到N维空间,最小二乘法依旧可用,不过我怕陷入数学的漩涡暂时不敢继续深刻。除此以外,在线性回归中求解参数的方法还有“梯度降低法(Gradient Descent)”。
R方理论评估模型
在前一篇文章中提到了模型的准确性accuracy
一词。实际上accuracy
在统计学中应该称为“可决系数”,它的计算方法有两种。在这里我尝试介绍R方理论做为计算方法。
R方的计算方法以下:

这个式子用1减去y的残差平方和与y的总方差的比值,y减去widehat{y}也就是残差,是拟合方程中对数据尚不能解释到的部分,用1减去不能解释的部分,那么剩下的就是能够解释的部分。也就是说自变量解释了因变量变更的百分比的多少,那么R^2 的值确定是越大越好,意味着该模型把y的变更解释得好,R^2的范围显然是0到1。