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

【机器学习笔记Ⅰ】2 线性回归模型

线性回归(Linear Regression)是机器学习中最基础、最常用的监督学习模型之一,用于解决回归问题(预测连续数值输出)。它的核心思想是通过拟合一条直线(或超平面)来描述输入特征(自变量)与目标变量(因变量)之间的线性关系。

核心概念

  1. 模型形式

    • 简单线性回归(单特征):
      [
      y = w_1 x + b
      ]

      • ( y ):预测值(目标变量)。
      • ( x ):输入特征。
      • ( w_1 ):权重(斜率),表示特征的重要性。
      • ( b ):偏置(截距),表示基线值。
    • 多元线性回归(多特征):
      [
      y = w_1 x_1 + w_2 x_2 + \dots + w_n x_n + b
      ]

      • ( x_1, x_2, \dots, x_n ):多个特征。
      • ( w_1, w_2, \dots, w_n ):每个特征的权重。
  2. 目标
    找到最优的权重 ( w ) 和偏置 ( b ),使得预测值 ( y ) 与真实值 ( y_{\text{true}} ) 的误差最小。


如何训练?

  1. 损失函数(Loss Function)
    衡量预测值与真实值的差距,常用均方误差(MSE)
    [
    \text{MSE} = \frac{1}{N} \sum_{i=1}^{N} (y_{\text{true}}^{(i)} - y{(i)})2
    ]

    • ( N ):样本数量。
    • 目标是最小化MSE。
  2. 优化方法

    • 最小二乘法:通过数学推导直接求解最优解(适用于小规模数据)。
    • 梯度下降(Gradient Descent):迭代调整参数,逐步降低损失(适用于大规模数据)。

代码示例(Python)

from sklearn.linear_model import LinearRegression
import numpy as np# 示例数据:X是特征,y是目标值
X = np.array([[1], [2], [3], [4]])  # 单特征
y = np.array([2, 4, 6, 8])          # y = 2x# 创建模型并训练
model = LinearRegression()
model.fit(X, y)# 预测
print(model.predict([[5]]))  # 输出: [10.] (符合 y=2x)
print("权重 w:", model.coef_)   # 输出: [2.]
print("截距 b:", model.intercept_)  # 输出: 0.0

特点

  • 优点
    • 简单、易解释(权重直接表示特征影响)。
    • 计算效率高,适合小规模数据。
  • 缺点
    • 假设数据是线性的,对复杂关系拟合不足。
    • 对异常值和噪声敏感。

应用场景

  • 房价预测(特征:面积、地段 → 目标:房价)。
  • 销售额预测(特征:广告投入、季节 → 目标:销量)。
  • 任何需要量化特征与目标之间线性关系的场景。

注意事项

  1. 数据预处理
    • 特征需归一化(尤其梯度下降时)。
    • 处理多重共线性(特征间高度相关)。
  2. 模型评估
    • 使用R²分数、MSE等指标衡量性能。
  3. 非线性扩展
    • 可通过多项式回归(如 ( y = w_1 x + w_2 x^2 ))拟合非线性关系。
http://www.lryc.cn/news/581774.html

相关文章:

  • LeetCode 287. 寻找重复数(不修改数组 + O(1) 空间)
  • Android studio升级AGP需要注意哪些
  • 编程基础:继承
  • Modbus_TCP_V5 新功能
  • C++之路:多态与虚函数
  • 在phpstudy环境下配置搭建XDEBUG配合PHPSTORM的调试环境
  • 【Bluedroid】蓝牙 GATT 客户端注册机制与流程详解(BTA_GATTC_AppRegister)
  • Solidity——pure 不消耗gas的情况、call和sendTransaction区别
  • 【算法刷题记录(简单题)003】统计大写字母个数(java代码实现)
  • Node.js特训专栏-实战进阶:13. ORM/ODM工具选型与使用
  • AI做美观PPT:3步流程+工具测评+避坑指南
  • 【论文笔记】【强化微调】Pixel Reasoner:早期 tool call 的调用
  • CppCon 2018 学习:Undefined Behavior is Not an Error
  • 【系统分析师】2022年真题:论文及解题思路
  • (二) TDOA(到达时间差)、AoA(到达角度)、RSSI(接收信号强度)、TOF(飞行时间) 四种定位技术的原理详解及对比
  • 手动使用 Docker 启动 MinIO 分布式集群(推荐生产环境)
  • 从前端转go开发的学习路线
  • 2025 BSidesMumbaiCTF re 部分wp
  • NLP文本预处理
  • Spring AI(12)——调用多模态模型识别和生成图像
  • MyBatis实战指南(九)MyBatis+JSP+MySQL 前端页面实现数据库的增加与删除显示数据
  • 分布式会话的演进和最佳事件,含springBoot 实现(Java版本)
  • 【网络安全】不要在 XSS 中使用 alert(1)
  • 电池预测 | 第33讲 Matlab基于CNN-LSTM-Attention的锂电池剩余寿命预测,附锂电池最新文章汇集
  • 一个简单的脚本,让pdf开启夜间模式
  • 【STM32】通用定时器PWM
  • 李宏毅NLP-8-语音模型
  • 20250706-11-Docker快速入门(下)-构建Nginx镜像和Tomcat镜像_笔记
  • Kotlin lazy 委托的底层实现原理
  • styled-components:现代React样式解决方案