【回归算法】线性回归超详细讲解

线性回归超详细讲解(附完整实战代码)

线性回归(Linear Regression)是机器学习中最基础、最核心 的数值预测算法,也是回归问题的入门必修课。它通过建立特征与目标值之间的线性数学关系,实现对连续值的预测,原理简单、解释性强、计算高效,是本科生和研究生入门机器学习的首要掌握内容,也是后续学习复杂算法的基础。

本文将从通俗原理核心数学推导算法流程完整实战优缺点与算法对比五个维度展开,内容通俗易懂,公式做详细拆解,附带可直接运行的Python代码,适配本科课程学习和研究生入门实践。

一、什么是线性回归?(通俗理解)

线性回归的核心是找一条最贴合数据的直线,用直线公式描述特征和目标值的线性关系,从而实现对未知数据的预测。

举个最经典的房价预测 例子:

房子的面积 (x)是已知特征,价格 (y)是要预测的目标值,收集多组面积和价格的对应数据后,线性回归会找到一条直线,让所有数据点尽可能贴近这条直线,最终得到一个类似 y=mx+by = mx + by=mx+b 的公式,其中:

  • yyy:预测值(如房价)
  • xxx:特征值(如房屋面积)
  • mmm:斜率,表示特征每增加1个单位,目标值的变化量(如面积每增加1㎡,房价涨2万元)
  • bbb:截距,表示特征值为0时的目标值(数学上的必要值,实际场景中可能无实际意义,如面积为0时房价为0)

简单来说,线性回归就是用「直线公式」拟合数据规律,用规律做预测

单特征vs多特征线性回归

  • 一元线性回归 :只有1个特征,对应二维平面的一条直线,公式为 y=β0+β1xy = \beta_0 + \beta_1xy=β0+β1x(β0\beta_0β0为截距,β1\beta_1β1为斜率);
  • 多元线性回归 :有多个特征,对应高维空间的一个超平面,公式为 y=β0+β1x1+β2x2+...+βnxny = \beta_0 + \beta_1x_1 + \beta_2x_2 + ... + \beta_nx_ny=β0+β1x1+β2x2+...+βnxn(x1,x2...xnx_1,x_2...x_nx1,x2...xn为多个特征,β1,β2...βn\beta_1,\beta_2...\beta_nβ1,β2...βn为各特征的系数)。

实战中多元线性回归更常用(如房价受面积、地段、楼层等多个特征影响),但核心原理和一元线性回归一致。

二、为什么要用线性回归?

作为机器学习的入门算法,线性回归的优势非常突出,也是它被广泛应用的原因:

  1. 简单易懂:核心是直线/超平面拟合,公式直观,零基础也能快速理解,结果易解释;
  2. 计算高效:模型参数求解仅需简单的数学计算,训练速度极快,适配大规模数据集;
  3. 可解释性强 :通过特征系数能直接看出每个特征对目标值的影响大小和方向 (正系数为正相关,负系数为负相关),适合金融、医疗等需要因果分析的场景;
  4. 基础通用性:是岭回归、Lasso回归、多项式回归等进阶算法的基础,掌握线性回归能快速上手其他回归算法;
  5. 应用广泛:适用于各种线性关系的预测场景,如房价预测、销售额预估、温度变化预测、股票趋势初步分析等。

三、线性回归的核心理论与数学推导

线性回归的数学核心是最小化误差平方和(SSE) ,找到能让预测值和真实值误差最小的模型参数(截距β0\beta_0β0和斜率/系数β1,β2...\beta_1,\beta_2...β1,β2...)。以下从一元线性回归展开推导,多元线性回归是其直接延伸,原理完全一致。

3.1 假设模型

首先假设特征xxx和目标值yyy之间存在线性关系,引入误差项ϵ\epsilonϵ (表示真实值与模型预测值的偏差,由随机因素、未考虑的特征等导致),得到线性回归的基本假设模型:
y=β0+β1x+ϵy = \beta_0 + \beta_1x + \epsilony=β0+β1x+ϵ

  • β0\beta_0β0:截距(模型参数)
  • β1\beta_1β1:斜率(模型参数)
  • ϵ\epsilonϵ:误差项,满足均值为0、方差恒定的正态分布

