例子:
假设存在以下数据
工资 年龄 额度
4000 25 20000
8000 30 70000
5000 28 35000
7500 33 50000
12000 40 85000
上表中,将工资和年龄
看作两个特征,将额度看作标签,现在需要计算出工资和年龄分别对贷款额度产生多大的影响(参数)
首先,给出预测值的拟合公式
但是,一般来说,预测值和真实值之间存在差异,为了将差异考虑进来。对于第个样本,通常有如下式子成立
其中,被称为误差项,每个样本的误差项独立且服从相同的分布(均值为0,方差为
的正态分布),所以有以下式子成立
得
下面需要说的是怎么估计出参数最合理的值
第一步,引入似然函数【用数据推参数,计算出参数值是多少时与我们的数据结合恰好为真实值
,主要目标是使得得到的数据为真实值的可能性越大越好】。对于同一个似然函数,如果存在一个参数值,使得它的函数达到最大的话,这个值就是最为合理的参数值,在已知观测数据的情况下,参数
的似然函数为,懒得转latex了直接截图了

image.png
第二步,取对数似然,直接算乘积不好算,用对数的话可以分解成加法

image.png
为了使似然函数达到最大,必须使

image.png

image.png
上式实际就是残差平方和的一半,求该式的最小值就是求使得残差平方和最小的参数值,即最小二乘估计
第三步,求导
首先把上式展开

image.png
此处涉及到矩阵求导的问题,常用的矩阵求导公式如下

image.png
求导如下

image.png
令导数等于0,得到

image.png
此外,可用以下指标来评估模型预测性能

image.png
当残差平方和越小,上述指标越大【越接近1】,预测性能越好。
但是并不是所有的数据都恰好能用这种方法求解出参数,线性回归只能当做一个特例,下面引入梯度下降方法,
假设现在的目标函数是

image.png
其中现在需要找到上述目标函数的最小值,利用梯度下降来实现,首先,需要找到偏导的方向(梯度上升),求偏导【存在多个参数的情况下,参数各自求偏导,各自优化】

image.png
1)批量梯度下降

image.png
这种方法容易得到最优解(过度收敛),但是由于每次都考虑所有样本,迭代速度会非常慢
2)随机梯度下降

image.png
这种方法每次只随机使用一个样本,迭代速度快,但是不一定每次都朝着收敛的方向(比如离群点,收敛过程不稳定)
3)小批量梯度下降

image.png
其中表示学习率(步长),一般较小。这种方法每次采用部分样本,避免了采用全部样本的耗时慢和一个样本的收敛结果不稳定问题。在迭代过程中,学习率可以改变,比如第1-10000次迭代,学习率设为0.01(稍大),10001-20000次迭代中,学习率设为0.005,20001-100000次迭代中,学习率设为0.001,即在离最低点比较远的时候,可以设定稍大的步长,越靠近最低点,步长越小,越要一步步走,避免错失合理的参数值。