机器学习笔记01-线性回归LinearRegression
目录
1.什么是回归
2.一元线性回归
3.损失函数
4.最小二乘估计
5.小结
1. 什么是回归
当我们学习一门新课程、接触一个新专业时,总会对该领域的专有名词感到困惑,甚至看完解释仍难以理解其含义。在我们一起学习machine learning的过程中,我会尽量对相关名词用“人话”做一遍解释,以减少学习的“痛苦感”。
譬如今天要学的线性“回归”,这个回归(regression)和我们平时说的“回归祖国”的回归(return)是两个含义完全不同的词,它有“倒推”的含义在里面。我们学习的时候一定要抛开现有的认知,这样才能对新知识有更高的接受度。
那么,这个回归究竟是什么意思呢?其实回归算法是相对分类算法而言的,与我们想要预测的目标变量y的值类型有关。如果目标变量y是分类型变量,如预测用户的性别(男、女),预测月季花的颜色(红、白、黄……),预测是否患有肺癌(是、否),那我们就需要用分类算法去拟合训练数据并做出预测;如果y是连续型变量,如预测用户的收入(4千,2万,10万……),预测员工的通勤距离(500m,1km,2万里……),预测患肺癌的概率(1%,50%,99%……),我们则需要用回归模型。
聪明的你一定会发现,有时分类问题也可以转化为回归问题,例如刚刚举例的肺癌预测,我们可以用回归模型先预测出患肺癌的概率,然后再给定一个阈值,例如50%,概率值在50%以下的人划为没有肺癌,50%以上则认为患有肺癌。
这种分类型问题的回归算法预测,最常用的就是逻辑回归,后面我们会讲到。
2.一元线性回归
线性回归可以说是用法非常简单、用处非常广泛、含义也非常容易理解的一类算法,作为机器学习的入门算法非常合适。我们上中学的时候,都学过二元一次方程,我们将y作为因变量,x作为自变量,得到方程:
当给定参数和的时候,画在坐标图内是一条直线(这就是“线性”的含义)。
当我们只用一个x来预测y,就是一元线性回归,也就是在找一个直线来拟合数据。比如,我有一组数据画出来的散点图,横坐标代表广告投入金额,纵坐标代表销售量,线性回归就是要找一条直线,并且让这条直线尽可能地拟合图中的数据点。
这里我们得到的拟合方程是y = 0.0512x + 7.1884,此时当我们获得一个新的广告投入金额后,我们就可以用这个方程预测出大概的销售量。
数学理论的世界是精确的,譬如你代入x=0就能得到唯一的 ,=7.1884(y上面加一个小帽子hat,表示这个不是我们真实观测到的,而是估计值)。但现实世界中的数据就像这个散点图,我们只能尽可能地在杂乱中寻找规律。用数学的模型去拟合现实的数据,这就是统计。统计不像数学那么精确,统计的世界不是非黑即白的,它有“灰色地带”,但是统计会将理论与实际间的差别表示出来,也就是“误差”。
因此,统计世界中的公式会有一个小尾巴 ,用来代表误差,即:
3.损失函数
那既然是用直线拟合散点,为什么最终得到的直线是y = 0.0512x + 7.1884,而不是下图中的y = 0.0624x + 5呢?这两条线看起来都可以拟合这些数据啊?毕竟数据不是真的落在一条直线上,而是分布在直线周围,所以我们要找到一个评判标准,用于评价哪条直线才是最“合适”的。
我们先从残差说起。残差说白了就是真实值和预测值间的差值(也可以理解为差距、距离),用公式表示是:
对于某个广告投入 ,我们有对应的实际销售量 ,和预测出来的销售量(通过将代入公式计算得到),计算的值,再将其平方(为了消除负号),对于我们数据中的每个点如此计算一遍,再将所有的相加,就能量化出拟合的直线和实际之间的误差。
用公式表示就是:
这个公式是残差平方和,也叫均方误差(MSE),还叫欧氏距离(用于计算点间的距离,记住这个名称,以后我们会经常提到),在机器学习中它是回归问题中最常用的损失函数。一个公式好多个名称,刚接触都会觉得晕,但慢慢熟悉之后就好了。
所以,现在我们知道了损失函数是衡量回归模型误差的函数,也就是我们要的“直线”的评价标准。这个函数的值越小,说明直线越能拟合我们的数据。
4.最小二乘估计
我们不禁会问,这个和的具体值究竟是怎么算出来的呢?
我们知道,两点确定一线,有两组x,y的值,就能算出来和。但是现在我们有很多点,且并不正好落在一条直线上,这么多点每两点都能确定一条直线,这到底要怎么确定选哪条直线呢?
当给出两条确定的线,如y = 0.0512x + 7.1884,y = 0.0624x + 5时,我们知道怎么评价这两个中哪一个更好,即用损失函数评价。那么我们试试倒推一下?
以下是我们最头疼的数据公式推导,我尽量对每个公式作解释说明。
给定一组样本观测值,要求回归函数尽可能拟合这组值。普通最小二乘法给出的判断标准是:残差平方和的值达到最小。
我们再来看一下残差平方和的公式:
这个公式可以看做Q和的二次方程,因为y已知,Q、未知,那么我们要做的就转化为,研究什么时候Q能达到最小值。我们知道二次方程差不多长这样:
这类函数在数学中叫做凸函数,意思就是处处连续可导且有最小值。
还记得微积分知识的话,就知道导数为0时,Q取最小值。而决定,因此我们分别对求偏导:
都是已知的,全部代入就可求得的值啦。这就是最小二乘法,“二乘”是平方的意思。
5.小结
线性回归的定义,是利用最小二乘函数对一个或多个自变量之间关系进行建模的方法。现在我们看这个定义,是不是觉得不难理解了呢?
以上举的例子是一维的例子(x只有一个),如果有两个特征,就是二元线性回归,要拟合的就是二维空间中的一个平面。如果有多个特征,那就是多元线性回归:
最后再提醒一点,做线性回归,不要忘了前提假设是y和x呈线性关系,如果两者不是线性关系,就要选用其他的模型啦。