sklearn库安装:

pip install scikit-learn

波士顿数据

以Scikit-learn的内置数据集波士顿(Boston)房屋价格为案例,采用单变量线性回归算法对数据进行拟合与预测。
波士顿房屋的数据于1978年开始统计,共506个数据点,涵盖了波士顿不同郊区房屋的14中特征信息。
在这里,选取房屋价格(MEDV)、每个房屋的房间数量(RM)两个变量进行回归,其中房屋价格为目标变量,每个房屋的房间数量为特征变量。将数据导入进来,并进行初步分析。

数据处理

1、预处理
先获取数据集,获取到MEDV和RM,然后看它们的规律。
2、划分数据集,训练集和测试集

代码

import matplotlib.pyplot as plt #绘制图形库
import numpy as np              #科学计算库
import pandas as pd             #数据分析库
from sklearn.datasets import load_boston#从sklearn数据集中导入波士顿数据
boston=load_boston()
#print(boston.keys())
#print(boston.feature_names)
bos=pd.DataFrame(boston.data)#DataFrame是pandas的一个表格型数据结构,它含有一组有序的列,每列可以是不同的值类型
#print(bos[5].head(5))#返回数据第五列的前五行
bos_target=pd.DataFrame(boston.target)
#print(bos_target.head(5))
#绘制房屋价格MEDV 每个房屋平均客房数RM --散点图
dots1=bos[5]
#dots1=bos.iloc[:,5:6],iloc[ : , : ]
""" 前面的冒号就是取行数,后面的冒号是取列数
左闭右开原则 """
dots2=bos_target
plt.scatter(dots1,dots2)
plt.xlabel('RM')
plt.ylabel('MEDV')
plt.title('The relation of MEDV and RM')
plt.show()
from sklearn.model_selection import train_test_split
dots1=np.array(dots1.values)
dots2=np.array(dots2.values)    #np.array,numpy
x_train,x_test,y_train,y_test=train_test_split(dots1,dots2,test_size=0.25)  #把25%的数据作为测试集
print(x_train.shape,x_test.shape,y_train.shape,y_test.shape)                #shape是形状,数组的行数和列数
from sklearn.linear_model import LinearRegression#导入库
lr=LinearRegression()           #设定回归算法
lr.fit(x_train,y_train)         #使用训练数据进行参数求解
print(lr.intercept_,lr.coef_)   #截距和权重向量
#预测
y_hat=lr.predict(x_test)
#评估
#y_test与y_hat的可视化
plt.figure(figsize=(10,6))  #设置图片尺寸
t = np.arange(len(X_test))  #创建t变量plt.plot(t, y_test, 'r', linewidth=2, label='y_test')
#绘制y_test曲线,参数分别是:横纵坐标数据,线颜色,宽度...
plt.plot(t, y_hat, 'g', linewidth=2, label='y_hat')   #绘制y_hat曲线plt.legend() #设置图例plt.xlabel('test data')
plt.ylabel('price')
plt.show()
plt.figure(figsize=(10,6))   #绘制图片尺寸
plt.plot(y_test,y_hat,'o')   #绘制散点
plt.plot([-10,60],[-10,60], color="red", linestyle="--", linewidth=1.5)
plt.axis([-10,60,-10,60])
plt.xlabel('ground truth')   #设置X轴坐标轴标签
plt.ylabel('predicted')      #设置y轴坐标轴标签
plt.grid()  #绘制网格线
from sklearn import metrics
from sklearn.metrics import r2_score
# 拟合优度R2的输出方法一
print ("r2:",lr.score(X_test, y_test))  #基于Linear-Regression()的回归算法得分函数,来对预测集的拟合优度进行评价
# 拟合优度R2的输出方法二
print ("r2_score:",r2_score(y_test, y_hat)) #使用metrics的r2_score来对预测集的拟合优度进行评价
# 用scikit-learn计算MAE
print ("MAE:", metrics.mean_absolute_error(y_test, y_hat)) #计算平均绝对误差
# 用scikit-learn计算MSE
print ("MSE:", metrics.mean_squared_error(y_test, y_hat))  #计算均方误差
# # 用scikit-learn计算RMSE
print ("RMSE:", np.sqrt(metrics.mean_squared_error(y_test, y_hat))) #计算均方根误差

