当前位置: 首页 > article >正文

用deepseek学大模型05-线性回归

deepseek.com:多元线性回归的目标函数,损失函数,梯度下降 标量和矩阵形式的数学推导,pytorch真实能跑的代码案例以及模型,数据,预测结果的可视化展示, 模型应用场景和优缺点,及如何改进解决及改进方法数据推导。

一、数学推导

1. 模型定义
  • 输入
    • 样本数 n n n,特征数 m m m
    • 特征矩阵 X ∈ R n × ( m + 1 ) X \in \mathbb{R}^{n \times (m+1)} XRn×(m+1)(含截距项全1列)。
    • 参数向量 β = [ β 0 , β 1 , … , β m ] T ∈ R ( m + 1 ) × 1 \beta = [\beta_0, \beta_1, \dots, \beta_m]^T \in \mathbb{R}^{(m+1) \times 1} β=[β0,β1,,βm]TR(m+1)×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_{j=1}^m \beta_j x_{ij} y^=Xβ或标量形式y^i=β0+j=1mβ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_{i=1}^n (\hat{y}_i - y_i)^2 = \frac{1}{2n} \| X \beta - y \|_2^2 L(β)=2n1i=1n(y^iyi)2=2n1Xβy22
    • 系数 1 2 n \frac{1}{2n} 2n1:简化梯度计算,避免平方项导数的系数干扰。

3. 梯度下降推导
标量形式

对每个参数 β j \beta_j βj 求偏导:

  1. 截距项 β 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_{i=1}^n (\hat{y}_i - y_i) β0L=n1i=1n(y^iyi)
  2. 特征权重 β j \beta_j βj j ≥ 1 j \geq 1 j1)
    ∂ L ∂ β j = 1 n ∑ i = 1 n ( y ^ i − y i ) x i j \frac{\partial L}{\partial \beta_j} = \frac{1}{n} \sum_{i=1}^n (\hat{y}_i - y_i) x_{ij} βjL=n1i=1n(y^iyi)xij
矩阵形式

利用矩阵微分法则:
∇ β L = 1 n X T ( X β − y ) \nabla_\beta L = \frac{1}{n} X^T (X \beta - y) βL=n1XT(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)βL=n1XT(Xβy)
梯度下降更新公式

β ( t + 1 ) = β ( t ) − η ∇ β L = β ( t ) − η n X T ( X β ( t ) − y ) \beta^{(t+1)} = \beta^{(t)} - \eta \nabla_\beta L = \beta^{(t)} - \frac{\eta}{n} X^T (X \beta^{(t)} - y) β(t+1)=β(t)ηβL=β(t)nηXT(Xβ(t)y)

  • 学习率 η \eta η:控制参数更新步长。

二、应用场景

  1. 连续值预测
    • 房价预测、销售额预测、股票价格趋势分析。
  2. 因果关系分析
    • 研究广告投入与销量的量化关系。
  3. 基线模型
    • 作为复杂模型(如神经网络)的性能对比基准。

三、优缺点及解决方法

优点
  1. 简单高效:计算复杂度低(( O(nm) ) 每轮梯度下降)。
  2. 可解释性强:参数直接反映特征对目标的影响程度。
  3. 闭式解存在:当 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 L=2m1Xwy2+λw2

梯度更新
∇ 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 wL=m1XT(Xwy)+m2λw

PyTorch 实现

