机器学习之线性回归算法(一)

问题的提出

举个例子:

  • 数据:工资和年龄(两个特征)

  • 目标:预测银行会贷款给我多少钱(标签)

  • 考虑:工资和年龄都会影响最终银行贷款的结果,那么他们各自有多大的影响呢?(参数)

工资 年龄 额度
4000 25 20000
8000 30 70000
5000 28 35000
7500 33 50000
12000 40 85000

通常将机器学习中有监督分为:回归和分类。回归通过数据预测出一个值,分类是得到一个类别。比如,向银行借钱,回归得到的是,银行借给我多少钱,分类得到的是银行要不要借给我钱。

通俗理解,x1x_1x2x_2 就是我们的两个特征,(工资和年龄),YY 是银行最终会借给我们多少钱,我们所要做的就是找到一条线或者面来拟合我们的数据点。

机器学习之线性回归算法(一)

数学推导

  1. 假设θ1\theta_1是年龄的权重参数,$ \theta_2$是工资的权重参数,需要拟合的平面为:

hθ=θ0+θ1x1+θ2x2 h_{\theta}=\theta_0 +\theta_1x_1+\theta_2x_2

​ (其中θ0\theta_0是偏置项,与数据无关系)。

​ 对上式子进行整合,化为一般的情况:
hθ=i=0nθixi=θTx h_\theta=\sum_{i=0}^n\theta_ix_i=\theta^Tx

  1. 真实值与预测值之间肯定是要存在差异的,用 ε\varepsilon 表示误差。

    对于每一个样本:
    yi=θixi+εi y^i = \theta^ix^i+\varepsilon^i {(1)}
    公式的左侧为真实值,右侧为预测值加上误差

  2. 误差(重点)

    • 误差εi\varepsilon^i是独立并且具有相同的分布,服从均值为0,方差为θ2\theta^2的高斯分布

    • 独立:张三和李四一起贷款,他们俩没有关系

    • 同分布:他们俩都来我们假定的这家银行,是同一家银行哦

    • 高斯分布:银行可能给多,也可能给少,但是绝大多数情况下这个浮动不会太大,极小情况浮动比较大,符合正常情况

机器学习之线性回归算法(一)

​ 误差服从高斯分布是假设,还没有严格的数学证明,最终我们得到的结果是可用的

由于误差服从高斯分布:
p(εi)=12πσexp((εi)22σ2) p(\varepsilon^i) = \frac{1}{\sqrt{2\pi}\sigma}exp\Big(-\frac{(\varepsilon^i)^2}{2\sigma^2}\Big)
εi\varepsilon^i代入上式,可得
p(εi)=12πσexp(yiθTx)22σ2) p(\varepsilon^i) = \frac{1}{\sqrt{2\pi}\sigma}exp\Big(-\frac{(y^i- \theta^Tx)^2}{2\sigma^2}\Big)

  • 似然函数
    L(θ)=n=1m12πσexp(yiθTx)22σ2) L(\theta)=\prod_{n=1}^{m}{\frac{1}{\sqrt{2\pi}\sigma}exp\Big(-\frac{(y^i- \theta^Tx)^2}{2\sigma^2}\Big)}
    解释:什么样的参数跟我们的数据组合后恰好是真实值。

    ​ 似然函数是对所有样本的误差所对应的概率值的求和,当求和的值越大时,整体的误差就越小。

  • 对数似然:
    logL(θ)=logn=1m12πσexp(yiθTx)22σ2) \log L(\theta)=\log\prod_{n=1}^{m}{\frac{1}{\sqrt{2\pi}\sigma}exp\Big(-\frac{(y^i- \theta^Tx)^2}{2\sigma^2}\Big)}
    解释: 乘法难解,加法比较容易,对数里面的乘法就可以转换为加法了

    化简过程:


    =i=1mlog12πσexp(yiθTx)22σ2) 原式=\sum_{i=1}^{m}\log {\frac{1}{\sqrt{2\pi}\sigma}exp\Big(-\frac{(y^i- \theta^Tx)^2}{2\sigma^2}\Big)}

    =mlog12πσ1σ212i=1m(yiθTxi)2 =m\log\frac{1}{\sqrt{2\pi}\sigma}-\frac{1}{\sigma^2}\frac{1}{2}\sum_{i=1}^m(y^i-\theta^Tx^i)^2

    目标:让似然函数越大越好


    J(θ)=12i=1m(yiθTxi)2 J(\theta) = \frac{1}{2}\sum_{i=1}^m(y^i-\theta^Tx^i)^2
    上式也即最小二乘法,越小越好

    对上式进行展开(矩阵相乘等于矩阵的转置乘以它本身):
    =12(Xθy)T(Xθy) =\frac{1}{2}(X\theta - y)^T(X\theta-y)
    求偏导:
    θJ(θ)=θ(12(Xθy)T(Xθy)) \nabla_\theta J(\theta) = \nabla_\theta\Big(\frac{1}{2}(X\theta - y)^T(X\theta-y)\Big)

    =θ(12(θTXTyT)(Xθy)) =\nabla_\theta\Big(\frac{1}{2}(\theta^TX^T-y^T)(X\theta-y)\Big)

    =θ(12(θTXTXθθTXTyyTXθ+yTy)) =\nabla_\theta\Big(\frac{1}{2}(\theta^TX^TX\theta-\theta^TX^Ty-y^TX\theta+y^Ty)\Big)

    =12(2XTXθXTy(yTX)T)=XTXθXTy =\frac{1}{2}\Big(2X^TX\theta - X^Ty-(y^TX)^T\Big)=X^TX\theta-X^Ty

    :如果这里矩阵的求偏导不会的话,可以看一下文章最后面的参考公式

    通常我们认为偏导为0的时候,函数取得极小值,上式可以化简为:
    θ=(XTX)1XTy \theta = (X^TX)^{-1}X^Ty

    对于上面中的推导,XTXX^TX不一定存在逆,但是在这边线性回归中,刚好能够直接求出θ\theta的值。

  • 评估方法

    最常用的评估项R2R^2:

111i=1m(y^iyi)2i=1m(yiyˉ)2 {11} 1-\frac{\sum_{i=1}^m(\hat{y}_i- y_i)^2}{\sum_{i=1}^{m}(y_i-\bar{y})^2}

​ 分子为残差平方和,分母为类似方差项 yi^\hat{y_i}为预计值,R2R^2的取值越接近1,我们认为模型拟合得越好。

当原始的数据不服从正态分布的时候,我们会对数据先进行一定的处理,是数据呈现正态分布

参考公式

aa 是实数,β\beta ,XX 是向量,A、B、C 是与X 无关的矩阵

φβTXφX=β,φXTXφX=X,φXTAXφX=(A+AT)X \frac{\varphi \beta^TX}{\varphi X} = \beta,\frac{\varphi X^TX}{\varphi X} = X,\frac{\varphi X^TAX}{\varphi X} = (A+A^T)X

所有的努力都值得期许,每一份梦想都应该灌溉!

相关文章: