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

机器学习之线性回归的入门学习

        线性回归是一种监督学习算法,用于解决回归问题。它的目标是找到一个线性关系(一条直线或一个超平面),能够最好地描述一个或多个自变量(特征)与一个因变量(目标)之间的关系。利用回归方程对一个或多个自变量(特征值)和因变量(目标值)之间的关系进行建模的一种分析方式。

一.线性回归的简单介绍

目标: 根据输入的特征(X)来预测一个连续数值的输出(y)。例如:

例1. 根据房屋面积(特征)预测房价(目标)。

例2. 根据广告投入(特征)预测销售额(目标)。

例3. 根据学习时间(特征)预测考试分数(目标)。

“线性”的含义:

  • 特征与目标关系线性: 它假设特征与目标变量之间大致存在直线关系(在二维空间)或平面/超平面关系(在高维空间)。这是其核心假设。

  • 模型结构线性: 它假设目标变量(y)可以表示为一个或多个特征变量(X)的加权和,再加上一个常数项(截距)。模型本身关于参数(权重)是线性的。

回归 (Regression): 一种监督学习任务,目标是预测一个连续值的输出变量(目标变量)。比如预测房价、温度、销售额等。

模型: 线性回归模型试图学习一个线性函数(或称为超平面,当特征多于一个时),用输入特征来最佳地拟合或预测输出目标。

        找到一组最优的系数 (β₀, β₁, ..., βₙ),使得模型预测的 ŷ (读作 y-hat) 与真实的 y 值之间的误差尽可能小。

二.基本模型形式

1.简单线性回归 (一个特征)

一个自变量(X)与因变量(Y)呈直线关系:y = w * x + b,属于线性回归的基础模型

y:预测的目标值(因变量)。

x:输入的特征(自变量)。

w:权重或斜率。表示特征 x 对目标 y 的影响程度(x 每变化一个单位,y 预期变化多少)。

b:偏置项或截距。表示当所有特征为 0 时,预测的 y 值(有时有实际意义,有时没有)。 

2.多元线性回归 (多个特征)

多个自变量(X₁, X₂, ..., Xₚ)共同与Y呈线性关系:y = w1 * x1 + w2 * x2 + ... + wn * xn + b,属于线性回归的核心模型

y:预测的目标值。

x1, x2, ..., xn:n 个输入特征。

w1, w2, ..., wn:每个特征对应的权重。

b:偏置项。

3.线性回归的扩展应用

X与Y的关系无法用直线/平面描述(如曲线、指数关系)

处理方式

  • 多项式回归(线性回归的变体):Y = β₀ + β₁X + β₂X² + ... + βₖXᵏ + ε
    示例:药物剂量(X)与疗效(Y)呈U型曲线

  • 变量变换:对X或Y做数学变换(如取对数)使关系线性化:log(Y) = β₀ + β₁X + ε
    示例:经济学中的柯布-道格拉斯生产函数

关键点

  • 模型仍关于参数β是线性的(核心要求)

  • 不属于经典线性回归,但可通过线性回归技术求解

        核心本质:线性回归的“线性”指模型对参数β是线性的(如 β₀ + β₁X₁ + β₂X₂),而非对自变量线性。因此即使自变量存在非线性项(如 ),只要关于β线性,仍可用线性回归求解。

三.线性回归的损失与优化

1.损失函数 (Loss Function)

        损失函数(也称为代价函数 - Cost Function)的核心作用是量化模型预测值与真实值之间的差距。在线性回归中,我们通常使用均方误差 (Mean Squared Error, MSE) 作为损失函数。它计算的是所有训练样本的预测值与真实值之差的平方的平均值。

        它像一个打分器。我们的目标是找到一组模型参数 θ(θ₀, θ₁, ..., θₙ),使得这个打分器给出的分数 J(θ) 尽可能小。J(θ) 越小,说明模型的整体预测误差越小,拟合得越好。

数学表达式:J(θ) = (1/(2m)) * Σᵢ₌₁ᵐ (hθ(x⁽ⁱ⁾) - y⁽ⁱ⁾)²

  • J(θ):损失函数的值(依赖于模型参数 θ)。
  • m:训练样本的数量。
  • hθ(x⁽ⁱ⁾):模型对第 i 个样本 x⁽ⁱ⁾ 的预测值(hθ(x) = θ₀ + θ₁x₁ + θ₂x₂ + ... + θₙxₙ)。
  • y⁽ⁱ⁾:第 i 个样本的真实标签值。
  • Σᵢ₌₁ᵐ:对所有 m 个训练样本求和。
  • (1/(2m)):前面的 1/2 主要是为了后续梯度下降计算导数时方便(平方项求导会产生因子2,正好抵消),1/m 表示计算平均值。有时也会省略 1/2,直接用 1/m,这对找到最小值的位置没有影响。

直观理解:

  • 平方的作用:

    保证差值总是正数(负的差值平方后变正)。放大较大误差的惩罚:一个误差为2的点对损失的贡献是4,而一个误差为4的点贡献是16,是前者的4倍!这使得模型对异常值非常敏感。
  • 平均的作用: 消除样本数量 m 对损失值大小的影响,使得不同大小数据集的损失值具有可比性。

2.优化 (Optimization)

优化的目标就是找到一组参数 θ,使得损失函数 J(θ) 的值最小化。

梯度下降法 (Gradient Descent) 原理:

想象你站在一个山谷(代表损失函数 J(θ))的某个山坡上,目标是走到谷底(最小值点)。梯度下降的策略是:

  • 观察坡度: 计算你当前位置的“坡度”(即损失函数关于每个参数的偏导数 - 梯度 ∇J(θ))。
  • 确定方向: 坡度最陡峭的下坡方向就是你要迈步的方向(梯度的反方向 -∇J(θ))。
  • 迈出一步: 沿着这个方向走一小步。这一步的大小由一个叫学习率 (Learning Rate) 的参数 α 控制。
  • 重复: 到达新位置后,重复步骤1-3,重新计算坡度,确定新的下坡方向,再迈一步,直到走到谷底(或达到停止条件)。

正规方程 (Normal Equation):

  • 对于线性回归,损失函数 J(θ) 是凸函数(碗状),存在一个解析解(闭式解),可以直接通过一个数学公式一步计算出最优 θ
    θ = (XᵀX)⁻¹Xᵀy

    • X 是包含所有样本特征的设计矩阵(每行一个样本,第一列通常全为1对应 θ₀)。

    • y 是包含所有样本真实标签的向量。

  • 优点: 不需要选择学习率 α,不需要迭代。

  • 缺点:

    1. 计算量大: 计算矩阵 (XᵀX) 的逆的时间复杂度是 O(n³)(n 是特征数量)。当特征数量 n 非常大(如 > 10000)时,计算会非常慢甚至不可行。

    2. 要求 XᵀX 可逆: 如果特征之间存在精确线性相关(多重共线性)或者样本数 m 小于特征数 nXᵀX 不可逆(或奇异),无法使用。虽然可以通过伪逆解决,但稳定性可能变差。

  • 适用场景: 特征数量 n 相对较小(例如几千以内)且 XᵀX 容易求逆时。

四.线性回归的优点

简单易懂,实现方便:

  • 原理直观: 线性关系是人类最容易理解的关系之一。

  • 算法成熟: 求解方法(如最小二乘法)在数学上非常成熟、高效,计算复杂度低(通常是O(n*p²)或更低,其中n是样本数,p是特征数),即使是大型数据集也能快速训练。

  • 广泛支持: 几乎所有统计软件和编程语言(Python, R, MATLAB, Excel等)都内置了高效的线性回归实现。

可解释性强:

  • 核心优势! 回归系数βᵢ有非常清晰的解释:表示在保持其他特征不变的情况下,特征Xᵢ每增加一个单位,目标变量y平均变化βᵢ个单位。

  • 这使得模型结果易于向非技术人员解释,对于需要理解变量间影响机制的场景(如经济学、社会科学、生物医学研究、业务分析)至关重要。

  • 可以方便地进行统计推断(假设检验、置信区间),判断哪些特征的影响是统计显著的。

计算效率高:

  • 最小二乘法的解析解(或数值优化方法)计算非常快速,尤其适用于特征维度不高的大数据集。

  • 预测阶段的计算成本极低(只需做一次点积ŷ = Xβ),适合需要快速响应的在线预测系统。

作为基准模型:

  • 由于其简单性,常被用作评估更复杂模型性能的基准。如果一个复杂的模型无法显著超越线性回归,则其复杂性可能是不必要的。

五.缺点分析

强假设: 严重依赖特征与目标变量之间存在线性关系的假设。如果真实关系是非线性的(如曲线关系),线性回归效果会很差。

对异常值敏感: 均方误差损失函数会放大异常点(远离主趋势的点)的影响,导致拟合的直线被异常点“拉偏”。

多重共线性问题: 当输入特征之间高度相关时,模型估计的权重会变得不稳定且难以解释(虽然预测可能仍可用)。

特征工程依赖: 无法自动捕捉特征间的复杂交互作用或非线性关系,需要手动进行特征工程(如创建多项式特征、交互项)来提升表现。

http://www.xdnf.cn/news/16621.html

相关文章:

  • 语音识别dolphin 学习笔记
  • Linux 日志管理与时钟同步
  • 51单片机入门:数码管原理介绍及C代码实现
  • python快速复习篇(一)
  • Mysql事务基础
  • 7. 传输层协议 TCP
  • 国内数据集成厂商有哪些?如何选择最适合的数据集成平台?
  • Smart #5 Brabus使用45天(7500KM+)初步体验
  • 《Java 程序设计》第 12 章 - 异常处理
  • YOLO融合MogaNet中的ChannelAggregationFFN模块
  • Python 的 match-case
  • Windows管理用户脚本
  • react19更新哪些东西
  • 《计算机组成原理与汇编语言程序设计》实验报告六 存储器实验
  • 常⻅CMS漏洞
  • 第六章第一节 TIM 定时中断
  • VGA 线、DVI 线、HDMI 线、DP 线
  • 浏览器pdf、image显示
  • 视频生成模型蒸馏的方法
  • Linux基本指令,对路径的认识
  • 无人机磁力计模块运行与技术要点!
  • iOS 签名证书与上架流程详解,无 Mac 环境下的上架流程
  • 传输层协议UDP与TCP
  • 云计算:一场关于“数字水电煤”的革命与未来
  • 通用定时器Timer的基本模式
  • 元码智能“大眼睛”机器人首发,智启生活新纪元!
  • 数据库初阶笔记
  • 招工招聘小程序系统开发——打造一站式招聘服务平台
  • 【MySQL】MySQL索引—B树/B+树
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博内容IP地图可视化分析实现