optimizer = torch.optim.SGD(model.parameters(), lr=0.1, weight_decay=1.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^=w1x1+w2x2+w3x12+w4x22+w5x1x2+b


四、关键公式总结

内容标量形式矩阵形式
预测值 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_{i=1}^n (\hat{y}_i - y_i)^2 L=2n1i=1n(y^iyi)2 L = 1 2 n ∥ X β − y ∥ 2 2 L = \frac{1}{2n} \| X \beta - y \|_2^2 L=2n1Xβy22
梯度 ∂ L ∂ β j = 1 n ∑ i = 1 n ( y ^ i − y i ) x i j \frac{\partial L}{\partial \beta_j} = \frac{1}{n} \sum_{i=1}^n (\hat{y}_i - y_i) x_{ij} βjL=n1i=1n(y^iyi)xij ∇ β L = 1 n X T ( X β − y ) \nabla_\beta L = \frac{1}{n} X^T (X \beta - y) βL=n1XT(Xβy)

五、实际应用示例

  1. 房价预测
    • 特征:房屋面积、卧室数量、地理位置。
    • 输出:房价。
    • 方法:通过梯度下降拟合参数,预测新样本价格。
  2. 广告效果分析
    • 特征:电视、网络、报纸广告投入。
    • 输出:销售额增长。
    • 结论:参数正负性指示广告渠道的有效性。

六、扩展:正则化改进

  • 岭回归(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(β)=2n1Xβy22+λβ22
    • 解决多重共线性,防止过拟合。
  • Lasso(L1正则化)
    L ( β ) = 1 2 n ∥ X β − y ∥ 2 2 + λ ∥ β ∥ 1 L(\beta) = \frac{1}{2n} \| X \beta - y \|_2^2 + \lambda \| \beta \|_1 L(β)=2n1Xβy22+λβ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(), lr=0.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 (epoch+1) % 100 == 0:print(f'Epoch [{epoch+1}/{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()

七、总结

多元线性回归是机器学习的基石模型,优势在于简单性和可解释性,但受限于线性假设。实际应用中需结合数据预处理、正则化或非线性扩展方法以提升性能。矩阵形式计算高效,适合编程实现;标量形式便于理解梯度下降的微观机制

相关文章:

用deepseek学大模型05-线性回归

deepseek.com:多元线性回归的目标函数,损失函数,梯度下降 标量和矩阵形式的数学推导,pytorch真实能跑的代码案例以及模型,数据,预测结果的可视化展示, 模型应用场景和优缺点,及如何改进解决及改进方法数据推…...

DC-7靶机渗透测试全过程

目录 前期准备 一、渗透测试 1.IP地址查询 2.端口地址收集 3.网页信息收集 社工收集信息 Drush直接修改账户密码 下载PHP插件 反弹shell 二、总结 前期准备 攻击机 : kali windows11 靶机: DC-7(调至NAT模式) 一、渗透测试 1.IP地址查询 …...

什么是服务的雪崩、熔断、降级的解释以及Hystrix和Sentinel服务熔断器的解释、比较

1.什么是服务雪崩? 定义:在微服务中,假如一个或者多个服务出现故障,如果这时候,依赖的服务还在不断发起请求,或者重试,那么这些请求的压力会不断在下游堆积,导致下游服务的负载急剧…...

解决IDEA报错:java 找不到符号

问题:IIDEA编译项目一直报 例如 java: 找不到符号 符号: 方法 getUserId()异常 的错误 解决方法: 1、刷新maven 2、clean package...

基于SpringBoot的医院药房管理系统【源码+答辩PPT++项目部署】高质量论文1-1.5W字

作者简介:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容:🌟Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…...

Ubuntu22.04通过Docker部署Jeecgboot

程序发布环境包括docker、mysql、redis、maven、nodejs、npm等。 一、安装docker 1、用如下命令卸载旧Docker: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done 2、安装APT环境依赖包…...

基于Ubuntu+vLLM+NVIDIA T4高效部署DeepSeek大模型实战指南

一、 前言:拥抱vLLM与T4显卡的强强联合 在探索人工智能的道路上,如何高效地部署和运行大型语言模型(LLMs)一直是一个核心挑战。尤其是当我们面对资源有限的环境时,这个问题变得更加突出。原始的DeepSeek-R1-32B模型虽…...

力扣 66.加一 (Java实现)

题目分析 给定一个数组,可以组成一个数字,将数字加一后,返回新数组 思路分析 首先跟着题目思路走,将数组按位*10可以得到数字,再加一,加一后按位%10,可以得到新的数组。但是此处数字会过大&…...

Deep seek学习日记1

Deepseek最强大的就是它的深度思考,并且展现了它的思考过程。 五种可使用Deep seek的方式(应该不限于这五种,后续嵌入deepseek的应该更多,多了解一点因为官网容易崩~~): 1.deep seek官网 2.硅基流动silicon…...

npm 私服使用介绍

一、导读 本文主要介绍 npm 私服的使用,至于 npm 私服搭建的过程,可以看本人之前的文章《Docker 部署 verdaccio 搭建 npm 私服》 二、前置条件 npm私服地址:http://xxx.xxx.xxx.xxx:port/ 三、本地 npm 源切换 使用nrm,可以方…...

github用户名密码登陆失效了

问题: git push突然推代码需要登陆,但是用户名和密码正确输入后,却提示403 git push# Username for https://github.com: **** #Password for https://gyp-programmergithub.com: #remote: Permission to gyp-programmer/my-app.git denie…...

SpringCloud整合seata,XA、AT、TCC、SAGA模式

参考资料: SpringCloud-Alibaba搭建 SpringCloud-nacos整合 Seata部署 参考demo(及学习资料) seata官网 参考视频​​​​​c(AT模式的UNDO_LOG讲的可能有点问题,但是很通俗易懂) 参考视频2&#xff…...

centos8.0 docker ngnix

问题1:镜像拉取不下来,用DAO云加速器 问题2:ngnix镜像不能运行, 无法检索OCI运行时错误 ,更新包yum update libseccomp 问题3:docker run -v 目录有ngninx.conf 或conf.d 等 .特殊字符,报无效格…...

案例-06.部门管理-根据ID查询

一.根据ID查询-接口文档 二.根据ID查询-Controller层 package com.gjw.controller;/*** 部门管理Controller*/import com.gjw.anno.Log; import com.gjw.pojo.Dept; import com.gjw.pojo.Result; import com.gjw.service.DeptService; import com.gjw.service.impl.DeptServi…...

moveable 一个可实现前端海报编辑器的 js 库

目录 缘由-胡扯本文实验环境通用流程1.基础移动1.1 基础代码1.1.1 data-* 解释 1.2 操作元素创建1.3 css 修饰1.4 cdn 引入1.5 js 实现元素可移动1.6 图片拖拽2.缩放3.旋转4.裁剪 懒得改文案了,海报编辑器换方案了,如果后面用别的再更。 缘由-胡扯 导火…...

【愚公系列】《Python网络爬虫从入门到精通》012-字符串处理

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…...

shell脚本备份MySQL数据库和库下表

目录 注意: 一.脚本内容 二.执行效果 三.创建定时任务 注意: 以下为对MySQL5.7.42版本数据库备份shell脚本参考运行备份的机器请确认mysqldump版本>5.7,否则备份参数--set-gtid-purgedOFF无效,考虑到一般数据库节点和备份…...

java处理pgsql的text[]类型数据问题

背景 公司要求使用磐维数据库,于是去了解了这个是基于PostgreSQL构建的,在使用时有场景一条图片数据中可以投放到不同的页面,由于简化设计就放在数组中,于是使用了text[]类型存储;表结构 #这是一个简化版表结构&…...

MongoDB 架构设计:深入解析核心组件与工作原理

MongoDB 架构设计:深入解析核心组件与工作原理 MongoDB 作为一个高性能、易扩展的 NoSQL 数据库,其优秀的架构设计是其成功的关键。本文将深入解析 MongoDB 的架构设计,详细讲解其核心组件和工作原理,帮助您更好地理解和使用 Mon…...

【PostgreSQL】PG在windows下的安装

一、准备 通过官网下载安装文件,官方下载路径如下: https://www.postgresql.org/download/windows/ 二、安装 双击postgresql-17.3-1-windows-x64.exe文件,启动安装,进入安装步骤,点击Next 选择PG安装路径&#xff…...

掌握SQL多表连接查询_轻松处理复杂数据关系

1. 引言 1.1 数据库中的多表关系概述 在实际应用中,数据库通常由多个表组成,每个表存储不同类型的数据。例如,在一个电子商务系统中,可能会有用户表、订单表、产品表等。这些表之间存在关联关系,通过多表连接查询可以…...

MVC模式和MVVM模式

目录 一、MVC模式和MVVM模式 1. MVC模式 2. MVVM 模式 3.在Qt中的应用示例 4.总结 二、MVC与MVVM模式的共同点和区别 1.共同点 2.区别 3.交互流程 4.总结 MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)是两种…...

Macos机器hosts文件便捷修改工具——SwitchHosts

文章目录 SwitchHosts软件下载地址操作添加方案切换方案管理方案快捷键 检测 SwitchHosts SwitchHosts 是一款 Mac 平台上的免费软件,它可以方便地管理和切换 hosts 文件,支持多种 hosts 文件格式。 软件下载地址 SwitchHosts 操作 添加方案 添加 …...

mysqld_exporter的搭建

1、创建/data/apps目录,并且下载mysql_exporte mkdir -p /data/apps ​ cd /data/apps ​ wget https://githubfast.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz 或者 wget https://github.com/promethe…...

CentOS上安装WordPress

在CentOS上安装WordPress是一个相对直接的过程,可以通过多种方法完成,包括使用LAMP(Linux, Apache, MySQL, PHP)栈或使用更现代的LEMP(Linux, Nginx, MySQL, PHP)栈。 我选择的是(Linux, Nginx…...

【数据结构】 栈和队列

在计算机科学的世界里,数据结构是构建高效算法的基础。栈(Stack)和队列(Queue)作为两种基本且重要的数据结构,在软件开发、算法设计等众多领域都有着广泛的应用。今天,我们就来深入探讨一下栈和…...

微服务限流策略与性能优化全解析

一、服务瓶颈评估实例 1.1 背景介绍 本文我用我工作中实际的一个电商营销中台系统的订单服务来阐述。此微服务数据库采用 MySQL,配置为 8 核 32G。订单服务部署于一组服务器集群,考虑到高可用性,至少配置 3 个节点,每个节点服务…...

Windows环境搭建ES集群

搭建步骤 下载安装包 下载链接:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.27-windows-x86_64.zip 解压 解压并复制出3份 es-node1配置 config/elasticsearch.yml cluster.name: xixi-es-win node.name: node-1 path.data: D:\\wor…...

qt中实现QListWidget列表

FR:徐海涛(hunkxu)...

大模型参数规模解析:32B中的“B“代表什么?如何影响AI性能?

以下是优化后的技术笔记整理,包含关键知识点解析和行业应用案例: 大模型参数规模解析:32B中的"B"代表什么?如何影响AI性能? 一、参数单位解读 B Billion(十亿):在AI模…...