当前位置:   article > 正文

机器学习实践_波士顿房价回归模型分析

波士顿房价回归模型分析

线性回归模型

1.线性回归基础模型

  1. from sklearn import linear_model
  2. import numpy as np
  3. # 准备数据
  4. X = np.array([[1], [2], [3]])
  5. y = np.array([2, 4, 6])
  6. # 创建线性回归模型
  7. model = linear_model.LinearRegression()
  8. # 拟合模型
  9. model.fit(X, y)
  10. # 打印模型参数
  11. print("斜率:", model.coef_)
  12. print("截距:", model.intercept_)

【解释】:

1.导入线性回归模型

from sklearn import linear_model

 2.创建线性回归模型对象

model = linear_model.LinearRegression()

3.拟合模型

 model.fit(X, y)

这一行代码使用创建好的线性回归模型对象,对给定的输入特征 X 和对应的目标变量 y 进行拟合。即,模型会尝试学习一个线性关系,以最小化目标变量 y 和模型预测值之间的差异。

  • X 是输入特征矩阵,包含了用于训练模型的各个样本的特征值。
  • y 是目标变量,包含了每个样本对应的目标值。

2. 简单的波士顿房价预测

  1. # 导入用到的python模块
  2. import sklearn
  3. import numpy as np
  4. from sklearn import datasets, linear_model
  5. import matplotlib.pyplot as plt
  6. from sklearn.model_selection import train_test_split
  7. # 定义训练和测试函数,训练函数输出拟合误差,测试函数返回预测结果与预测得分
  8. def TrainLinearRegression(X,y):
  9. model = linear_model.LinearRegression() #线性回归
  10. model.fit(X, y)
  11. print('E(|y-wTx|^2) : ' + str(np.mean((model.predict(X) - y) ** 2)))
  12. return model
  13. def TestModel(X_test, y_test, model):
  14. score = model.score(X_test, y_test) #基于模型的分数分析
  15. y_pred = model.predict(X_test)
  16. print('model test score is : ' + str(score))
  17. return y_pred, score
  18. # 这里用sklearn自带的公开数据集:波士顿房价数据集
  19. data, label = datasets.load_boston(return_X_y=True)
  20. print(data.shape, label.shape)
  21. # 将数据切分成训练数据和测试用的数据
  22. X_train, X_test, y_train, y_test = train_test_split(data, label, test_size=0.2)
  23. print(X_train.shape, y_train.shape, X_test.shape, y_test.shape)
  24. #训练模型
  25. LinearModel = TrainLinearRegression(X_train, y_train)
  26. #模型测试
  27. y_pred_linear, score_linear = TestModel(X_test, y_test, LinearModel)
  28. #结果可视化
  29. plt.figure()
  30. plt.plot(range(30), y_pred_linear[:30], 'bo-', y_test[:30], 'y.--')
  31. plt.title('Linear model prediction',fontsize='large')

3.波士顿房价预测

        波士顿房屋的数据于1978年开始统计,共506个数据点,涵盖了波士顿不同郊区房屋的14种特征信息。

        在这里,选取房屋价格(MEDV)、每个房屋的房间数量(RM)两个变量进行回归,其中房屋价格为目标变量,每个房屋的房间数量为特征变量。将数据导入进来,并进行初步分析。

1.1 数据集解析

数据集共506行,每行14列

前13列用来描述房屋的各种信息 ,最后一列为该类房屋价格中位数

1.2 流程

准备数据→配置网络→训练网络→模型评估→模型预测 

训练网络:

1.  网络正向传播计算网络输出和损失函数。

2.  根据损失函数进行反向误差传播,将网络误差从输出层依次向前传递, 并更新网络中的参数。

3.  重复1~2步骤,直至网络训练误差达到规定的程度或训练轮次达到设定值。

1.3 代码

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/841982

推荐阅读
相关标签