机器学习之线性回归算法(一)
问题的提出
举个例子:
| 工资 |
年龄 |
额度 |
| 4000 |
25 |
20000 |
| 8000 |
30 |
70000 |
| 5000 |
28 |
35000 |
| 7500 |
33 |
50000 |
| 12000 |
40 |
85000 |
通常将机器学习中有监督分为:回归和分类。回归通过数据预测出一个值,分类是得到一个类别。比如,向银行借钱,回归得到的是,银行借给我多少钱,分类得到的是银行要不要借给我钱。
通俗理解,x1 、x2 就是我们的两个特征,(工资和年龄),Y 是银行最终会借给我们多少钱,我们所要做的就是找到一条线或者面来拟合我们的数据点。

数学推导
- 假设θ1是年龄的权重参数,$ \theta_2$是工资的权重参数,需要拟合的平面为:
hθ=θ0+θ1x1+θ2x2
(其中θ0是偏置项,与数据无关系)。
对上式子进行整合,化为一般的情况:
hθ=i=0∑nθixi=θTx
-
真实值与预测值之间肯定是要存在差异的,用 ε 表示误差。
对于每一个样本:
yi=θixi+εi {(1)}
公式的左侧为真实值,右侧为预测值加上误差
-
误差(重点)
-
误差εi是独立并且具有相同的分布,服从均值为0,方差为θ2的高斯分布
-
独立:张三和李四一起贷款,他们俩没有关系
-
同分布:他们俩都来我们假定的这家银行,是同一家银行哦
-
高斯分布:银行可能给多,也可能给少,但是绝大多数情况下这个浮动不会太大,极小情况浮动比较大,符合正常情况

误差服从高斯分布是假设,还没有严格的数学证明,最终我们得到的结果是可用的
由于误差服从高斯分布:
p(εi)=2πσ1exp(−2σ2(εi)2)
将εi代入上式,可得
p(εi)=2πσ1exp(−2σ2(yi−θTx)2)
-
似然函数
L(θ)=n=1∏m2πσ1exp(−2σ2(yi−θTx)2)
解释:什么样的参数跟我们的数据组合后恰好是真实值。
似然函数是对所有样本的误差所对应的概率值的求和,当求和的值越大时,整体的误差就越小。
-
对数似然:
logL(θ)=logn=1∏m2πσ1exp(−2σ2(yi−θTx)2)
解释: 乘法难解,加法比较容易,对数里面的乘法就可以转换为加法了
化简过程:
原式=i=1∑mlog2πσ1exp(−2σ2(yi−θTx)2)
=mlog2πσ1−σ2121i=1∑m(yi−θTxi)2
目标:让似然函数越大越好
J(θ)=21i=1∑m(yi−θTxi)2
上式也即最小二乘法,越小越好
对上式进行展开(矩阵相乘等于矩阵的转置乘以它本身):
=21(Xθ−y)T(Xθ−y)
求偏导:
∇θJ(θ)=∇θ(21(Xθ−y)T(Xθ−y))
=∇θ(21(θTXT−yT)(Xθ−y))
=∇θ(21(θTXTXθ−θTXTy−yTXθ+yTy))
=21(2XTXθ−XTy−(yTX)T)=XTXθ−XTy
注:如果这里矩阵的求偏导不会的话,可以看一下文章最后面的参考公式
通常我们认为偏导为0的时候,函数取得极小值,上式可以化简为:
θ=(XTX)−1XTy
对于上面中的推导,XTX不一定存在逆,但是在这边线性回归中,刚好能够直接求出θ的值。
-
评估方法
最常用的评估项R2:
111−∑i=1m(yi−yˉ)2∑i=1m(y^i−yi)2
分子为残差平方和,分母为类似方差项 yi^为预计值,R2的取值越接近1,我们认为模型拟合得越好。
当原始的数据不服从正态分布的时候,我们会对数据先进行一定的处理,是数据呈现正态分布
参考公式
a 是实数,β ,X 是向量,A、B、C 是与X 无关的矩阵
φXφβTX=β,φXφXTX=X,φXφXTAX=(A+AT)X
所有的努力都值得期许,每一份梦想都应该灌溉!