最小二乘法实现波士顿房价预测【机器学习】

原理

最小二乘法进行线性拟合分为训练过程预测过程

训练过程分为如下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),
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值