You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中实现基于矩阵运算的线性回归(含Pandas数据处理)

手动实现线性回归系数计算(基于公式β=(XᵀX)⁻¹XᵀY)

没问题,咱们直接用Python的numpy库来手动完成这个计算,完全按照你给出的公式来,步骤很清晰:

步骤1:导入必要的库

首先需要导入numpy,它能帮我们轻松处理矩阵转置、乘法和求逆这些操作:

import numpy as np

步骤2:定义你的数据集

把你给出的Y和X矩阵转换成numpy的数组格式,注意要保证维度正确(X是6行3列,Y是6行1列的列向量,这样矩阵运算才会合法):

# 响应变量Y
Y = np.array([140, 150, 160, 135, 170, 180]).reshape(-1, 1)  # 转成6x1的列向量

# 预测变量矩阵X
X = np.array([
    [1, 10, 1],
    [1, 15, 1],
    [1, 20, 1],
    [1, 12, 0],
    [1, 16, 0],
    [1, 20, 0]
])

步骤3:按照公式计算回归系数β

咱们一步步拆解公式:

  1. 计算X的转置 X.T
  2. 计算 X.T @ X(矩阵乘法,numpy里@或者dot()都可以)
  3. 求上述结果的逆矩阵 np.linalg.inv()
  4. 计算 X.T @ Y
  5. 最后把逆矩阵和X.T @ Y相乘,得到β

代码实现如下:

# 计算X的转置
X_transpose = X.T

# 计算XᵀX
XtX = X_transpose @ X

# 计算XᵀX的逆矩阵
XtX_inv = np.linalg.inv(XtX)

# 计算XᵀY
XtY = X_transpose @ Y

# 计算回归系数β
beta = XtX_inv @ XtY

步骤4:查看结果

打印β就能得到三个系数:

print("回归系数β:")
print(f"β₀(截距): {beta[0][0]:.4f}")
print(f"β₁(age的系数): {beta[1][0]:.4f}")
print(f"β₂(gender的系数,male=1): {beta[2][0]:.4f}")

运行这段代码后,你就能得到符合公式的回归系数了。如果想验证一下,可以用X @ beta计算预测值,和原始Y对比看看差异。


内容的提问来源于stack exchange,提问作者Jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:54:54