模型的预测值 为去掉误差项的估计值:
y^=β0+β1x\hat{y} = \beta_0 + \beta_1xy^=β0+β1x

3.2 损失函数:误差平方和(SSE)

为了衡量模型的拟合效果,我们定义损失函数 来表示所有样本的预测误差总和,线性回归中最常用的是误差平方和(SSE) ,即所有样本真实值yiy_iyi与预测值y^i\hat{y}iy^i的差的平方和:
SSE=∑i=1n(yi−y^i)2=∑i=1n(yi−(β0+β1xi))2SSE = \sum
{i=1}^{n}\left(y_{i} - \hat{y}{i}\right)^{2} = \sum{i=1}^{n}\left(y_{i} - (\beta_0 + \beta_1x_i)\right)^{2}SSE=i=1∑n(yi−y^i)2=i=1∑n(yi−(β0+β1xi))2

  • nnn:样本数量
  • yiy_iyi:第iii个样本的真实值
  • xix_ixi:第iii个样本的特征值

为什么用平方和?

  1. 消除误差的正负号(正误差和负误差不会相互抵消);
  2. 放大较大误差的影响,让模型更关注偏差大的样本;
  3. 数学性质友好,可通过求导快速找到最小值(凸函数,只有一个全局最优解)。

3.3 最小化损失函数:求解模型参数

线性回归的目标是找到最优的β0\beta_0β0和β1\beta_1β1,让误差平方和(SSE)最小

由于SSE是关于β0\beta_0β0和β1\beta_1β1的二次函数,我们可以通过对β0\beta_0β0和β1\beta_1β1求偏导数,并令偏导数为0,求解出使得SSE最小的参数值(极值点即为最小值点)。

步骤1:对β0\beta_0β0和β1\beta_1β1求偏导并令其为0

∂SSE∂β0=−2∑i=1n(yi−(β0+β1xi))=0\frac{\partial SSE}{\partial \beta_0} = -2 \sum_{i=1}^{n}\left(y_{i} - (\beta_0 + \beta_1x_i)\right) = 0∂β0∂SSE=−2i=1∑n(yi−(β0+β1xi))=0
∂SSE∂β1=−2∑i=1nxi(yi−(β0+β1xi))=0\frac{\partial SSE}{\partial \beta_1} = -2 \sum_{i=1}^{n}x_i\left(y_{i} - (\beta_0 + \beta_1x_i)\right) = 0∂β1∂SSE=−2i=1∑nxi(yi−(β0+β1xi))=0

步骤2:化简方程,得到线性方程组

消去常数-2,展开后整理得到关于β0\beta_0β0和β1\beta_1β1的线性方程组:
β0⋅n+β1⋅∑i=1nxi=∑i=1nyi(1)\beta_0 \cdot n + \beta_1 \cdot \sum_{i=1}^{n}x_i = \sum_{i=1}^{n}y_i \tag{1}β0⋅n+β1⋅i=1∑nxi=i=1∑nyi(1)
β0⋅∑i=1nxi+β1⋅∑i=1nxi2=∑i=1nxiyi(2)\beta_0 \cdot \sum_{i=1}^{n}x_i + \beta_1 \cdot \sum_{i=1}^{n}x_i^2 = \sum_{i=1}^{n}x_iy_i \tag{2}β0⋅i=1∑nxi+β1⋅i=1∑nxi2=i=1∑nxiyi(2)

步骤3:求解斜率β1\beta_1β1

通过解线性方程组,先求出斜率β1\beta_1β1的计算公式:
β1=n∑i=1nxiyi−∑i=1nxi∑i=1nyin∑i=1nxi2−(∑i=1nxi)2\beta_1 = \frac{n \sum_{i=1}^{n}x_iy_i - \sum_{i=1}^{n}x_i \sum_{i=1}^{n}y_i}{n \sum_{i=1}^{n}x_i^2 - \left(\sum_{i=1}^{n}x_i\right)^2}β1=n∑i=1nxi2−(∑i=1nxi)2n∑i=1nxiyi−∑i=1nxi∑i=1nyi

