本系列是《玩转机器学习教程》一个整理的视频笔记。本小节主要介绍多元线性回归以及其正规方程。
01
多元线性回归
前面介绍的都是简单线性回归的问题,样本有一个特征值。但是在真实世界中,一个样本通常拥有多个特征值,甚至特征值的数量达到成千上万个。针对这样的样本,依然可以使用线性回归的思路来解决,这也被称之为多元线性回归。
样本中的每个特征前面都有一个系数,相应的如果一个样本中有n个特征,那么相应的就会有(n 1)个参数,其中一个是截距。前面介绍的简单线性回归中,每一个样本只有一个特征,相应的也就只有一个系数,总共有2个参数,其中也包含一个截距。
简单线性回归与复杂线性回归的表达式是一致的,只不过样本的特征从1扩展到了n,相应的对应的系数也从1变成了n。求解多元线性回归与简单线性回归的思路是一致的:
在简单线性回归中,我们计算参数a(样本一个特征前的系数)以及参数b(截距),使得损失函数尽可能的小。对于多元线性回归问题,依然使用的是与简单线性回归相同的损失函数,这个损失函数表达的意思就是预测的结果和真实的结果,他们之间差的平方和,要让这个式子尽可能的小。前面从两个方面介绍为什么要使用这样的损失函数:
- 他是连续可导的;
- 他限制哪个最大的误差尽可能的小。
只不多在多元线性回归中,yi的表达式变成了多元的表示,而不再是简单的ax b。所以此时我们的目标变成了找到这(n 1)个参数的值,使得损失函数尽可能的小。
此时将(n 1)个参数θ表示成一个列向量,为了保持每个样本的特征都对应一个系数,此时将截距θ0乘上一个X0,此时将X0表示成第i个样本的第0个特征。原本每一个样本中只有从1到n的n个特征,没有第0个特征,所以引进的这第0个特征是虚构的,只是为了和θ0结合在一起,让整个式子在推导的时候更加的方便,当然引进的X0要和原来的方程保持一致,所以这个第0个特征的值将是恒等于1的。
此时的第i个样本Xi是加上了一个恒等于1的第0个特征,此时需要注意的是Xi是一个行向量,因为此时X是一个矩阵,每一行表示一个样本,而每一列表示样本中的一个特征,Xi表示从X中抽取出第i行,所以Xi本身就是一个行向量。
我们把第i个样本以及对应的参数θ都表示成了向量的形式,下面计算第i个样本的预测值就可以表示成Xi乘上θ,也就是Xi和θ向量对应元素相乘之后再相加的结果,这是一个典型的两个向量点乘的过程。
前面只是拿出了第i个样本进行计算,下面将其推广到全部的样本中:
设想有一个矩阵Xb,此时Xb和原来的X的矩阵唯一的不同就是,Xb添加了一个恒等于1的第0个特征,也就是额外多了一列。在机器学习中,有时候并不区分,都使用X来表示,但是在线性回归中其实样本矩阵X是多了一列的,这个课程为了保持严谨将加入第0个特征的样本矩阵表示成Xb。
- X表示有m个样本n个特征,即m行n列的矩阵;
- Xb表示有m个样本(n 1)个特征,即m行(n 1)列的矩阵,对于与X,新增加了一个全为1的列。
相应的θ就是有(n 1)个元素的列向量,此时y hat就等于Xb乘上θ向量,此时y hat是一个向量,此时的向量就是使用多元线性回归法得到的θ这个参数相应的对X中每一个样本进行预测的结果。将其看成是矩阵乘法,而矩阵乘法的规则就是第一个矩阵的每一行乘上第二个矩阵的每一列进行相乘再相加的运算,可以看出计算的结果就是每一个样本预测的结果。所以此时的y hat也是一个列向量,其中一共有m个元素,每一个元素就是对应的原来X中,每一个样本经过θ后得到的预测值。
多元线性回归的本质就是:
相应的y hat向量中的第i个元素就是相应的第i个样本的预测值。同时将损失函数也转换成矩阵的运算。此时损失函数计算结果为标量值。
此时多元线性回归问题就变成了估计一个θ向量,使得目标函数的矩阵运算最终的结果尽可能小。
计算这个最少的参数θ向量也可以使用在简单线性回归中使用的最小二乘法,只不过此时的对θ向量中的每一个元素都进行求导运算,让求导后的结果等于0,只不过此时在整个矩阵上进行运算,由于计算过程比较复杂,并没有进行展开介绍。
02
多元线性回归的正规方程解
使用多元线性回归的正规方程求解解的过程缺点就是时间复杂度很高,在这里这个n没有区分是行数还是列数,在实际应用中,不论你的样本量非常大或者样本特征非常多,对应的就是Xb的行数或者列数特别多,使用正规方程解,可能都会出现计算慢这些效率问题,这个问题其实是有解决方案的,这个解决方案其实是解决多元线性回归更常用的方法。
我们也需要知道,对于多元线性回归问题,我们可以直接使用正规方程解直接求解参数它和θ对应的值的。当然,这么方便的可以得到数学解的机器学习模型是非常少的。使用正规方程解求解参数的优点就是我们不再需要对数据进行归一化的处理,因为通过这个数学分析就知道了,最终估计出来的θ无非就是原始的数据进行数学运算的结果,在这种计算的过程中不存在量纲的问题的。而最终得到的θ也是相应样本特征的系数而已,他没有量纲的问题,所以我们在上一章介绍的在使用kNN算法前,最好对数据进行归一化处理,但是对于多元线性回归问题来说,我们没有必要进行数据的归一化。