8.1线性和非线性回归分析
线性和非线性回归分析
[P1] 在大数据的分析预测中,我们一般会有一批已知的数据,然后根据这批数据,我们需要建立一个数据模型,接下来对更多的新数据利用这个模型去计算,从而得到预测结果。本章将讨论数据挖掘中一种特别重要的预测方法 回归,这种方法也是有监督学习算法中的一个重要成员。回归 这个词最早是由英国著名的生物学家和统计学家 Galton 在研究父代与子代身高关系问题时提出的。Galton 收集了大量父子身高的样本数据,通过反复观察数据发现:若父代的身高超过平均值,则其子代的平均身高将低于父代的平均身高;若父代的身高低于平均值,则其子代的身高将高于平均值。即子代的身高出现了 向平均值回归 的现象。
[P2] 这章我们重点介绍一元线性回归分析,这是目前最简单也是用的最广泛的预测分析方式。在介绍完一元线性回归分析之后,我们会再说一下复杂一些的多元线性回归分析。
[P3] 如果两个变量间的关系属于因果关系,一般可以用回归分析方法来进行分析,找出依变量变化的规律性。表示原因的变量为自变量,用 X 表示,它是固定的,没有随机误差,表示结果的变量称为依变量,用 Y 表示,Y 随 X 的变化而变化,有随机误差。线性回归有一元线性回归和多元线性回归之分。依变量 Y 在一个自变量 X 上的回归线性称为一元线性回归;依变量在多个自变量 X1 到 Xn 上的线性回归称为多元线性回归。以开篇那个身高回归的例子,最终生物学家 Galton 根据数据得到了一个统计规律,可以用一个简单的方程式表达,下一代的身高 Y 等于 33.37 加上 0.516 乘以 父辈 的身高。这个公式就是一个典型的一元线性回归的公式。
[P4] 如果两个变量呈线性关系,就可用一元线性回归方程来描述。其一般形式为Y=a+bX,其中,X是自变量,Y 是依变量,a、b是一元线性回归方程的系数。a、b 的估计值应是使误差平方和 D(a,b) 取最小值。
[P5] 我们先通过一个简单的实际例子,给大家展示回归分析的基本思路和方法。尽管这个例子很简单,但是一切回归分析的复杂模型在思想的本质上都没有超出这个例子。图中给出了 2009 年北京各区微博在线注册人数取对数与北京各区当年 GDP 取对数后的关系,这些数据来自 北京区域统计年鉴2010 。我们希望利用这些数据建立一个模型,模型的目标是解释一个区的 GDP,这个模型只依赖于唯一的变量,就是该区的微博注册人数。如果能够建立好这个模型并假设该模型有一定的稳定度,那么第二年我们可以根据微博注册人数来预测这个区的GDP 值。从图中我们可以直观感觉到,取对数后的 GDP 和微博注册人数有近似线性的关系,于是我们先用一个最简单的线性方程来表示这个关系,也就是右边上方这个方程式。极端情况下,注册人数为 0 时,该区域 GDP 值也为 0。但这和我们的常识不符合,因为不通网络也不会没有经济活动。所以我们在线性关系之上添加了一个参数,形成标准的直线表达,也就是右边下方这个公式,Y 等于 W1 乘以 X 加上 W0。
[P6] 根据公式,变化 w0 和 w1 ,我们可以得到不同的直线。左边,当我们变化 w0 的时候,我们得到了一组平行直线,右边,当我们变化 w1 的时候,我们得到了一组倾斜度不同的直线。我们这里,就是想用一条直线来代表数据的变化规律,从而用这条直线预测将来的数据。直线确实不可能匹配所有的数据点,我们接受数据有误差,误差只要在可控的范围内,我们就认为数据是正确的。那如何在这么多条直线中找到最好的直线呢?基本的想法是:在所有的直线中,与所有数据点平均而言,最接近的直线就是最好的直线。衡量模型定义直线与数据中所有点的接近程度,最普遍的方法是获取真正的 GDP 值与直线预测的GDP 之间差的平方值——这也是我们通常所说的最小二乘法的基本思想。
[P7] 用 Xi 和 Yi 分别表示第 i 区 2009 年微博的注册用户量和该区当年的 GDP 值,此时模型定义的直线与第 i 个数据点的接近程度衡量如课件的公式。Li 的值越小,表明模型与第 i 个数据点越接近。这个表达式称为平方损失函数。为了找到最好的直线,我们在整个数据集上考虑接近程度的平均值如第二个公式。把每一个点的接近程度累加,最后的和除以N得到整体的平均值。寻找最好的直线就是寻找最适合的 w0 和 w1 来产生一条直线,使得整个模型的平均损失达到最低。
[P8] 显然,在平方损失函数的最小值点处,L 关于 w0和 w1 的导数均为 0。对 w1 求导数,可以得到第一个公式。对 w0 求导数,可以得到第二个公式。令这两个式子都等于 0,则可以解得对应于平方损失函数值最小的最佳 w0 和w1 的值,见第三行的公式。其中上面加一横代表取平均值的意思。上述运算过程,因为它通过最小化误差的平方来寻找数据的最佳拟合,所以被称为最小二乘法。
[P9] 我们根据上面的计算结果,利用北京地区 2009 年微博在线注册人数和 GDP例子的真实数据,来找到最适合这个简单数据的函数关系。表的前 2 列给出了所有的真实数据,我们先计算 x的平方 和 xy ,把结果列在第 3 列和第4 列。
[P10] 表格太长,我们分为两页PPT显示,平均值的计算结果在这页的最后一行。
[P11] 根据上述最小二乘法得到的 w0 和 w1 的公式,可以求得 W1 的值,如课件中所示。w1 最终求得为 0.65169066 。当 w1 的值已经得到时,容易得到 w0 ,如课件中所示,最终求得 w0 为 4.20906454 。
[P12] 根据以上计算,我们得到北京市 2009 年微博在线注册人数和 GDP 之间的函数关系为 Y 等于 0.652 X 加 4.209 。我们画出这条直线,就得到课件右边的图。我们用这样一条简单的直线来拟合 GDP 和注册人数之间的关系,把一个复杂的问题转变为一个简单的线性函数问题。利用这条直线,我们可以预测,当微博注册人数达到一个更大的值的时候,我们计算出来 GDP 也会增长到一个新的值。虽然,这个计算出来的预测值会和最终真实的值有差异,但是只要差异在可控的误差范围内,我们就认为这条直线的预测是有效的。
[P13] 总结来说,我们首先有一批训练样本,我们认为这个数据模型可以用一条直线进行评估,于是我们的重点就是如何得出这条直线的两个参数。通过计算整体平均最小误差,我们得到直线的参数,于是可以构造一条直线 Y 等于 A 加 B 乘以 X 这样的 一元线性回归关系。得到一元线性回归关系后,在检验合适后,可用其进行预测。对于任意 x,将其代入方程即可预测出与之对应的 y。
[P14] 如果问题再复杂一些,我们的变量不止一个,而是有多个,比如 X1 到 Xp ,那这种情况称为多元线性回归。多元线性回归方程是一元线性回归方程的推广,其一般形式为 Y 等于 a 加 B1 X1 一直加到 Bp Xp 。其中,X1 到 Xp 是自变量,Y是依变量;a、b1 到 bp是多元线性回归方程的系数,我们的重点就是把 a 、b1 到 bp 求解出来。具体的计算方法我们就不介绍了,越是变量多,越是计算复杂。
[P15] 总结一下,我们这章的重点是一元线性回归分析。对于复杂的数据,我们需要建立一个数据模型用于预测后续的数据,目前最简单的数据模型就是用一条直线来拟合数据。一元线性回归就是找出这条直线的两个变量值,从而得到一条平均误差最小的直线,后续我们就可以用这条直线预测新的数据。