原理
最小二乘法进行线性拟合分为训练过程和预测过程
训练过程分为如下3步:
①导入训练数据集,得到特征值feature(即X)和标签label(即Y)
②利用最小二乘法进行训练,根据公式得到W
③将W保存
预测过程分为如下4步:
①导入测试数据集,得到测试集的特征值feature
②导入W
③根据公式得预测值predict
④将预测值保存
权重向量
w = np.matmul(np.matmul(feature.T, feature).I, np.matmul(feature.T, label))
预测结果
即:
predict = np.matmul(testData, w.T)
源数据(200行)
最小二乘法完整代码
训练过程
import numpy as np
# 导入训练数据集data.txt
def load_data(file_name):
'''导入数据
input: file_path(string):训练数据
output: feature(mat):特征
label(mat):标签
'''
f = open(file_name)
feature = []
label = []
for line in f.readlines():
feature_tmp = []
lines = line.strip().split("\t")
# print(lines)
feature_tmp.append(1) # x0
for i in range(len(lines) - 1):
feature_tmp.append(float(lines[i]))
feature.append(feature_tmp)
label.append(float(lines[-1]))
f.close()
# print(np.mat(feature))
# print(np.mat(label).T)
# 矩阵化
return np.mat(feature)