机器学习线性回归算法原理推导

本文围绕线性回归展开,以工资和年龄为特征,预测银行贷款额度。介绍了线性回归的通俗解释、数学公式,分析了真实值与预测值的误差,推导了似然函数和目标函数,还给出了求偏导过程。最后介绍了常用评估项R2,其值越接近1,模型拟合越好。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个例子

  • 数据:工资和年龄(2个特征)
  • 目标:预测银行会贷款给我多少钱(标签)
  • 考虑:工资和年龄都会影响最终银行贷款的结果,那么他们各自会有多大的影响呢?(参数)
    样本数据如下图所示:
    在这里插入图片描述

通俗解释

  • X1,X2就是我们的两个特征(工资,年龄),Y是银行最终会借给我们多少钱
  • 找到合适的一条线(想象一个高维)来最好的拟合我们的数据点
    在这里插入图片描述

数学公式

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

误差

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

评估方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值