线性回归算法原理推导——最小二乘法直接计算参数矩阵

本文深入探讨了线性回归算法原理,利用最小二乘法直接计算参数矩阵,详细解析了似然函数和对数似然函数的转换过程,最终导出参数θ的最优解。

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

线性回归算法原理推导——最小二乘法直接计算参数矩阵

为了举例简单,假设银行的贷款系统计算一个人的额度时候,只受到年龄,每月固定收入的影响(当然实际情况要复杂的多),那么年龄和月固定收入对一个人的贷款额度的大小影响分别有多大呢?这个影响程度称之为参数。

假设年龄和每月固定收入分别为x1,x2x_1,x_2x1,x2,年龄和每月固定收入对贷款额度的影响程度分别用参数θ1,θ2\theta_1,\theta_2θ1,θ2来表示,那么一个人的贷款额度就可表示为

hθ(x)=θ0+θ1x1+θ2x2h_\theta(x) = \theta_0+\theta_1x_1+\theta_2x_2hθ(x)=θ0+θ1x1+θ2x2

对上述公式进行整合可得到(偏置项θ0\theta_0θ0在矩阵中仍然存在,只是x0x_0x0的值为1)

hθ(x)=∑i=0i=nθixi=θTXh_\theta(x) = \sum_{i = 0}^{i = n}\theta_ix_i = \theta^TXhθ(x)=i=0i=nθixi=θTX

这就变成了矩阵乘法

误差:误差就是真实值和预测值之间的差异用ε\varepsilonε来表示该误差

对于每个样本的真实值就等于该样本的预测值加上误差项,误差可正,可负,可零。用公式表示如下

y(i)=θ(i)x(i)+ε(i)y^{(i)} = \theta^{(i)}x^{(i)}+\varepsilon ^{(i)}y(i)=θ(i)x(i)+ε(i)

对于误差的几点说明

  • 每个样本计算对应一个误差,这些误差是独立同分布的,应该服从均值为0方差为θ2\theta^2θ2的高斯分布
  • 独立就是说任何一个误差与其他误差之间没有任何关系
  • 同分布就是说他们服从同一个概率分布

由于这些误差服从高斯分布,所以每个误差的概率可由下列公式计算得到

P(ε(i))=12πσexp⁡(−(ε(i))22σ2)P(\varepsilon ^{(i)}) = \frac{1}{\sqrt{2\pi}\sigma} \exp (-\frac{(\varepsilon ^{(i)})^2}{2\sigma^2})P(ε(i))=2πσ1exp(2σ2(ε(i))2)

但是我们需要求的是参数θ\thetaθ的值,而此公式中并没有参数θ\thetaθ

根据公式y(i)=θ(i)x(i)+ε(i)y^{(i)} = \theta^{(i)}x^{(i)}+\varepsilon ^{(i)}y(i)=θ(i)x(i)+ε(i)可得到

ε(i)=y(i)−θ(i)x(i)\varepsilon ^{(i)} = y^{(i)} - \theta^{(i)}x^{(i)}ε(i)=y(i)θ(i)x(i)

代入P(ε(i))=12πσexp⁡(−(ε(i))22σ2)P(\varepsilon ^{(i)}) = \frac{1}{\sqrt{2\pi}\sigma} \exp (-\frac{(\varepsilon ^{(i)})^2}{2\sigma^2})P(ε(i))=2πσ1exp(2σ2(ε(i))2)可以得到