为了更易理解和计算,β1\beta_1β1也可以表示为特征与目标值的协方差 除以特征的方差 ,形式更简洁:
β1=∑i=1n(xi−xˉ)(yi−yˉ)∑i=1n(xi−xˉ)2\beta_1 = \frac{\sum_{i=1}^{n}(x_i - \bar{x})(y_i - \bar{y})}{\sum_{i=1}^{n}(x_i - \bar{x})^2}β1=∑i=1n(xi−xˉ)2∑i=1n(xi−xˉ)(yi−yˉ)

其中xˉ=1n∑i=1nxi\bar{x} = \frac{1}{n}\sum_{i=1}^{n}x_ixˉ=n1∑i=1nxi,yˉ=1n∑i=1nyi\bar{y} = \frac{1}{n}\sum_{i=1}^{n}y_iyˉ=n1∑i=1nyi,分别为特征xxx和目标值yyy的均值

步骤4:求解截距β0\beta_0β0

将β1\beta_1β1代入方程(1),化简后得到截距β0\beta_0β0的计算公式:
β0=yˉ−β1⋅xˉ\beta_0 = \bar{y} - \beta_1 \cdot \bar{x}β0=yˉ−β1⋅xˉ

3.4 多元线性回归的参数求解

对于有kkk个特征的多元线性回归,模型公式为:
y^=β0+β1x1+β2x2+...+βkxk\hat{y} = \beta_0 + \beta_1x_1 + \beta_2x_2 + ... + \beta_kx_ky^=β0+β1x1+β2x2+...+βkxk

其参数求解可通过矩阵运算 实现,公式为:
β^=(XTX)−1XTy\hat{\beta} = (X^TX)^{-1}X^Tyβ^=(XTX)−1XTy

  • XXX:特征矩阵(nnn行k+1k+1k+1列,第一列为全1,对应截距β0\beta_0β0)
  • yyy:目标值向量(nnn行1列)
  • β^\hat{\beta}β^:参数向量(β0,β1...βk\beta_0,\beta_1...\beta_kβ0,β1...βk,k+1k+1k+1行1列)
  • (XTX)−1(X^TX)^{-1}(XTX)−1:矩阵XTXX^TXXTX的逆矩阵

sklearn中的线性回归模型就是通过矩阵运算实现的,无需手动计算,了解原理即可。

四、线性回归的完整算法流程

线性回归的训练流程非常清晰,从数据准备到模型评估,共6个核心步骤,单特征和多特征均适用:

  1. 收集数据 :获取包含特征xxx(单/多个)和目标值yyy的样本数据;
  2. 计算均值 :计算特征的均值xˉ\bar{x}xˉ和目标值的均值yˉ\bar{y}yˉ(多元则计算每个特征的均值);
  3. 求解参数 :根据公式计算斜率/系数β1\beta_1β1(多元则β1,β2...\beta_1,\beta_2...β1,β2...)和截距β0\beta_0β0;
  4. 构建模型 :得到线性回归方程y^=β0+β1x\hat{y} = \beta_0 + \beta_1xy^=β0+β1x(多元则扩展特征项);
  5. 模型预测 :将新样本的特征值代入方程,得到预测值y^\hat{y}y^;
  6. 模型评估 :通过均方误差(MSE)决定系数 (R2R^2R2)等指标判断模型拟合效果。

核心评估指标

1. 均方误差(MSE)

表示预测值与真实值的平均平方误差 ,值越小,模型拟合效果越好:
MSE=1n∑i=1n(yi−y^i)2MSE = \frac{1}{n} \sum_{i=1}^{n}(y_i - \hat{y}_i)^2MSE=n1i=1∑n(yi−y^i)2

2. 决定系数(R2R^2R2)

