一个例子

  • 数据:工资和年龄(2个特征)
  • 目标:预测银行会贷款给我多少钱(标签)
  • 考虑:工资和年龄都会影响最终银行贷款的结果,那么他们各自会有多大的影响呢?(参数)
    样本数据如下图所示:
    机器学习线性回归算法原理推导

通俗解释

  • X1,X2就是我们的两个特征(工资,年龄),Y是银行最终会借给我们多少钱
  • 找到合适的一条线(想象一个高维)来最好的拟合我们的数据点
    机器学习线性回归算法原理推导

数学公式

  • 假设θ1\theta_1是年龄的参数,θ2\theta_2是工资的参数
  • 拟合的平面:hθ(x)=θ0+θ1(x1)+θ2h_\theta(x)=\theta_0+\theta_1(x_1)+\theta_2(x2x_2)(θ0\theta_0是偏置项)
  • 整合后:hθ(x)=n=1Nxnθn=θTxh_\theta(x)=\sum_{n=1}^N{x_n\theta_n}=\theta^Tx(其中x0x_0全为1)

误差

  • 真实值和预测值之间肯定是存在差异的(用ϵ\epsilon来表示该误差)
  • 对于每个样本iiyi=θTxi+ϵiy^i=\theta^Tx^i+\epsilon^i
  • 误差ϵi\epsilon^i是独立并且具有相同的分布,并且服从均值为0,方差为θ2\theta^2的高斯分布
  • 独立:张三和李四一起来贷款,他俩没关系
  • 同分布:他俩都来得是我们假定的这家银行
  • 高斯分布:银行可能会多给,也可能会少给,但是绝大多数情况下这个浮动不会太大,极小情况下浮动会比较大,符合正常情况(值特殊时是正太分布)
  • 机器学习线性回归算法原理推导
  • 预测值和误差:yi=θTxiy^i=\theta^Tx^i+ϵi1\epsilon^i ——(1)
  • 由于误差服从高斯分布:p(ϵi)=12πσe(ϵi)22σ22p(\epsilon^i)=\frac{1}{\sqrt{2π}\sigma}*e^{\frac{-(\epsilon^i)^2}{2\sigma^2}} ——(2)
  • 将(1)式代入(2)式:p(yixi;θ)=12πσe(yiθTxi)22σ2p(y^i|x^i;\theta)=\frac{1}{\sqrt{2π}\sigma}*e^{\frac{-(y^i-\theta^Tx^i)^2}{2\sigma^2}}
  • 似然函数L(θ)=i=1mp(yixi;θ)=i=1m12πσe(yiθTxi)22σ2L(\theta)=\prod_{i=1}^mp(y^i|x^i;\theta)=\prod_{i=1}^m\frac{1}{\sqrt{2π}\sigma}*e^{\frac{-(y^i-\theta^Tx^i)^2}{2\sigma^2}}
    • 解释:什么样的参数跟我们的数据组合后恰好是真实值
  • 对数似然logL(θ)=logi=1mp(yixi;θ)=i=1m12πσe(yiθTxi)22σ2\log L(\theta)=\log \prod_{i=1}^mp(y^i|x^i;\theta)=\prod_{i=1}^m\frac{1}{\sqrt{2π}\sigma}*e^{\frac{-(y^i-\theta^Tx^i)^2}{2\sigma^2}}
    • 解释:乘法难解,加法就容易了,对数里面乘法可以转换成加法
    • 展开化简:i=1mlog12πσe(yiθTxi)22σ2=mlog12πσ1σ212i=1m(yiθTxi)2\sum_{i=1}^m \log \frac{1}{\sqrt{2π}\sigma}*e^{\frac{-(y^i-\theta^Tx^i)^2}{2\sigma^2}}=m\log \frac{1}{\sqrt{2π}\sigma}- \frac{1}{\sigma^2}*\frac{1}{2}\sum_{i=1}^m(y^i-\theta^Tx^i)^2
  • 目标:让似然函数(对数变换后也一样)越大越好J(θ)=12i=1m(yiθTxi)2J(\theta)=\frac{1}{2}\sum_{i=1}^m(y^i-\theta^Tx^i)^2(最小二乘法)
  • 目标函数:J(θ)=12i=1m(hθ(xi)yi)2=12(Xθy)T(Xθy)J(\theta)=\frac{1}{2}\sum_{i=1}^m(h_\theta(x^i)-y^i)^2=\frac{1}{2}(X\theta-y)^T(X\theta-y)
  • 求偏导:θ=θ(12(Xθy)T(Xθy))=θ(12(θTXTyT)(Xθy))\nabla_\theta=\nabla_\theta(\frac{1}{2}(X\theta-y)^T(X\theta-y))=\nabla_\theta(\frac{1}{2}(\theta^TX^T-y^T)(X\theta-y))
    =θ(12(θTXTXθθTXTyyTXθ+yTy))=\nabla_\theta(\frac{1}{2}(\theta^TX^TX\theta-\theta^TX^Ty-y^TX\theta+y^Ty))
    =12(2XTXθXTy(yTX)T)=XTXθXTy=\frac{1}{2}(2X^TX\theta-X^Ty-(y^TX)^T)=X^TX\theta-X^Ty
  • 令偏导等于0:θ=XTyXTX\theta=\frac{X^Ty}{X^TX}

评估方法

  • 最常用的评估项R2:1i=1m(y^iyi)2()i=1m(yiy)2()R^2:1-\frac{\sum_{i=1}^m(\hat y_i-y_i)^2(残差平方和)}{\sum_{i=1}^m(y_i-\overline y)^2(类似方差项)}
  • R2R^2的取值越接近于1,我们认为模型拟合的越好
  • R2R^2的取值越接近于0,我们认为模型拟合的不好

相关文章: