文章目录
- 线性回归与梯度下降:理论与实践
-
- [1. 引言](#1. 引言)
- [2. 回归分析](#2. 回归分析)
-
- [2.1 什么是回归?](#2.1 什么是回归?)
- [2.2 线性回归](#2.2 线性回归)
- [2.3 损失函数](#2.3 损失函数)
- [2.4 多参数回归](#2.4 多参数回归)
- [3. 参数求解:最小二乘法](#3. 参数求解:最小二乘法)
- [4. 梯度下降](#4. 梯度下降)
-
- [4.1 梯度下降概念](#4.1 梯度下降概念)
- [4.2 梯度下降步骤](#4.2 梯度下降步骤)
- [4.3 梯度下降公式](#4.3 梯度下降公式)
- [4.4 学习率](#4.4 学习率)
- [4.5 自己实现梯度下降](#4.5 自己实现梯度下降)
- [4.6 梯度下降的变种](#4.6 梯度下降的变种)
- [4.7 梯度下降优化](#4.7 梯度下降优化)
- [5. 使用场景](#5. 使用场景)
- [6. 优缺点](#6. 优缺点)
- [7. 总结](#7. 总结)
线性回归与梯度下降:理论与实践
1. 引言
回归分析是一种常用的统计方法,用于建立一个因变量与一个或多个自变量之间的关系模型。本文将重点讨论线性回归 和梯度下降,两者是数据科学和机器学习中常见的基础方法。
2. 回归分析
2.1 什么是回归?
回归分析是一种统计方法,用于建模因变量(目标值)与自变量(特征)之间的关系。在回归分析中,目标是找到一个数学函数来预测因变量的值。
- 回归定义:通过建立数学模型,研究自变量(X)与因变量(Y)的映射关系 ✨
- 核心价值:预测连续型变量(如房价预测、销量分析),揭示变量间因果关系
- 回归模型:预测连续值,如房价、温度、销售额等。
2.2 线性回归
线性回归是回归分析中最简单的一种方法,它假设因变量与自变量之间存在线性关系。
-
线性回归模型的公式为:
y = β 0 + β 1 x 1 + β 2 x 2 + . . . + β n x n + ϵ y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + ... + \beta_n x_n + \epsilon y=β0+β1x1+β2x2+...+βnxn+ϵ
其中:
- y y y 是因变量。
- x 1 , x 2 , . . . , x n x_1, x_2, ..., x_n x1,x2,...,xn 是自变量(特征)。
- β 0 \beta_0 β0 是截距(模型基准点)。
- β 1 , β 2 , . . . , β n \beta_1, \beta_2, ..., \beta_n β1,β2,...,βn 是回归系数(特征权重系数)。
- ϵ \epsilon ϵ 是误差项。
2.3 损失函数
损失函数用于度量模型预测值与实际值之间的误差。在线性回归 中,通常使用 均方误差 (MSE) 作为损失函数。
-
数学本质:误差平方和的期望最小化
-
几何意义:寻找最佳拟合超平面(高维空间中的直线)📐
-
均方误差(MSE) 公式:
M S E = 1 m ∑ i = 1 m ( y i − y ^ i ) 2 MSE = \frac{1}{m} \sum_{i=1}^{m} (y_i - \hat{y}_i)^2 MSE=m1i=1∑m(yi−y^i)2
其中:
- y i y_i yi 是实际值。
- y ^ i \hat{y}_i y^i 是预测值。
- m m m 是样本数量。
2.4 多参数回归
在多参数回归中,目标是通过多个特征来预测一个因变量。例如,在房价预测中,可能有多个因素(如面积、房间数量、位置等)影响房价。多参数回归即通过多个自变量来建立线性关系。
3. 参数求解:最小二乘法
最小二乘法(Least Squares)是一种优化方法,常用于线性回归中,用来找到最佳拟合的线。
3.1 最小二乘法 MSE
最小二乘法通过最小化损失函数(MSE)来求解回归系数。在矩阵形式下,最小二乘法的公式为:
β ^ = ( X T X ) − 1 X T y \hat{\beta} = (X^T X)^{-1} X^T y β^=(XTX)−1XTy
- X X X 是样本特征矩阵。
- y y y 是目标变量。
- β ^ \hat{\beta} β^ 是回归系数向量。
前景知识:矩阵相关公式
- 矩阵运算前提 :
- 特征矩阵需满秩(无多重共线性)
- 样本量 > 特征维度
-
矩阵转置 : ( A T ) T = A (A^T)^T = A (AT)T=A
-
矩阵逆 : ( A B ) − 1 = B − 1 A − 1 (AB)^{-1} = B^{-1}A^{-1} (AB)−1=B−1A−1
pythonfrom sklearn.linear_model import LinearRegression model = LinearRegression().fit(X_train, y_train) print(f"系数: {model.coef_}, 截距: {model.intercept_}")
3.2 最小二乘法的优缺点
优点:
- 简单且易于理解。
- 对小数据集表现良好,计算效率高。
缺点:
- 对异常值敏感。
- 需要满足线性假设。
4. 梯度下降
梯度下降(Gradient Descent)是一种优化算法,用于最小化损失函数。它通过计算损失函数关于参数的梯度,并沿梯度的反方向更新参数。
4.1 梯度下降概念
梯度下降通过迭代的方式不断优化参数,直到找到损失函数的最小值。假设我们有损失函数 L ( θ ) L(\theta) L(θ),梯度下降的更新公式为:
θ : = θ − α ∇ θ L ( θ ) \theta := \theta - \alpha \nabla_\theta L(\theta) θ:=θ−α∇θL(θ)
- θ \theta θ 是模型参数。
- α \alpha α 是学习率。
- ∇ θ L ( θ ) \nabla_\theta L(\theta) ∇θL(θ) 是损失函数关于参数的梯度。
4.2 梯度下降步骤
- 初始化参数:随机或通过某种方式初始化参数。
- 计算梯度:计算损失函数对参数的偏导数。
- 更新参数:按照梯度反方向更新参数。
- 迭代:重复以上步骤,直到损失函数收敛或达到最大迭代次数。
4.3 梯度下降公式
损失函数 L ( θ ) L(\theta) L(θ) 相对于参数 θ \theta θ 的梯度计算公式为:
∇ θ L ( θ ) = ∂ ∂ θ ( 1 m ∑ i = 1 m ( y i − y ^ i ) 2 ) \nabla_\theta L(\theta) = \frac{\partial}{\partial \theta} \left( \frac{1}{m} \sum_{i=1}^{m} (y_i - \hat{y}_i)^2 \right) ∇θL(θ)=∂θ∂(m1i=1∑m(yi−y^i)2)
4.4 学习率
学习率( α \alpha α)决定了每次更新的步长大小。选择一个合适的学习率非常重要:
- 学习率过大,可能导致跳过最优解。
- 学习率过小,收敛速度会很慢。
4.5 自己实现梯度下降
python
import numpy as np
# 假设数据集X和y已经准备好
def gradient_descent(X, y, theta, alpha=0.01, iterations=1000):
m = len(y)
cost_history = []
for i in range(iterations):
predictions = X.dot(theta)
error = predictions - y
gradient = (1/m) * X.T.dot(error)
theta = theta - alpha * gradient
cost = (1/2*m) * np.sum(np.square(error))
cost_history.append(cost)
return theta, cost_history
# 初始化theta,假设X和y已经定义
theta_initial = np.zeros(X.shape[1])
theta, cost_history = gradient_descent(X, y, theta_initial, alpha=0.01, iterations=1000)
4.6 梯度下降的变种
BGD(批量梯度下降)
在批量梯度下降中,每次迭代都使用整个训练集计算梯度。它收敛稳定,但计算量大,尤其在数据集较大时。
SGD(随机梯度下降)
在随机梯度下降中,每次迭代使用一个样本来计算梯度,收敛较快,但噪声大。
MBGD(小批量梯度下降)
小批量梯度下降结合了BGD和SGD的优点。每次迭代使用一个小批量的样本进行计算,能有效减少计算开销并加速收敛。
4.7 梯度下降优化
为加速梯度下降的收敛速度,可以使用动量法(Momentum)、**自适应梯度(AdaGrad)**等优化算法。
5. 使用场景
- 线性回归:适用于预测房价、销售量、温度等连续变量,尤其是特征之间存在线性关系时。
- 梯度下降:适用于大数据集或高维数据集,尤其是在无法直接求解闭式解(如最小二乘法)时。
6. 优缺点
6.1 线性回归
优点:
- 简单易懂。
- 计算效率高,尤其是数据量小的时候。
缺点:
- 对异常值敏感。
- 假设特征与目标变量之间存在线性关系。
6.2 梯度下降
优点:
- 适用于大规模数据集,尤其是在线性回归无法使用最小二乘法时。
- 可以处理复杂的非线性模型。
缺点:
- 可能收敛到局部最优解。
- 需要选择合适的学习率。
7. 总结
本文介绍了线性回归 和梯度下降的基本理论及实现方法,分析了它们的优缺点和应用场景。通过结合这些方法,能够为不同的数据问题提供高效的解决方案。