表示模型能解释的目标值变异的比例 ,取值范围为(−∞,1](-\infty,1](−∞,1],越接近1,模型拟合效果越好:
R2=1−∑i=1n(yi−y^i)2∑i=1n(yi−yˉ)2R^2 = 1 - \frac{\sum_{i=1}^{n}(y_i - \hat{y}i)^2}{\sum{i=1}^{n}(y_i - \bar{y})^2}R2=1−∑i=1n(yi−yˉ)2∑i=1n(yi−y^i)2

  • 分子:模型的预测误差平方和(SSE);
  • 分母:目标值的总变异平方和(总误差);
  • 物理意义:R2=0.8R^2=0.8R2=0.8表示模型能解释80%的目标值变化,剩余20%由随机因素或未考虑的特征导致。

理想情况 :R2=1R^2=1R2=1,表示预测值完全等于真实值;R2=0R^2=0R2=0,表示模型预测效果和直接取目标值均值一样。

五、线性回归完整实战(Python+加州房价数据集)

本次实战使用加州房价数据集 (sklearn内置公开数据集),实现多元线性回归 的全流程,包括数据加载→模型训练→可视化→评估→优化 ,使用sklearn的LinearRegression实现,代码可直接复制运行,注释详细,适配Python3.7+、sklearn1.0+。

5.1 实战目标

通过房屋的平均收入、房间数、房屋年龄、经纬度等8个特征,预测房屋的中位数价格,掌握线性回归的实战应用、模型评估和优化方法。

5.2 完整代码与步骤解释

步骤1:导入所需库
python 复制代码
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# 数据划分
from sklearn.model_selection import train_test_split
# 线性回归模型
from sklearn.linear_model import LinearRegression
# 模型评估指标
from sklearn.metrics import mean_squared_error, r2_score
# 加载数据集
from sklearn.datasets import fetch_california_housing
# 数据预处理:标准化、特征选择
from sklearn.preprocessing import StandardScaler
from sklearn.feature_selection import SelectKBest, f_regression

# 解决中文显示问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
步骤2:加载并查看数据集

数据集无缺失值,直接添加目标值列,查看数据基本信息:

python 复制代码
# 加载加州房价数据集
california = fetch_california_housing()
# 转换为DataFrame,添加特征名
data = pd.DataFrame(california.data, columns=california.feature_names)
# 添加目标值:房屋中位数价格(单位:10万美元)
data['MedHouseVal'] = california.target

# 查看数据集前5行和基本信息
print("数据集前5行:")
print(data.head())
print("\n数据集基本信息:")
print(data.info())
print(f"\n数据集形状(样本数×特征数):{data.shape}")
步骤3:构建多元线性回归模型

拆分训练集(80%)和测试集(20%),训练线性回归模型并进行预测:

python 复制代码
# 分离特征矩阵X和目标值向量y
X = data.drop('MedHouseVal', axis=1)
y = data['MedHouseVal']

# 拆分训练集和测试集,random_state=42保证结果可复现
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)
print(f"训练集样本数:{X_train.shape[0]},测试集样本数:{X_test.shape[0]}")

# 初始化并训练线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)

# 对训练集和测试集进行预测
y_train_pred = model.predict(X_train)
y_test_pred = model.predict(X_test)

# 打印模型参数:截距和各特征系数
print(f"\n模型截距(β0):{model.intercept_:.4f}")
print("各特征系数(β1~β8):")
for feat, coef in zip(X.columns, model.coef_):
    print(f"{feat}: {coef:.4f}")

系数解读 :系数为正表示该特征与房价正相关(如MedInc(平均收入)系数为正,收入越高房价越高),系数为负表示负相关(如Latitude(纬度)系数为负,纬度越高房价越低)。

步骤4:模型结果可视化

通过真实值vs预测值散点图残差分布直方图,直观判断模型拟合效果:

