回归问题将分为四部分讲解:
1、普通最小二乘 OLS
2、二项式回归 Poly
3、岭回归,Lasso回归
4、最大似然估计、最大后验概率、贝叶斯公式与上述各类回归模型间的联系
本节介绍:普通最小二乘OLS
一、背景知识
1、前情回顾
机器学习的四大要素:
输入数据:输入数据D = {X,y},X为输入的n维特征,y为目标值(真值)
某个未知的最佳映射模型:y = f(X)
假设模型:y' = h(X),这是我们实际训练得到的模型
损失函数:计算y与y'之间的差距
2、特征向量扩张 expend feature vector
首先,什么是特征向量?
答:就是输入数据D = {X,y} 中X的具体某一行。
为什么要扩张?怎么扩张?
答:为方便理解,假设特征向量为1*1的向量(即只有一个输入值),有n组数据,模型为线性回归模型(若对线性回归的概念有疑问,此处不多赘述了。可跳转我另一个专栏中的文章链接https://blog.csdn.net/qq_46380784/article/details/125821540?spm=1001.2014.3001.5502则 具体某一次输入的特征向量可以表示为,预测模型可以表示为 。
将模型转变为矩阵/向量乘法的形式,则
显然,特征向量的维度从原来的1*1变为了1*2。由于在实操中,统一使用矩阵运算能够很好的描述各类函数,所以将各项数据都转换为矩阵的形式。因此,将原本的特征向量左侧扩张一列,添加数字1。
换个例子,若特征向量为1*k的向量,有n组数据,模型为线性回归模型。则某一次的输入向量在扩张后应为
i∈[1,n]
预测模型为
推广到整个模型,输入的特征矩阵
即,预测模型可表示为:
OK, 接下来进入正题。
二、普通最小二乘 OLS
上一篇文章中提到,可以使用预测方差和SSE(sum of square error)来描述模型的损失函数,即:
我们的目标就是要找到w*使得L(w)的值最小。即最小二乘
那么有两种方法可以得到,(1)梯度下降算法,(2)求导/剃度,求驻点
我们现在关注第二种方法:求梯度。
对L(w)做基本展开:
对矩阵求梯度时,会用到以下两条公式:
接下来,对损失函数求梯度:
求驻点:
得到:
若X为n*k阶矩阵,即有n条数据,每条数据k个输入特征。假设n≥k,则X一定为列满秩矩阵,R(X)=k。则为满秩,则可逆。
在这个条件下,我们可以得到局部最小点w*:
此公式称为最小二乘法的闭式解。
接下来判断w*是不是全局最小点。
求L(w)的黑塞矩阵:
求黑塞矩阵的二次型,得到二次型非负:
显然黑塞矩阵半正定,因而L(w)为凸函数,则驻点w*一定为全局最小点。
综述:通过使用SSE作为损失函数,假定X为列满秩矩阵,则可以得到w的闭式解w*。w*为全局最小点。但需要注意:若X不满足列满秩,则X^TX不可逆,则不能得到闭式解。在这种情况下,只能通过如梯度下降等的其他方法逼近全局最小点。