跳转到内容

线性回归模型

线性回归(Linear Regression) 是一种用于建立自变量(特征)与因变量(标签)之间线性关系的基础监督学习回归算法。


在单样本情境下,模型输出值 $f(x)$ 由特征的加权和加上偏置项组成:

单样本公式

当我们将偏置项 $b$ 并入权重向量并写作 $w_0$ 时,所有训练样本可以统一表示为矩阵乘积形式:

矩阵表示


在线性回归中,我们可以通过最小化均方误差(即最小二乘法 Least Squares Method)来推导参数的最优解。当矩阵 $X^T X$ 为满秩矩阵(即非奇异矩阵)时,存在唯一闭式解析解:

解析解公式

即: $$\hat{w}^* = (X^T X)^{-1} X^T y$$


4.1. 基于 Numpy 的矩阵解析解手动实现

Section titled “4.1. 基于 Numpy 的矩阵解析解手动实现”
import numpy as np
def linear_regression_fit(X, y):
# 为设计矩阵 X 拼接一列全 1 向量(偏置列)
m = X.shape[0]
X_b = np.c_[np.ones((m, 1)), X]
# 依据最小二乘公式计算参数 (X^T * X)^(-1) * X^T * y
w_best = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y)
# 返回偏置和权重
return w_best[0], w_best[1:]
from sklearn.linear_model import LinearRegression
# 1. 实例化线性回归类
model = LinearRegression()
# 2. 拟合训练模型
model.fit(X_train, y_train)
# 3. 输出模型参数与偏置
print("Weights:", model.coef_)
print("Bias:", model.intercept_)
# 4. 模型预测
y_pred = model.predict(X_test)