线性回归算法的数学原理

在机器学习中,调用算法是件比较容易的事,但是我们想要将机器学习理解的更加透彻,就必须深刻理解每一种算法背后的数学原理,这对于我们后期调整算法参数,改进算法模型有着非常大的帮助。

其实看到这一大长串数学公式,我心里也很绝望,但是没办法呀,为了能深入理解线性回归原理,喝二两白酒也要给自己打打气。下面,我们一步一步去理解线性回归的数学原理。

下面是一个银行贷款的案例,银行会根据我们的年龄以及工资来决定我们的可贷款金额。现我们绘制一个拟合平面对该数据集进行拟合。其中 X 1 X_1 X1, X 2 X_2 X2就是我们的年龄以及工资特征, y y y是我们的可贷款额度。
线性回归算法的数学原理_第1张图片

线性回归算法的数学原理_第2张图片
由于对Markdown语法中的LaTex语法格式不是很熟悉,所以我就手写了整个推导过程,虽然字比较丑,但表达的意思没有变。下面我们就一步一步来理解整个推导过程。


1式为拟合平面方程:其中 θ 1 \theta_1 θ1 θ 2 θ_2 θ2为特征值的权重参数, θ 0 θ_0 θ0为常数项。

2式是将拟合平面方程转化为向量表达形式,其中添加了一项 X 0 X_0 X0 = 1,以使得 h θ ( x ) h_\theta(x) hθ(x)可表示为向量形式。

3式中真实值 y i y^i yi等于预测值 θ T ∗ X θ^T* X θTX加上误差值 ξ i ξ^i ξi
现假设误差项 ξ i ξ^i ξi 是独立且具有相同分布,并且服从均值为0,方差为 θ 2 θ^2 θ2 的高斯分布。所以误差项服从4式的概率分布函数,现将3式带入4式可得5式。

5式为关于偏差 ξ i ξ^i ξi的概率分布,概率分布(probability)与似然函数(likelihood)很相近,但又有所不同。似然:一个事件的计算结果介于0~1之间,这个值与一个事件发生的概率值是一样的,但它并不表示该事件发生的概率,只是很像概率,所以叫做似然。

统计学中,似然函数是一种关于统计模型参数的函数。给定输入x时,关于参数θ的似然函数L(θ|x)(在数值上)等于给定参数θ后变量X的概率:L(θ|x)=P(x|θ)。

线性回归算法的数学原理_第3张图片

6式是关于 θ θ θ参数的似然函数,使用累乘是将每一个样本的结果都要考虑进来。

7式是对6式做了对数变换,将累乘形式转化为累加形式,方便后面的计算。


线性回归算法的数学原理_第4张图片

下面我们就对这个对数似然函数进行求解。


8式是我们对7式进行了展开化简得到的结果。

9式是去掉8式中的常数项,保留含有参数 θ θ θ的部分, y i − θ T ∗ X y^i - θ^T* X yiθTX就是我们的误差项,我们做预测,当然是希望我们预测的非常准确,误差最小。所以就得到了我们的目标函数 J ( θ ) J(θ) J(θ)

为求得目标函数 J ( θ ) J(θ) J(θ)的最小值,对 J ( θ ) J(θ) J(θ)求偏导,得出 θ θ θ值。


线性回归算法的数学原理_第5张图片
以上过程就是线性回归算法的数学原理推导,线性回归算法是数学上的一种巧合,刚好可以利用求偏导的方法求解其极小值,对于其他非线性的算法,我们就无法通过这种方式来直接求解了。

总结下我们的推导过程:
构造拟合平面函数 — 引入误差项 — 求解关于θ的似然函数 — 变换为对数似然 (目标函数)— 求解极小值。

在做机器学习任务时,不管是回归还是分类,我们的目标都是使得我们预测的结果尽可能准确,使得预测值与真实值之间的误差尽可能小,这个误差就叫做损失。

你可能感兴趣的:(机器学习,算法,机器学习,python)