Python 中的多元线性回归

2025年3月17日 | 阅读 3 分钟

在线性回归建模的上下文中,“多元线性回归”和“复线性回归”通常指代相同的概念。这两个术语都描述了一种线性回归模型,其中您使用多个自变量(特征)来预测单个因变量(目标)。换句话说,这两个术语都意味着一个具有一个以上预测变量的线性回归模型。

线性回归是一种重要的机器学习方法,用于根据一个或多个自变量预测连续的目标变量。当存在多个自变量时,我们称之为多元线性回归。在本文中,我们将深入探讨多元线性回归的领域,并在 Python 中实现它。

理解多元线性回归

多元线性回归将简单线性回归扩展到多个自变量。我们不再仅依靠一个特征(X)来预测目标(Y),而是拥有多个特征(X1、X2、……、Xn)。目标保持不变:找到一组自变量与目标变量之间的最佳线性关系。

多元线性回归的通用公式为:

Y = b0 + b1 * X1 + b2 * X2 +b3 * X3 + ……………bn * Xn + ?

这里的 Y 是目标变量,X1 , X2 , X3 , X4 , …………Xn 是自变量,b0 是截距,b1 , b2, b3 , b4 , ………..bn 是系数,? 代表误差项。

回归模型假设

  1. 同方差性(Homoscedasticity):误差方差必须恒定。
  2. 线性(Linearity):因变量和自变量之间的关系应该是线性的。
  3. 无多重共线性(Lack of Multicollinearity):假定数据中的多重共线性非常小。
  4. 多元正态性(Multivariate normality):多元回归假设残差呈正态分布。

输入代码

输出

Coefficients: [0.58539281 1.99996142 2.97306189]
Mean Squared Error: 0.09732995265403607
R-squared: 0.9976043742393531

Multivariate Linear Regression in Python

在此代码中:

  1. 我们生成具有两个自变量 X1 和 X2 以及一个目标变量 y 的人工数据。
  2. 通过将 X1 和 X2 水平堆叠来创建一个设计矩阵 X,并添加一列 1 作为截距项。
  3. 我们将数据分为训练集和测试集。
  4. 我们使用线性回归的正规方程计算系数。
  5. 我们在测试集上进行预测,并计算均方误差(MSE)和 R 方(R2)。
  6. 我们使用 **matplotlib** 的 **3-D** 散点图来可视化数据点和回归平面。

此代码使用 numpy 执行多元线性回归,并使用 matplotlib 可视化结果。

理解结果

  • 均方误差(MSE):较低的 MSE 表明模型与数据的拟合度更好。它衡量预测值与实际值之间的平均平方差。
  • R 方(R2):R 方衡量因变量(目标)中可由自变量预测的方差的百分比。值越高表示拟合度越好,1.0 表示完美拟合。