机器学习——线性回归(数学原理推导+Python代码实现+模型评估+实验分析)

本文深入探讨了线性回归的数学原理,包括一元和多元线性回归的模型描述和误差分析。通过梯度下降法介绍了参数求解,并展示了代码实现过程。此外,文章还讨论了模型评估方法,如交叉验证和混淆矩阵,以及如何通过调整学习率和正则化避免过拟合。最后,通过实验分析强调了数据量、模型复杂度和正则化对结果的影响。

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

(一)线性回归原理推导

线性回归:用一条直线较为精确地描述数据之间的关系。这样当出现新的数据的时候,就能够预测出一个简单的值。

1.1 模型描述

线性回归按变量数量的多少可以分为:一元线性回归(简单线性回归)和多元线性回归

一元线性回归(有一个自变量),模型可以表示如下:
y = θ 0 + θ 1 x 1 + ε y=\theta _{0}+\theta _{1}x_{1}+\varepsilon y=θ0+θ1x1+ε

x x x:自变量(数据)
y y y:因变量(标签)
θ 0 \theta _{0} θ0:截距
θ 1 \theta _{1} θ1:变量回归系数
ε \varepsilon ε: 误差项的随机变量

θ 0 + θ 1 x \theta _{0}+\theta _{1}x θ0+θ1x:反映了由于x的变化而引起的y的线性变化。
ε \varepsilon ε:反映了除了x和y之间的线性关系之外的随机因素对y的影响。也可以说是真实值和预测值之间的误差。希望这个误差项越小越好,并且接近于0。

误差 ε \varepsilon ε是独立并且具有相同的分布服从均值为0方差为 θ 2 \theta ^{2} θ2的高斯分布。(没有数据可以100%服从这个分布,但不代表这个事情做不了,数学原理是推导理论的支撑,实际上,数据来源于生活,服务于生活,就足够了,没有绝对正确的东西,我们得到的是一个近似的,最优的结果)

多元线性回归(有多个自变量),模型可以表示如下:
y = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ k x k + ε y=\theta _{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+...+\theta _{k}x_{k}+\varepsilon y=θ0+θ1x1+θ2x2+...+θkxk+ε

h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ k x k h_{\theta }(x)=\theta _{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+...+\theta _{k}x_{k} hθ(x)=θ0+θ1x1+θ2x2+...+θkxk:拟合的平面(如图,平面方程估计的结果就是预测值,红色的点是真实值)

θ 0 \theta _{0} θ0偏置项(在训练过程中,使模型能够更精准做的微调
θ 1 , θ 2 . . . \theta _{1},\theta _{2}... θ1θ2...权重项(核心影响因素)

注意:数据x是一个矩阵,行代表样本,列代表特征,所有对数据的操作,都是对矩阵的操作。而 θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ k x k \theta _{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+...+\theta _{k}x_{k} θ0+θ1x1+θ2x2+...+θkxk多了 θ 0 \theta _{0} θ0,由于 θ 0 \theta _{0} θ0的存在,没办法转换为矩阵,如果找到 x 0 x _{0} x0 θ 0 \theta _{0} θ0组合在一起就可以转换为矩阵形式,而 x 1 x_{1} x1 x 2 x_{2} x2都是实际存在的特征,可以创建新的一列 x 0 x _{0} x0,值全为1,因为1乘以一个数等于它本身。

现在就可以转换为一种矩阵形式。整合: h θ ( x ) = ∑ i = 0 n θ i x i = θ T x h_{\theta }(x)=\sum_{i=0}^{n}\theta _{i}x_{i}=\theta ^{T}x hθ(x)=i=0nθixi=θTx

对于每个样本 y ( i ) = θ T x ( i ) + ε ( i ) y^{(i)}=\theta ^{T}x^{(i)}+\varepsilon ^{(i)} y(i)=θTx(i)+ε(i)

误差服从高斯分布 p ( ε ( i ) ) = 1 2 π σ e x p ( − ( ε ( i ) ) 2 2 σ 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 ) ; θ ) = 1 2 π σ e x p ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) p(y^{(i)}|x^{(i)};\theta)=\frac{1}{\sqrt{2\pi\sigma}}exp(-\frac{(y^{(i)}-\theta ^{T}x^{(i)})^{2}}{2\sigma^{2}}) p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值