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

线性回归入门学习:从原理到代码实现

引言

线性回归是机器学习中最基础的算法之一,也是理解监督学习的关键起点。它通过拟合数据点之间的线性关系,帮助我们预测连续型目标变量。本文将带你从数学原理到代码实践,全面掌握线性回归的核心思想。

一、线性回归是什么?

线性回归是一种统计方法,用于建模一个或多个自变量(特征)与因变量(目标)之间的线性关系。

  • 简单线性回归:单个自变量(如房价与面积)
  • 多元线性回归:多个自变量(如房价与面积、卧室数量、地理位置等)

二、数学原理:最小二乘法

1. 模型公式

假设我们有一个数据集,包含 ( n ) 个样本,每个样本有 ( m ) 个特征。线性回归模型可以表示为:
[
y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_m x_m + \epsilon
]
其中:

  • ( y ) 是目标变量
  • ( \beta_0 ) 是截距项
  • ( \beta_1, \beta_2, \ldots, \beta_m ) 是特征系数
  • ( \epsilon ) 是误差项

2. 损失函数:均方误差(MSE)

为了找到最优的参数 ( \beta ),我们需要最小化预测值与实际值之间的差异。均方误差(MSE)是常用的损失函数:
[
\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2
]
其中 ( \hat{y}_i ) 是模型的预测值。

3. 解析解:正规方程

通过最小化MSE,我们可以推导出参数的解析解(正规方程):
[
\beta = (X^T X)^{-1} X^T y
]
其中 ( X ) 是特征矩阵,( y ) 是目标向量。

三、Python代码实现

1. 导入库

import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

2. 生成模拟数据

# 生成随机数据
np.random.seed(42)
X = 2.5 * np.random.rand(100, 1)  # 特征(面积)
y = 5 + 3 * X + np.random.randn(100, 1)  # 目标(房价)# 可视化数据
plt.scatter(X, y, s=10)
plt.xlabel("房屋面积(平方米)")
plt.ylabel("房价(万元)")
plt.title("模拟房价数据")
plt.show()

3. 训练模型

# 创建模型
model = LinearRegression()# 训练模型
model.fit(X, y)# 输出参数
print(f"截距项(β0): {model.intercept_[0]:.2f}")
print(f"系数(β1): {model.coef_[0][0]:.2f}")
截距项(β0): 5.12
系数(β1): 2.98

4. 模型评估

# 预测
y_pred = model.predict(X)# 计算评估指标
mse = mean_squared_error(y, y_pred)
r2 = r2_score(y, y_pred)print(f"均方误差(MSE): {mse:.2f}")
print(f"R²分数: {r2:.2f}")
均方误差(MSE): 0.98
R²分数: 0.91

5. 可视化结果

# 绘制回归线
plt.scatter(X, y, s=10, label="真实数据")
plt.plot(X, y_pred, color="red", label="回归线")
plt.xlabel("房屋面积(平方米)")
plt.ylabel("房价(万元)")
plt.legend()
plt.show()

四、线性回归的优缺点

优点

  1. 简单易懂:数学原理直观,适合入门学习。
  2. 计算高效:解析解(正规方程)可直接求解。
  3. 可解释性强:系数直接反映特征对目标的影响。

缺点

  1. 线性假设:无法拟合非线性关系(需结合多项式回归)。
  2. 敏感异常值:对离群点敏感。
  3. 多重共线性:特征间高度相关时,系数不稳定。

五、实际应用场景

  1. 经济学:预测消费支出与收入的关系。
  2. 医学:分析药物剂量与疗效的关联。
  3. 工程:预测设备故障率与使用时间的关系。

六、总结

线性回归是机器学习的基石,掌握其原理后,可以进一步学习以下内容:

  • 多项式回归(处理非线性关系)
  • 岭回归与Lasso回归(解决过拟合与多重共线性)
  • 梯度下降法(优化大规模数据集)

通过本文的代码实践,相信你已经能熟练运用线性回归解决实际问题!


扩展资源

  • Scikit-learn官方文档
  • 《统计学习方法》(李航)第1章
  • Kaggle线性回归实战教程
http://www.dtcms.com/a/344933.html

相关文章:

  • 南溪智融双碳示范基地建筑设备管理系统 + 智能照明系统调试完成:筑牢 “绿色智能” 运营基石
  • 2025年9月5090工作站、
  • APP Usage『安卓』:比系统自带强10倍!手机应用使用时长精确到秒
  • 无穿戴AI动捕实训室:多专业融合实训的创新实践
  • KWDB 分布式架构探究——数据分布与特性
  • 机器学习在量化中的应用
  • 自动驾驶感知——BEV感知(学习笔记)
  • osgEarth 图像融合正片叠底
  • 爬楼梯变式
  • 24小时变2小时:RFQ系统如何重构电子元器件询价生态链
  • 在飞牛 NAS 上部署 PanSou:图文指南
  • Java后端学习路线
  • Java RESTful API 构建从入门到精通:一步步打造高效后端服务
  • DataStream实现WordCount
  • 世界模型一种能够对现实世界环境进行仿真,并基于文本、图像、视频和运动等输入数据来生成视频、预测未来状态的生成式 AI 模型
  • LeetCode第1695题 - 删除子数组的最大得分
  • 数字经济浪潮下的刑事法律风险与辩护新路径
  • k8s 简介及部署方法以及各方面应用
  • STM32F1 GPIO介绍及应用
  • Vue2.x核心技术与实战(三)
  • 掌握DRF的serializer_class:高效API开发
  • [激光原理与应用-318]:光学设计 - Solidworks - 草图中常见的操作
  • PCIe 5.0 SSD的发热量到底有多大?如何避免?
  • ubuntu - 终端工具 KConsole安装
  • DL00433-基于深度学习的无人机红外成像系统可视化含数据集
  • 【数据结构】选择排序:直接选择与堆排序详解
  • 【小白笔记】 MNN 移动端大模型部署
  • Java试题-选择题(14)
  • 新能源知识库(83)新能源行业的标准制定机构介绍
  • 期权买沽是什么意思?