python 复制代码
# 可视化1:真实值 vs 预测值
plt.figure(figsize=(10, 5))
# 训练集(蓝色)、测试集(红色)
plt.scatter(y_train, y_train_pred, color='blue', alpha=0.6, label='训练集')
plt.scatter(y_test, y_test_pred, color='red', alpha=0.6, label='测试集')
# 理想预测线(预测值=真实值)
plt.plot([y.min(), y.max()], [y.min(), y.max()], '--black', linewidth=2)
plt.xlabel('真实房价(10万美元)')
plt.ylabel('预测房价(10万美元)')
plt.title('线性回归-真实值 vs 预测值')
plt.legend()
plt.show()

# 可视化2:残差分布(真实值-预测值)
plt.figure(figsize=(10, 5))
sns.histplot(y_train - y_train_pred, bins=50, kde=True, color='blue', label='训练集')
sns.histplot(y_test - y_test_pred, bins=50, kde=True, color='red', label='测试集')
plt.xlabel('残差(真实值-预测值)')
plt.ylabel('样本数量')
plt.title('线性回归-残差分布')
plt.legend()
plt.show()

可视化解读

  1. 散点越贴近黑色理想线,模型预测效果越好;
  2. 残差分布接近均值为0的正态分布,说明模型的误差是随机的,拟合效果较好;若残差分布有明显偏态,说明模型未捕捉到数据的部分规律。
步骤5:模型性能评估

通过均方误差(MSE)决定系数 (R2R^2R2)量化评估模型在训练集和测试集上的表现:

python 复制代码
# 评估训练集性能
mse_train = mean_squared_error(y_train, y_train_pred)
r2_train = r2_score(y_train, y_train_pred)
# 评估测试集性能
mse_test = mean_squared_error(y_test, y_test_pred)
r2_test = r2_score(y_test, y_test_pred)

# 打印评估结果
print("=== 基础模型性能评估 ===")
print(f"训练集 MSE:{mse_train:.4f},训练集 R²:{r2_train:.4f}")
print(f"测试集 MSE:{mse_test:.4f},测试集 R²:{r2_test:.4f}")

基础模型结果 :测试集R2R^2R2约0.58,说明线性回归能解释58%的房价变化,由于房价与特征存在部分非线性关系,该结果符合预期。

步骤6:模型优化(特征选择+标准化)

线性回归对特征冗余、量纲差异敏感,通过特征选择 (筛选重要特征)和标准化(统一特征量纲)优化模型,提升预测性能:

python 复制代码
# 1. 特征选择:选择K个与目标值相关性最高的特征(此处K=6)
selector = SelectKBest(f_regression, k=6)
X_new = selector.fit_transform(X, y)
# 查看选中的特征
selected_feats = [X.columns[i] for i in selector.get_support(indices=True)]
print(f"\n选中的6个特征:{selected_feats}")

# 2. 重新划分训练集和测试集
X_train_new, X_test_new, y_train_new, y_test_new = train_test_split(
    X_new, y, test_size=0.2, random_state=42
)

# 3. 数据标准化:统一特征量纲,消除量纲差异的影响
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train_new)
X_test_scaled = scaler.transform(X_test_new)

# 4. 训练优化后的线性回归模型
model_new = LinearRegression()
model_new.fit(X_train_scaled, y_train_new)

# 5. 预测并评估优化后模型
y_train_pred_new = model_new.predict(X_train_scaled)
y_test_pred_new = model_new.predict(X_test_scaled)
mse_train_new = mean_squared_error(y_train_new, y_train_pred_new)
r2_train_new = r2_score(y_train_new, y_train_pred_new)
mse_test_new = mean_squared_error(y_test_new, y_test_pred_new)
r2_test_new = r2_score(y_test_new, y_test_pred_new)

# 打印优化后结果
print("\n=== 优化后模型性能评估 ===")
print(f"训练集 MSE:{mse_train_new:.4f},训练集 R²:{r2_train_new:.4f}")
print(f"测试集 MSE:{mse_test_new:.4f},测试集 R²:{r2_test_new:.4f}")

优化结果解读 :优化后测试集R2R^2R2会小幅提升,MSE降低,说明特征选择和标准化能有效提升线性回归的预测性能。

