线性回归是一类回归问题,其目标是通过找到一组参数,使得输入数据和输出数据之间的线性关系尽可能地接近。其数学表达式为: 其中, 是输入矩阵, 是回归系数, 是输出矩阵。 而正规方程是一种求解线性回归问题的方法,它通过求解矩阵的逆来得到回归系数。其具体步骤如下:

1. 初始化矩阵

  • 创建一个与输入矩阵 和输出矩阵 相关的矩阵
  • 数学表达式为:

2. 求解回归系数

  • 通过求解矩阵 的逆来得到回归系数。
  • 数学表达式为:

3. 返回回归系数

  • 将计算得到的回归系数返回。

标准代码如下

def linear_regression_normal_equation(X: list[list[float]], y: list[float]) -> list[float]:
    X = np.array(X)
    # 将y转换为列向量
    y = np.array(y).reshape(-1, 1)
    X_transpose = X.T
    # 计算正规方程的解
    theta = np.linalg.inv(X_transpose.dot(X)).dot(X_transpose).dot(y)
    theta = np.round(theta, 4).flatten().tolist()
    return theta