实验一-波士顿房价预测相关推荐

  1. 深度学习(波士顿房价预测)

    本程序采用百度paddlepaddle深度学习框架,并在百度AI Studio平台上运行. 目录 1实验背景 2 实验过程 2.1 数据处理 2.1.1数据集导入并按规定形状保存 2.1.2数据集的划 ...

  2. 波士顿房价预测——机器学习入门级案例

    一.数据处理 1.1 数据集介绍 本实验使用波士顿房价预测数据集,共506条样本数据,每条样本包含了13种可能影响房价的因素和该类房屋价格的中位数,各字段含义如下表所示: 字段名 类型 含义 CRIM ...

  3. 深度学习入门——波士顿房价预测

    基于神经网络模型的波士顿房价预测 波士顿房价预测是一个经典的机器学习任务,类似于程序员世界的"Hello World".以"波士顿房价预测"任务为例,我们学习如 ...

  4. 机器学习入门实战---波士顿房价预测

    波士顿房价预测 波士顿房价数据集介绍 波士顿房价数据说明:此数据源于美国某经济学杂志上,分析研究波士顿房价( Boston HousePrice)的数据集.数据集中的每一行数据都是对波士顿周边或城镇房 ...

  5. 机器学习(11)线性回归(2)实战 -- 正规方程优化、梯度下降优化(波士顿房价预测)

    目录 一.波士顿房价预测(正规方程优化) API 1.获取数据集 2.划分数据集 3.标准化 4. 创建预估器,得到模型 5.模型评估(均方差评估) 代码 二.波士顿房价预测(正规方程优化) API ...

  6. 竞赛大杀器xgboost,波士顿房价预测

    经常出入DC竞赛.kaggle.天池等大数据比赛的同学应该很了解xgboost这座大山. 几乎所有的比赛都绕不过它,可能只需要这一个库,在比赛中就可以得到很高的分数,究竟是为什么呢?那么就来窥探一下它 ...

  7. 线性回归之案例:波士顿房价预测

    线性回归之案例:波士顿房价预测 数据介绍   [13个特征值,1个目标值] 给定的这些特征,是专家们得出的影响房价的结果属性.此阶段不需要自己去探究特征是否有用,只需要使用这些特征.到后面量化很多特征 ...

  8. 【深度学习】实战Kaggle竞赛之线性模型解决波士顿房价预测问题(Pytorch)

    [深度学习]实战Kaggle竞赛之线性模型解决波士顿房价预测问题 文章目录 1 概述1.1 Competition Description1.2 Practice Skills 2 数据处理 3 训练 ...

  9. kaggle房价预测特征意思_Kaggle实战-波士顿房价预测

    本文数据集来自Kaggle波士顿房价预测项目https://www.kaggle.com/c/house-prices-advanced-regression-techniques/data 1.数据 ...

  10. 教你使用百度深度学习框架PaddlePaddle完成波士顿房价预测(新手向)

    首先,本文是一篇纯新手向文章,我自己也只能算是入门,有说错的地方欢迎大家批评讨论 目录 一.人工智能.机器学习.深度学习 二.PaddlePaddle(飞桨) 三.波士顿房价预测模型 数据处理 模型设 ...

最新文章

  1. python 内置模块:collections
  2. java Gregorian,Java GregorianCalendar getTimeZone()用法及代码示例
  3. cygwin是一个在windows平台上运行的unix模拟环境,下载与安装
  4. 【MySQL】日期函数:仿trunc、当年、当月、当天
  5. 下次激活策略10_服装店营销策划方案,简单策略让服装超市提升10倍业绩
  6. nssl1318-地铁重组【dp】
  7. 程序员面试金典 - 面试题 03.01. 三合一(数组栈)
  8. mysql脚本编写与案例_MySQL语句执行顺序和编写顺序实例解析
  9. 棋牌游戏服务器设计(1)
  10. 乌龟git解决冲突_关于git中自己的分支和主分支有冲突的解决方案(git和乌龟git)...
  11. 2020年蓝桥杯省赛 C++ B组
  12. 计算机图形学的学习心得,计算机图形学学习心得
  13. 数字电视机顶盒的基本知识介绍
  14. html快闪软件制作,快闪文字视频制作
  15. linux怎么查看hwaddr_linux如何查看mac地址_查看linux的mac地址_linux 查看mac地址
  16. 2022年圣诞节外贸出口热门清单 外贸进出口商品查询 贸易动力
  17. 详解VB对话框InputBox和MsgBox
  18. 真的!!!两行css代码实现瀑布流,html,css最简单的瀑布流实现方式且没有缺点!...
  19. 让数学变得更生动manim库的使用(4)-动画系统详解
  20. 硬件电路设计(转载)

热门文章

  1. ESP-MESH 无线组网,让智能家居通信组网更方便 | ESP32轻松学(Arduino版)
  2. 5.无线射频基础知识介绍_无线射频基础介绍
  3. MySQL 性能优化的 9 种知识,面试再也不怕了
  4. 【维修】【硬件】【苹果】wifi芯片被加密
  5. MySQL 之 The definition of table 'p' prevents operation UPDATE on table 'post'.
  6. spring事务管理器的源码和理解
  7. Todd's Matlab讲义第5讲:二分法和找根
  8. Android Binder总结(转自Cloud Chou's Tech Blog)
  9. Windows XP 全攻略
  10. 实验室设计规范与标准