六、线性回归的优缺点

线性回归作为基础算法,优势突出,但也存在明显的局限性,优缺点总结如下,适配本科/研究生课程考点和实战选型参考:

6.1 核心优点

  1. 简单易懂,易解释 :模型是直观的线性公式,参数(系数)能直接反映特征对目标值的影响,适合需要模型解释性的场景(如金融风控、医疗诊断);
  2. 计算高效,训练速度快:参数求解仅需矩阵运算或简单的数学计算,无需迭代训练,适配大规模数据集的快速建模;
  3. 无超参数,无需调参:模型没有需要手动设置的超参数,开箱即用,降低了使用门槛;
  4. 可扩展性强:是岭回归、Lasso回归、弹性网络等正则化回归算法的基础,也可扩展为多项式回归处理简单非线性关系;
  5. 对小数据集友好:即使样本量较少,也能训练出稳定的模型,而复杂算法(如随机森林、GBDT)在小数据集上易过拟合。

6.2 核心缺点

  1. 严格的线性假设 :假设特征与目标值之间存在线性关系 ,但实际场景中大多数数据是非线性的,此时线性回归拟合效果差;
  2. 对异常值极其敏感:异常值会极大地影响模型参数的求解(尤其是斜率),少量异常值就可能导致模型偏差严重,训练前需做异常值处理;
  3. 存在多重共线性问题 :当特征之间存在强相关性(如身高和体重、面积和房间数)时,模型系数会变得不稳定,解释性降低,甚至出现系数符号异常;
  4. 对特征预处理要求高 :需要做特征选择、标准化、缺失值补全、异常值处理等预处理,否则会严重影响模型性能;
  5. 无法捕捉复杂规律:只能拟合线性关系,对于特征之间的交互作用、非线性关系无法捕捉,此时需要使用决策树、随机森林等复杂算法。

七、线性回归与相似回归算法的对比

为了让大家在实战中精准选算法 ,以下对比线性回归与多项式回归、决策树回归、随机森林回归、SVR、梯度提升回归(GBDT)适用场景、优点、缺点,表格简洁明了,适配本科课程考核和研究生实战选型:

算法 适用场景 核心优点 核心缺点
线性回归 特征与目标值呈线性关系、需要高解释性、大规模数据快速建模 简单易懂、计算高效、可解释性强、无超参数 仅处理线性关系、对异常值敏感、多重共线性问题
多项式回归 特征与目标值存在简单非线性关系(如二次/三次关系) 基于线性回归扩展、能拟合简单非线性、易解释 高次多项式易过拟合、对异常值仍敏感
决策树回归 数据有分段特征、非线性关系且不连续、需要一定解释性 对异常值不敏感、无需特征缩放、能处理非线性 易过拟合、模型不稳定
随机森林回归 复杂非线性关系、高维数据、追求模型稳定性 抗过拟合、鲁棒性高、无需特征缩放、自动特征选择 计算量大、可解释性差、对高维稀疏数据不友好
支持向量机回归(SVR) 小数据集、高维特征、复杂非线性边界 泛化能力强、能处理非线性、适合高维数据 参数调优复杂、计算成本高、不适用于大数据集
梯度提升回归(GBDT) 高精度预测需求、中等规模数据、复杂非线性关系 预测精度极高、能捕捉复杂规律、自动特征选择 计算成本高、串行训练慢、超参数调优复杂

关键选型结论

优先选线性回归的情况
  1. 特征与目标值之间存在明显的线性关系(可通过相关性分析验证);
  2. 任务对模型解释性要求高,需要明确分析每个特征对目标值的影响;
  3. 数据集规模大,需要快速建模和预测,对计算效率要求高;
  4. 数据集样本量小,复杂算法易过拟合;
  5. 作为基础建模,快速验证数据规律,为后续复杂算法提供参考。
