网站建站要多少钱,阿里云虚拟主机多个网站吗,做嵌入式开发的公司,wordpress 菜单 字体deepseek.com:多元线性回归的目标函数#xff0c;损失函数#xff0c;梯度下降 标量和矩阵形式的数学推导#xff0c;pytorch真实能跑的代码案例以及模型,数据#xff0c;预测结果的可视化展示#xff0c; 模型应用场景和优缺点#xff0c;及如何改进解决及改进方法数据推…deepseek.com:多元线性回归的目标函数损失函数梯度下降 标量和矩阵形式的数学推导pytorch真实能跑的代码案例以及模型,数据预测结果的可视化展示 模型应用场景和优缺点及如何改进解决及改进方法数据推导。
一、数学推导
1. 模型定义
输入 样本数 n n n特征数 m m m。特征矩阵 X ∈ R n × ( m 1 ) X \in \mathbb{R}^{n \times (m1)} X∈Rn×(m1)含截距项全1列。参数向量 β [ β 0 , β 1 , … , β m ] T ∈ R ( m 1 ) × 1 \beta [\beta_0, \beta_1, \dots, \beta_m]^T \in \mathbb{R}^{(m1) \times 1} β[β0,β1,…,βm]T∈R(m1)×1。 预测值 y ^ X β 或标量形式 y ^ i β 0 ∑ j 1 m β j x i j \hat{y} X \beta \quad \text{或标量形式} \quad \hat{y}_i \beta_0 \sum_{j1}^m \beta_j x_{ij} y^Xβ或标量形式y^iβ0j1∑mβjxij 2. 目标函数与损失函数
目标最小化预测值与真实值的平方误差。损失函数MSE L ( β ) 1 2 n ∑ i 1 n ( y ^ i − y i ) 2 1 2 n ∥ X β − y ∥ 2 2 L(\beta) \frac{1}{2n} \sum_{i1}^n (\hat{y}_i - y_i)^2 \frac{1}{2n} \| X \beta - y \|_2^2 L(β)2n1i1∑n(y^i−yi)22n1∥Xβ−y∥22 系数 1 2 n \frac{1}{2n} 2n1简化梯度计算避免平方项导数的系数干扰。 3. 梯度下降推导
标量形式
对每个参数 β j \beta_j βj 求偏导
截距项 β 0 \beta_0 β0 ∂ L ∂ β 0 1 n ∑ i 1 n ( y ^ i − y i ) \frac{\partial L}{\partial \beta_0} \frac{1}{n} \sum_{i1}^n (\hat{y}_i - y_i) ∂β0∂Ln1i1∑n(y^i−yi)特征权重 β j \beta_j βj j ≥ 1 j \geq 1 j≥1) ∂ L ∂ β j 1 n ∑ i 1 n ( y ^ i − y i ) x i j \frac{\partial L}{\partial \beta_j} \frac{1}{n} \sum_{i1}^n (\hat{y}_i - y_i) x_{ij} ∂βj∂Ln1i1∑n(y^i−yi)xij
矩阵形式
利用矩阵微分法则 ∇ β L 1 n X T ( X β − y ) \nabla_\beta L \frac{1}{n} X^T (X \beta - y) ∇βLn1XT(Xβ−y)
推导过程 L ( β ) 1 2 n ( X β − y ) T ( X β − y ) ⟹ ∂ L ∂ β 1 n X T ( X β − y ) L(\beta) \frac{1}{2n} (X \beta - y)^T (X \beta - y) \implies \frac{\partial L}{\partial \beta} \frac{1}{n} X^T (X \beta - y) L(β)2n1(Xβ−y)T(Xβ−y)⟹∂β∂Ln1XT(Xβ−y)
梯度下降更新公式 β ( t 1 ) β ( t ) − η ∇ β L β ( t ) − η n X T ( X β ( t ) − y ) \beta^{(t1)} \beta^{(t)} - \eta \nabla_\beta L \beta^{(t)} - \frac{\eta}{n} X^T (X \beta^{(t)} - y) β(t1)β(t)−η∇βLβ(t)−nηXT(Xβ(t)−y)
学习率 η \eta η控制参数更新步长。 二、应用场景
连续值预测 房价预测、销售额预测、股票价格趋势分析。 因果关系分析 研究广告投入与销量的量化关系。 基线模型 作为复杂模型如神经网络的性能对比基准。 三、优缺点及解决方法
优点
简单高效计算复杂度低( O(nm) ) 每轮梯度下降。可解释性强参数直接反映特征对目标的影响程度。闭式解存在当 X T X X^T X XTX可逆时可直接求解 β ( X T X ) − 1 X T y \beta (X^T X)^{-1} X^T y β(XTX)−1XTy。
缺点及解决方法
缺点解决方法线性假设限制引入多项式特征或使用非线性模型如决策树、神经网络。多重共线性正则化岭回归、Lasso、主成分分析PCA降维。对异常值敏感使用鲁棒损失函数Huber损失、数据清洗或加权最小二乘法。异方差性方差不均加权回归、Box-Cox变换稳定方差。特征维度高时不稳定正则化、逐步回归、特征选择如基于p值或AIC准则。
改进方法与数学推导
1. 正则化Ridge 回归
目标函数 L 1 2 m ∥ X w − y ∥ 2 λ ∥ w ∥ 2 L \frac{1}{2m} \|Xw - y\|^2 \lambda \|w\|^2 L2m1∥Xw−y∥2λ∥w∥2
梯度更新 ∇ w L 1 m X T ( X w − y ) 2 λ m w \nabla_w L \frac{1}{m} X^T (Xw - y) \frac{2\lambda}{m} w ∇wLm1XT(Xw−y)m2λw
PyTorch 实现
optimizer torch.optim.SGD(model.parameters(), lr0.1, weight_decay1.0) # weight_decay 对应 λ2. 数据预处理
标准化使特征均值为 0方差为 1加速收敛。异常值处理使用 IQR 或 Z-Score 过滤离群点。
3. 特征工程
多项式扩展将 x 1 , x 2 x_1, x_2 x1,x2 扩展为 x 1 2 , x 2 2 , x 1 x 2 x_1^2, x_2^2, x_1x_2 x12,x22,x1x2 等再用线性回归。
数学形式 y ^ w 1 x 1 w 2 x 2 w 3 x 1 2 w 4 x 2 2 w 5 x 1 x 2 b \hat{y} w_1 x_1 w_2 x_2 w_3 x_1^2 w_4 x_2^2 w_5 x_1x_2 b y^w1x1w2x2w3x12w4x22w5x1x2b 四、关键公式总结
内容标量形式矩阵形式预测值 y ^ i β 0 β 1 x i 1 ⋯ β m x i m \hat{y}_i \beta_0 \beta_1 x_{i1} \dots \beta_m x_{im} y^iβ0β1xi1⋯βmxim y ^ X β \hat{y} X \beta y^Xβ损失函数 L 1 2 n ∑ i 1 n ( y ^ i − y i ) 2 L \frac{1}{2n} \sum_{i1}^n (\hat{y}_i - y_i)^2 L2n1∑i1n(y^i−yi)2 L 1 2 n ∣ X β − y ∣ 2 2 L \frac{1}{2n} | X \beta - y |_2^2 L2n1∣Xβ−y∣22梯度 ∂ L ∂ β j 1 n ∑ i 1 n ( y ^ i − y i ) x i j \frac{\partial L}{\partial \beta_j} \frac{1}{n} \sum_{i1}^n (\hat{y}_i - y_i) x_{ij} ∂βj∂Ln1∑i1n(y^i−yi)xij ∇ β L 1 n X T ( X β − y ) \nabla_\beta L \frac{1}{n} X^T (X \beta - y) ∇βLn1XT(Xβ−y) 五、实际应用示例
房价预测 特征房屋面积、卧室数量、地理位置。输出房价。方法通过梯度下降拟合参数预测新样本价格。 广告效果分析 特征电视、网络、报纸广告投入。输出销售额增长。结论参数正负性指示广告渠道的有效性。 六、扩展正则化改进
岭回归L2正则化 L ( β ) 1 2 n ∥ X β − y ∥ 2 2 λ ∥ β ∥ 2 2 L(\beta) \frac{1}{2n} \| X \beta - y \|_2^2 \lambda \| \beta \|_2^2 L(β)2n1∥Xβ−y∥22λ∥β∥22 解决多重共线性防止过拟合。 LassoL1正则化 L ( β ) 1 2 n ∥ X β − y ∥ 2 2 λ ∥ β ∥ 1 L(\beta) \frac{1}{2n} \| X \beta - y \|_2^2 \lambda \| \beta \|_1 L(β)2n1∥Xβ−y∥22λ∥β∥1 自动特征选择稀疏解。
完整代码示例 import torch
import torch.nn as nn
import torch.optim as optim
import matplotlib.pyplot as plt# 生成随机数据
n_samples 100
n_features 2
X torch.randn(n_samples, n_features)
true_w torch.tensor([[3.0], [4.0]])
true_b torch.tensor([2.0])
y X true_w true_b torch.randn(n_samples, 1) * 0.1# 定义模型
class LinearRegression(nn.Module):def __init__(self, input_dim, output_dim):super(LinearRegression, self).__init__()self.linear nn.Linear(input_dim, output_dim)def forward(self, x):return self.linear(x)model LinearRegression(n_features, 1)# 定义损失函数和优化器
criterion nn.MSELoss()
optimizer optim.SGD(model.parameters(), lr0.01)# 训练模型
n_epochs 1000
losses [] # 初始化一个空列表来存储损失值for epoch in range(n_epochs):# 前向传播y_pred model(X)# 计算损失loss criterion(y_pred, y)losses.append(loss.item()) # 将损失值添加到列表中# 反向传播和优化optimizer.zero_grad()loss.backward()optimizer.step()if (epoch1) % 100 0:print(fEpoch [{epoch1}/{n_epochs}], Loss: {loss.item():.4f})# 可视化损失函数
plt.plot(losses) # 绘制损失函数随训练轮数的变化
plt.xlabel(Epoch)
plt.ylabel(Loss)
plt.title(Training Loss)
plt.savefig(lr.png)
plt.show()
七、总结
多元线性回归是机器学习的基石模型优势在于简单性和可解释性但受限于线性假设。实际应用中需结合数据预处理、正则化或非线性扩展方法以提升性能。矩阵形式计算高效适合编程实现标量形式便于理解梯度下降的微观机制。