P(y(i)∣x(i);θ)=12πσexp⁡(−(y(i)−θ(i)x(i)2σ2)P(y^{(i)}|x^{(i)};\theta) = \frac{1}{\sqrt{2\pi}\sigma} \exp (-\frac{( y^{(i)} - \theta^{(i)}x^{(i)}}{2\sigma^2})P(y(i)x(i);θ)=2πσ1exp(2σ2(y(i)θ(i)x(i))

这就引入了似然函数,似然函数就是用来求参数的函数,似然函数就是求什么样的参数能够跟已有数据组合后计算的预测值能够很好的反映真实值,最大(极大)似然函数就是使得求得的参数通过与已有数据组合得到的预测值能能更接近真实值,使得预测值是真实值或者接近真实值的概率最大化。

求参数θ\thetaθ的似然函数如下

L(θ)=∏i=1i=mP(y(i)∣x(i);θ)=∏i=1i=m12πσexp⁡(−(y(i)−θ(i)x(i)2σ2)L(\theta) = \prod_{i = 1} ^{i = m}P(y^{(i)}|x^{(i)};\theta) = \prod_{i = 1} ^{i = m} \frac{1}{\sqrt{2\pi}\sigma} \exp (-\frac{( y^{(i)} - \theta^{(i)}x^{(i)}}{2\sigma^2})L(θ)=i=1i=mP(y(i)x(i);θ)=i=1i=m2πσ1exp(2σ2(y(i)θ(i)x(i))

但是这样的似然函数因为是乘法在计算上是难以求值的或者说计算复杂度很大。于是引入了对数似然函数,将原来的似然函数取对数,根据对数的运算法则可以将乘法运算化简为加法运算

对数运算法则ln(AB)=ln(A)+ln(B)ln(AB) = ln(A) +ln(B)ln(AB)=ln(A)+ln(B)

对原似然函数取对数

ln(L(θ))=ln(∏i=1i=m12πσexp⁡(−(y(i)−θ(i)x(i)2σ2))=∑i=1i=mln(12πσexp⁡(−(y(i)−θ(i)x(i)2σ2))=mln(12πσ)−1σ212∑i=1i=m(y(i)−θ(T)x(i))2ln(L(\theta)) = ln(\prod_{i = 1} ^{i = m} \frac{1}{\sqrt{2\pi}\sigma} \exp (-\frac{( y^{(i)} - \theta^{(i)}x^{(i)}}{2\sigma^2})) \\ \qquad \qquad = \sum_{i = 1}^{i = m}ln(\frac{1}{\sqrt{2\pi}\sigma} \exp (-\frac{( y^{(i)} - \theta^{(i)}x^{(i)}}{2\sigma^2})) \\ \qquad \qquad= mln(\frac{1}{\sqrt{2\pi}\sigma}) - \frac{1}{\sigma^2}\frac{1}{2}\sum_{i =1}^{i = m}(y^{(i)} - \theta^{(T)}x^{(i)})^2ln(L(θ))=ln(i=1i=m2πσ1exp(2σ2(y(i)θ(i)x(i)))=i=1i=mln(2πσ1exp(2σ2(y(i)θ(i)x(i)))=mln(2πσ1)σ2121i=1i=m(y(i)θ(T)x(i))2

现在 A=mln(12πσ),B=1σ212∑i=1i=m(y(i)−θ(T)x(i))2A = mln(\frac{1}{\sqrt{2\pi}\sigma}),\quad B =\frac{1}{\sigma^2}\frac{1}{2}\sum_{i =1}^{i = m}(y^{(i)} - \theta^{(T)}x^{(i)})^2A=mln(2πσ1),B=σ2121i=1i=m(y(i)θ(T)x(i))2

显然AAA是一个常数,BBB是一个正数,我们的目标是使得对数似然函数的值最大,因为它反映了预测值能够多大程度上接近真实值或者说预测值是真实值的概率,它的值越大,预测值越接近真实值,所以要使得BBB的值最小

于是得到了最小二乘法的公式:

J(θ)=12∑i=1i=m(y(i)−θ(T)x(i))2J(\theta) =\frac{1}{2}\sum_{i =1}^{i = m}(y^{(i)} - \theta^{(T)}x^{(i)})^2J(θ)=21i=1i=m(y(i)θ(T)x(i))2

我们的目标是求参数θ\thetaθ的值使得J(θ)J(\theta)J(θ)最小,根据矩阵公式X2=XTXX^2 = X^TXX2=XTX,对J(θ)J(\theta)J(θ)展开,然后对θ\thetaθ求导(其中涉及到一点矩阵求导的公式),并且化简,让导函数等于0,最后得到θ=(XTX)−1XTy\theta = (X^TX)^{-1}X^Tyθ=(XTX)1XTy

下面是展开过程和求导过程
展开过程
求导过程
评估线性拟合的效果最常用的评估项是R2R^2R2
R2=1−∑i=1i=m(yi^−yi)2∑i=1i=m(yi−yiˉ)2\begin{aligned}R^2 = 1 - \frac{\sum_{i =1}^{i = m}(\hat{y_i}{ - y_i})^2}{\sum_{i = 1}^{i = m}(y_i - \bar{y_i})^2}\end{aligned}R2=1i=1i=m(yiyiˉ)2i=1i=m(yi^yi)2
R2R^2R2的值越接近1,拟合效果越好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值