考虑其他算法的情况
  1. 特征与目标值存在非线性关系 :简单非线性选多项式回归 ,复杂非线性选随机森林/GBDT
  2. 数据中异常值较多 :选决策树回归/随机森林回归(对异常值鲁棒);
  3. 特征之间多重共线性严重 :选岭回归/Lasso回归(线性回归的正则化版本);
  4. 预测精度要求极高 ,对解释性无要求:选随机森林/GBDT/XGBoost
  5. 高维稀疏数据(如文本、推荐系统):选SVR/LightGBM

八、线性回归的进阶扩展

线性回归的局限性可通过一系列进阶算法解决,这些算法均基于线性回归的核心思想,是本科和研究生阶段的延伸学习内容,重点推荐3个:

1. 正则化回归:解决过拟合和多重共线性

  • 岭回归(Ridge Regression) :加入L2正则化,惩罚系数的平方和,让系数更稳定,解决多重共线性问题;
  • Lasso回归(L1正则化) :加入L1正则化 ,惩罚系数的绝对值和,能将不重要的特征系数置为0,实现特征选择
  • 弹性网络(Elastic Net):结合L1和L2正则化,兼顾特征选择和系数稳定性,适用于高维数据。

2. 多项式回归:解决简单非线性关系

在线性回归的基础上,引入特征的高次项(如x2x^2x2、x1x2x_1x_2x1x2) ,将非线性关系转换为线性关系,拟合简单的非线性数据,公式为:
y^=β0+β1x+β2x2+...+βnxn\hat{y} = \beta_0 + \beta_1x + \beta_2x^2 + ... + \beta_nx^ny^=β0+β1x+β2x2+...+βnxn

3. 广义线性模型(GLM):扩展至非连续目标值

将线性回归的思想扩展到分类问题 (如逻辑回归)、计数问题 (如泊松回归),通过链接函数将线性预测值映射到目标值的取值范围,是线性回归的重要延伸。

九、总结

  1. 线性回归是机器学习回归问题的入门算法 ,核心是用线性公式拟合特征与目标值的关系 ,通过最小化误差平方和求解模型参数;
  2. 线性回归的最大优势是简单易懂、可解释性强、计算高效,适合线性关系明显、需要高解释性的场景,也是后续学习复杂算法的基础;
  3. 线性回归的最大局限性是严格的线性假设,对异常值、多重共线性敏感,无法处理复杂非线性关系,实战中需做好数据预处理;
  4. 线性回归的局限性可通过正则化回归(岭/Lasso)多项式回归广义线性模型解决,这些是线性回归的直接延伸;
  5. 实战选型时,若数据为线性关系且需要解释性,优先选线性回归;若为非线性关系且追求精度,选随机森林、GBDT等集成学习算法。

拓展学习 :掌握线性回归后,可依次学习岭回归/Lasso回归 (解决多重共线性)、多项式回归 (处理简单非线性)、逻辑回归(线性回归扩展至分类),再过渡到决策树、随机森林等复杂算法,形成完整的机器学习知识体系。

相关推荐
“αβ”3 小时前
MySQL数据类型
c语言·数据库·opencv·mysql·数据挖掘·数据类型·数据
AI前沿晓猛哥3 小时前
c盘太满了,如何清理 专业工具深度扫描注册表残留与文件垃圾安全吗
数据挖掘
hans汉斯3 小时前
《数据挖掘》期刊推介&征稿指南
图像处理·人工智能·算法·yolo·数据挖掘·超分辨率重建·汉斯出版社
龙腾AI白云15 小时前
多模态大模型的统一表征与推理范式
深度学习·数据挖掘
DeepModel1 天前
【回归算法】决策树回归超详细讲解
决策树·回归·kotlin
DeepModel1 天前
【回归算法】随机森林回归超详细讲解
随机森林·数据挖掘·回归
YangYang9YangYan1 天前
2026中专大数据技术专业学数据分析的实用性分析
大数据·数据挖掘·数据分析
YangYang9YangYan1 天前
2026大专大数据专业学数据分析的价值与前景分析
大数据·数据挖掘·数据分析
babe小鑫1 天前
数据分析在P2P平台用户风险分析中的应用
数据挖掘·数据分析