机械学习--线性回归

发布于:2025-07-31 ⋅ 阅读:(12) ⋅ 点赞:(0)

线性回归(Linear Regression)详解

一. 什么是线性回归?

线性回归是机器学习中最基础的监督学习算法之一,用于预测连续型目标变量。其核心思想是:找到自变量(特征)与因变量(目标)之间的线性关系,通过这条关系线来预测未知数据。

例如:

  • 用房屋面积(自变量)预测房价(因变量)
  • 用学习时长(自变量)预测考试分数(因变量)
  • 用多个特征(如面积、卧室数量、位置)预测房价(多元线性回归)

二. 数学原理

2.1 假设函数

线性回归假设自变量与因变量的关系可表示为:

  • 简单线性回归(单特征):
    y=wx+b
    其中,x 是自变量,y 是预测值,w 是权重(斜率),b 是偏置(截距)。

  • 多元线性回归(多特征):
    y=w1​x1​+w2​x2​+...+wn​xn​+b
    可简化为矩阵形式:y=WTX+b(W 是权重向量,X 是特征矩阵)。

2.2 损失函数

目标是找到最优的 w 和 b,使预测值与真实值的误差最小。常用均方误差(MSE) 作为损失函数:
Loss=n1​∑i=1n​(yi​−y^​i​)2
其中,yi​ 是真实值,y^​i​ 是预测值,n 是样本数量。

2.3 求解参数

通过最小化损失函数求解 w 和 b,常用方法:

  • 正规方程:直接通过数学公式求解(适用于小数据集)。
  • 梯度下降:通过迭代优化,逐步调整参数以降低损失(适用于大数据集)。

三. 线性回归的假设

线性回归的有效性依赖于以下假设:

  1. 自变量与因变量存在线性关系
  2. 误差项(y−y^​)之间相互独立;
  3. 误差项具有同方差性(方差恒定);
  4. 误差项服从正态分布。

四. 线性回归的优缺点

  • 优点
    • 原理简单,解释性强(权重可直接反映特征影响)。
    • 训练速度快,适合大规模数据。
  • 缺点
    • 只能捕捉线性关系,无法处理非线性数据(需手动特征工程,如多项式转换)。
    • 对异常值敏感,可能影响拟合效果。

五.scikit-learn的linear_model.LinearRegression方法

scikit-learn(简称 sklearn)是 Python 中最常用的机器学习库之一,其linear_model.LinearRegression类提供了高效、易用的线性回归实现。下面详细介绍其核心功能、参数、方法及使用要点。

1. LinearRegression 核心功能

LinearRegression实现了普通最小二乘法(Ordinary Least Squares, OLS) 线性回归,用于:

  • 建模特征与连续目标变量的线性关系
  • 支持单特征(简单线性回归)和多特征(多元线性回归)
  • 通过最小化预测值与真实值的残差平方和求解参数
2. 核心参数详解

初始化LinearRegression时可配置的关键参数:

参数 类型 默认值 说明
fit_intercept bool True 是否计算模型的偏置项(截距b)。
True:模型包含截距(推荐,除非特征已中心化)
False:假设数据已中心化,不计算截距
normalize bool False 是否在拟合前对特征进行归一化(已过时,建议用StandardScaler替代)。
True:对特征进行归一化(均值为 0,方差为 1)
copy_X bool True 是否复制特征数据(避免修改原始数据)
n_jobs int None 并行计算的线程数(用于大规模数据)。
-1:使用所有可用 CPU 核心
positive bool False 是否强制权重系数为非负数(适用于物理意义上权重不能为负的场景,如销量预测)
3. 主要方法

LinearRegression对象的核心方法:

方法 功能
fit(X, y) 训练模型,求解权重coef_和截距intercept_
X:特征矩阵(形状(n_samples, n_features)
y:目标变量(形状(n_samples,)
predict(X) 用训练好的模型预测新数据。
- 返回预测值(形状(n_samples,)
score(X, y) 计算模型在Xy上的R2分数(决定系数),衡量模型拟合优度。
- 范围:(−∞,1],越接近 1 拟合越好
get_params(deep=True) 获取模型当前参数配置
set_params(**params) 修改模型参数(如model.set_params(fit_intercept=False)
4. 重要属性

训练后可访问的模型属性

属性 说明
coef_ 特征权重数组(形状(n_features,)),对应公式中的w1​,w2​,...,wn​
intercept_ 截距(标量),对应公式中的b
rank_ 特征矩阵的秩(用于判断多重共线性)
singular_ 特征矩阵的奇异值(用于诊断数据问题)
5. 关键注意事项
  1. 数据预处理

    • 特征量纲差异大时,需先标准化(StandardScaler)或归一化,避免量纲影响权重
    • 缺失值需先处理(如用SimpleImputer填充),否则模型会报错
    • 异常值对线性回归影响大,可通过箱线图检测并处理
  2. 多重共线性

    • 当特征间高度相关(如 "面积" 和 "房间数"),会导致权重不稳定
    • 可通过方差膨胀因子(VIF)检测,或使用正则化方法(如 Ridge 回归)缓解
  3. 适用场景

    • 适合特征与目标存在线性关系的数据
    • 不适合非线性关系(此时需用多项式回归或树模型)
  4. 与其他线性模型的区别

    • LinearRegression(OLS)无正则化,可能过拟合
    • Ridge:加入 L2 正则化,缓解过拟合
    • Lasso:加入 L1 正则化,可实现特征选择(部分权重为 0)


网站公告

今日签到

点亮在社区的每一天
去签到