学习笔记七:线性回归

1. 基本概念

1.1 线性模型

线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数。

基本形式

给定由 d 个属性描述的示例 x = (x₁; x₂; ...; xₑ),其中 xᵢx 在第 i 个属性上的取值,线性模型试图学得:

f(x) = w₁x₁ + w₂x₂ + ... + wₑxₑ + b

其中 w = (w₁; w₂; ...; wₑ) 是权重向量,b 是偏置项。一旦学得 wb,模型就确定了。

特点

  • 简单易用:形式简单,易于建模
  • 可解释性强 :权重 w 直观地表达了各属性的重要性
  • 基础性强:许多功能更为强大的非线性模型可在线性模型的基础上通过引入层级结构或高维映射而得

可解释性示例

例如在西瓜问题中,若学得 f_好瓜(x) = 0.2 × x_色泽 + 0.5 × x_根蒂 + 0.3 × x_敲声 + 1,则意味着判断好瓜时,最重要的因素是根蒂,其次是敲声,最后是色泽。

1.2 线性回归

定义

给定数据集 D = {(x₁, y₁), (x₂, y₂), ..., (xₘ, yₘ)},其中 xᵢ = (xᵢ₁; xᵢ₂; ...; xᵢₑ)yᵢ ∈ R线性回归(linear regression)试图学得一个线性模型以尽可能准确地预测实值输出标记。

目标

学习一个线性模型,使得对于样本 (x, y),有 f(x) ≈ y

性能度量

回归任务最常用的性能度量是均方误差(MSE)。线性回归的目标是使均方误差最小化。

几何意义

均方误差有很好的几何意义,它对应了欧氏距离。通过最小化均方误差来求解模型的方法称为最小二乘法(least squares method)。在线性回归中,最小二乘法试图找到一条直线,使得所有样本到该直线的欧氏距离之和最小。

2. 使用场景与注意事项

2.1 离散属性的处理

有序属性

对于离散属性,若属性值之间存在"序"关系,可以将其转化为连续值。例如:

  • 二值属性"身高":{"高", "矮"} → {1.0, 0.0}
  • 三值属性"高度":{"高", "中", "低"} → {1.0, 0.5, 0.0}

无序属性

若属性值之间不存在序关系,通常将 k 个属性值转化为 k 维向量。例如:

  • "瓜类":{"西瓜", "南瓜", "黄瓜"} → {(0,0,1), (0,1,0), (1,0,0)}

2.2 注意事项

局限性

  • 线性假设:假设特征与目标之间存在线性关系,对于非线性关系效果较差
  • 特征独立性:对特征之间的相关性敏感
  • 异常值敏感:容易受到异常值的影响

改进方法

  • 正则化:当变量数超过样本数时,引入正则化项(如L1、L2正则化)
  • 特征工程:通过特征变换、特征组合等方式处理非线性关系
  • 鲁棒回归:使用对异常值不敏感的损失函数

模型选择

  • 当数据量较小或特征与目标关系简单时,线性回归是很好的选择
  • 当存在明显的非线性关系时,考虑使用对数线性回归或广义线性模型
  • 对于复杂的非线性关系,可能需要使用更复杂的模型(如神经网络、树模型等)

3. 总结

线性回归是机器学习中最基础、最常用的回归方法之一。它通过最小化均方误差来学习一个线性模型,具有形式简单、易于理解、可解释性强的特点。线性回归不仅可以直接用于预测任务,还可以作为更复杂模型的基础。在实际应用中,需要注意处理离散属性、异常值等问题。当特征与目标之间存在线性或近似线性关系时,线性回归往往能取得良好的效果。

相关推荐
憨憨崽&12 小时前
进击大厂:程序员必须修炼的算法“内功”与思维体系
开发语言·数据结构·算法·链表·贪心算法·线性回归·动态规划
Keep__Fighting1 天前
【机器学习:线性回归】
人工智能·python·算法·机器学习·支持向量机·线性回归·scikit-learn
B站计算机毕业设计之家2 天前
Python+Flask 电商数据分析系统(Selenium爬虫+多元线性回归)商品数据采集分析可视化系统 实时监控 淘宝数据采集 大屏可视化 (附源码)✅
大数据·爬虫·python·selenium·机器学习·flask·线性回归
网安INF3 天前
机器学习入门:深入理解线性回归
人工智能·机器学习·线性回归
木头左6 天前
缺失值插补策略比较线性回归vs.相邻填充在LSTM输入层的性能差异分析
算法·线性回归·lstm
图灵信徒6 天前
R语言第七章线性回归模型
数据挖掘·数据分析·r语言·线性回归
合作小小程序员小小店7 天前
web网页,在线%抖音,舆情,线性回归%分析系统demo,基于python+web+echart+nlp+线性回归,训练,数据库mysql
python·自然语言处理·回归·nlp·线性回归
6***37949 天前
MySQLGraphQLAPI
线性回归·odps·iava-rocketma
自由日记11 天前
python简单线性回归
开发语言·python·线性回归
5***790011 天前
JavaWeb开发
ide·zookeeper·线性回归