Python最小二乘法程序:矩阵法实现
以下是一个使用矩阵法编写的最小二乘法程序:
import numpy as np
def least_squares_matrix(X, y):
# 添加常数项列向量
X = np.concatenate((np.ones((X.shape[0], 1)), X), axis=1)
# 计算最小二乘法的解
beta = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y)
return beta
# 生成样本数据
X = np.array([[1, 2], [3, 4], [5, 6]])
y = np.array([3, 6, 9])
# 计算最小二乘法解
beta = least_squares_matrix(X, y)
print('最小二乘法解(beta):', beta)
在这个程序中,我们首先导入了NumPy库,然后定义了一个least_squares_matrix函数,它接受矩阵X和向量y作为输入,并返回最小二乘法的解。
在函数中,我们首先通过在X矩阵前面添加一列全为1的列向量来考虑常数项。然后,我们使用矩阵运算来计算最小二乘法的解。具体地,我们使用np.linalg.inv函数计算矩阵X.T.dot(X)的逆矩阵,然后使用dot函数进行矩阵乘法运算,得到最小二乘法的解beta。
最后,我们生成了一个样本数据(X和y),并调用least_squares_matrix函数来计算最小二乘法的解,并打印出来。
注意:在实际应用中,可能需要对输入数据进行预处理,例如进行特征缩放或归一化等操作,以提高最小二乘法的效果。
原文地址: https://www.cveoy.top/t/topic/l0xj 著作权归作者所有。请勿转载和采集!