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

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

一.线性回归的简单介绍

目标: 根据输入的特征(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.pswp.cn/web/91738.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91738.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2-5 Dify案例实践—利用RAG技术构建企业私有知识库

目录 一、RAG技术的定义与作用 二、RAG技术的关键组件 三、RAG技术解决的问题 四、RAG技术的核心价值与应用场景 五、如何实现利用RAG技术构建企业私有知识库 六、Dify知识库实现详解 七、创建知识库 1、创建知识库 2、上传文档 3、文本分段与清洗 4、索引方式 5、…

断路器瞬时跳闸曲线数据获取方式

断路器瞬时短路电流时,时间是在60ms内的,仿真器去直接捕获电流有效值很难。按照电流互感器的电流曲线特性,电流越大,由于互感器饱和,到达一定电流值的时候,电流会趋于平稳不再上升,ADC-I曲线由线…

技巧|SwanLab记录混淆矩阵攻略

绘制混淆矩阵(Confusion Matrix),用于评估分类模型的性能。混淆矩阵展示了模型预测结果与真实标签之间的对应关系,能够直观地显示各类别的预测准确性和错误类型。 混淆矩阵是评估分类模型性能的基础工具,特别适用于多…

HTTPS的工作原理

文章目录HTTP有什么问题?1. 明文传输,容易被窃听2. 无法验证通信方身份3. 数据完整性无法保证HTTPS是如何解决这些问题的?HTTPS的工作原理1. SSL/TLS握手2. 数据加密传输3. 完整性保护4. 连接关闭总结HTTP有什么问题? 1. 明文传输…

ECMAScript2020(ES11)新特性

概述 ECMAScript2020于2020年6月正式发布, 本文会介绍ECMAScript2020(ES11),即ECMAScript的第11个版本的新特性。 以下摘自官网:ecma-262 ECMAScript 2020, the 11th edition, introduced the matchAll method for Strings, to produce an …

机器视觉引导机器人修磨加工系统助力芯片封装

芯片制造中,劈刀同轴度精度对封装质量至关重要。传统加工在精度、效率、稳定性、良率及操作便捷性上存在不足:精度不足:劈刀同轴度需控在 0.003mm 内,传统手段难达标,致芯片封装良率低;效率良率低 &#xf…

Python编程基础与实践:Python模块与包入门实践

Python模块与包的深度探索 学习目标 通过本课程的学习,学员将掌握Python中模块和包的基本概念,了解如何导入和使用标准库中的模块,以及如何创建和组织自己的模块和包。本课程将通过实际操作,帮助学员加深对Python模块化编程的理解…

【Django】-4- 数据库存储和管理

一、关于ORM ORM 是啥呀ORM 就是用 面向对象 的方式,把数据库里的数据还有它们之间的关系映射起来~就好像给数据库和面向对象之间搭了一座小桥梁🎀对应关系大揭秘面向对象和数据库里的东西,有超有趣的对应呢👇类 → 数…

深入 Go 底层原理(四):GMP 模型深度解析

1. 引言在上一篇文章中,我们宏观地了解了 Go 的调度策略。现在,我们将深入到构成这个调度系统的三大核心组件:G、M、P。理解 GMP 模型是彻底搞懂 Go 并发调度原理的关键。本文将详细解析 G、M、P 各自的职责以及它们之间是如何协同工作的。2.…

AI赋能测试:技术变革与应用展望

AI 在测试中的应用:技术赋能与未来展望 目录 AI 在测试中的应用:技术赋能与未来展望 1. 引言 1.1 测试在软件开发中的重要性 1.2 AI 技术如何改变传统测试模式 1.3 文章结构概述 2. AI 在测试中的核心应用场景 2.1 自动化测试优化 2.1.1 智能测…

Mujoco(MuJoCo,全称Multi - Joint dynamics with Contact)一种高性能的物理引擎

Mujoco(MuJoCo,全称Multi - Joint dynamics with Contact)是一种高性能的物理引擎,主要用于模拟多体动力学系统,广泛应用于机器人仿真、运动学研究、人工智能等领域。以下是关于Mujoco仿真的一些详细介绍: …

winform-窗体应用的功能介绍(部分)

1--Point实现在窗口(Form)中一个按钮(控件)的固定位置(所在位置)一个按钮(控件)的位置一般是固定的,另一个按钮在窗口中位置是随机产生的Location属性:Location new Point(X,Y);在C#的Winform应用程序里,Button控件的鼠标悬标悬浮事件是不存在内置延迟时间的。当鼠标指针进入按…

最新Windows11系统镜像,23H2 64位ISO镜像

Windows 11 主要分为 Consumer Editions(消费者版)和 Business Editions(商业版)两大类别 。消费者版主要面向家庭和个人用户,商业版则侧重于企业和商业用户。这两大类别中存在部分重叠的版本,比如专业版和…

linux基本系统服务——DNS服务

一、DNS域名解析原理DNS&#xff0c;Domain Name System&#xff0c;域名系统&#xff1a;在互联网中由大量域名解析服务器共同提供的一整套关于“域名 <--> IP地址”信息查询的数据系统!!!! C/S架构&#xff1a;DNS服务端监听UDP 53端口&#xff08;处理客户端查询&…

数据处理和统计分析——08 apply自定义函数

1 apply()函数 1.1 apply()函数简介 Pandas提供了很多数据处理的API&#xff0c;但当提供的API不能满足需求的时候&#xff0c;需要自己编写数据处理函数, 这个时候可以使用apply()函数&#xff1b;apply()函数可以接收一个自定义函数&#xff0c;可以将DataFrame的行或列数据传…

C++冰箱管理实战代码

基于C++的冰箱管理实例 以下是一些基于C++的冰箱管理实例示例,涵盖不同功能场景,每个示例聚焦特定实现点,代码可直接扩展或整合到项目中。 示例1:基础冰箱类定义 class Refrigerator { private:int capacity;std::vector<std::string> items; public:Refrigerator(…

【Python】【数据分析】Python 数据分析与可视化:全面指南

目录1. 环境准备2. 数据处理与清洗2.1 导入数据2.2 数据清洗示例&#xff1a;处理缺失值示例&#xff1a;处理异常值2.3 数据转换3. 数据分析3.1 描述性统计3.2 分组分析示例&#xff1a;按年龄分组计算工资的平均值3.3 时间序列分析4. 数据可视化4.1 基本绘图示例&#xff1a;…

【AI】AIService(基本使用与指令定制)

【AI】AIService(基本使用与指令定制) 文章目录【AI】AIService(基本使用与指令定制)1. 简介2. AIService2.1 引入依赖2.2 编写AIService接口2.3 测试代码3. 指令定制3.1 系统提示词3.2 用户提示词1. 简介 AIService可以被视为应用程序服务层的一个组件&#xff0c;提供对应的…

AAAI赶稿后的心得

总结 已经第三次和老师们一起赶稿了&#xff0c;但是还是纰漏重重&#xff0c;每次都被我的垃圾写作给吓到。每次都手忙脚乱找不到重点&#xff0c;唉&#xff0c;我大概这辈子都成为不了郭老师&#xff1a; 自己把故事先捋清楚&#xff1a; 所有的东西都要抽象出来&#xff0c…

书籍推荐算法研究

## 项目概述本项目是一个完整的书籍推荐系统第五版(Complete Book Recommendation System V5),采用混合推荐策略,能够处理6种不同的用户场景,提供智能化的书籍推荐服务。## 系统架构### 核心设计思路系统采用**混合推荐策略**,结合了以下几种推荐算法:1. **协同过滤推荐…