目录

1、波士顿房价预测介绍

2、线性回归算法

3、调用scikit-learn库实现房价预测


1、波士顿房价预测介绍

问题描述:波士顿房价数据集统计的是20世纪70年代中期波士顿郊区房价的中位数,统计了城镇人均犯罪率、不动产税等共计13个指标,统计出房价,试图能找到那些指标与房价的关系。数据集中一共有506个样本,每个样本包含13个特征信息实际房价,波士顿房价预测问题目标是给定某地区的特征信息,预测该地区房价,是典型的回归问题(房价是一个连续值)。波士顿房价数据集中主要的指标名称及其含义如下。

机器学习库scikit-learn中自带了波士顿房价数据集,可直接加载。房价预测可采用线性回归算法。

2、线性回归算法

线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,通过属性的线性组合进行预测的线性模型,其目的是找到一条直线或者一个平面或者更高维的超平面,使得预测值与真实值之间的误差最小化

线性回归分析中,如果只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。线性回归算法的公式如下,xi表示样本,可以是多维的,w为系数矩阵,b为偏置。目标是学习w和b两个参数,使得计算结果和真实结果之间的误差最小

3、调用scikit-learn库实现房价预测

直接调用scikit-learn中的相关函数,实现波士顿房价简单预测的代码如下,主要步骤包括:

  1. 加载数据
  2. 划分训练集和测试集
  3. 创建线性回归模型
  4. 拟合训练数据
  5. 得到预测结果
  6. 计算相应的评测指标

这里主要是给大家演示了下机器学习库中相关函数的调用,并没有对数据进行分析,接下来通过数据可视化技术来分析单个指标与房价之间的关系。关键代码如下。

各个指标与房价之间的关系可视化效果如下:

通过可视化图表分析,可以看到不同特征的取值范围有较大差异,有些取值范围从0到1,有些从1到100,还有0到400等等,为了消除不同量纲的影响,可对数据进行标准化处理。一般采用将数据减去数据组的平均数再除以标准差z = (x - u) / s (u表示均值,s表示标准差)

此外,通过图表效果可知,部分指标与房价之间存在明显的线性关系(例如RM、LSTAT等),而有些指标与房价之间的关系则不那么明显(例如CHAS、B等)。可调用机器学习库中相关方法获取最相关的特征,关键代码如下:(首先对数据进行标准化,然后获取最相关的3个特征

选择最相关的三个特征,结果为: RMLSTATPTRATIO

最后使用最相关的特征数据进行房价的预测,关键代码如下:

将预测结果和真实结果画在同一个图上,如下图所示,可以清楚的看到它们之间的关系。

思考:通过预测值和真实值对比,可知有一些异常点,如何去除这些异常点?例如删除房价为50的样本。

相关代码可关注微信公众号:手把手教你学编程,回复 boston 获取,详细的视频讲解可查看 CSDN学院 里的手把手教你学Python系列视频:https://edu.csdn.net/lecturer/5686。   欢迎加入QQ群一起学习交流:858228002 。

手把手教你学Python之波士顿房价预测(scikit-learn的应用)相关推荐

  1. python global用法_14_手把手教你学Python之函数(下)

    变量作用域:根据变量定义的位置,可将变量分为全局变量和局部变量. 全局变量:定义在函数外面的变量,可以在多个函数中进行访问,但不能执行赋值操作.如果有赋值语句,相当于创建了一个同名的局部变量: 局部变 ...

  2. oracle数据库更新语句_20_手把手教你学Python之操作数据库

    数据库是数据的仓库,将大量数据按照一定的方式组织并存储起来,方便进行管理和维护,例如快速检索和统计等.数据库的主要特点: 以一定的方式组织.存储数据: 能为多个用户共享: 与程序彼此独立. -- 数据 ...

  3. python中字典的value可以为任意对象_手把手教你学Python之字典

    字典是一种无序可变的容器,字典中的元素都是"键(key):值(value)"对, "键"和"值"之间用冒号隔开,所有"键值对&qu ...

  4. 手把手教你学Python之Pandas(一文掌握数据分析与处理库-Pandas)

    目录 基本结构之Series Series对象的创建 Index对象介绍 Series中数据的访问 Series中常用方法 基本结构之DataFrame DataFrame的创建 ​DataFrame ...

  5. 手把手教你学Python之Matplotlib绘图(一文掌握数据可视化库-Matplotlib)

    目录 Matplotlib介绍 线形图(折线图) 直方图 条形图 饼状图 散点图 Matplotlib介绍        matplotlib是一个Python 的2D绘图库,提供了一套表示和操作图以 ...

  6. 手把手教你学Python之常见运算符

    目录 算术运算符 关系运算符 逻辑运算符 位运算符 成员运算符 身份运算符 前面给大家介绍了Python中的一些基本数据类型,这些数据之间如何进行运算呢?这就需要借助于一些运算符了,Python中提供 ...

  7. 手把手教你学Python之文件操作(一文掌握文件操作)

    目录 1.Python中文本文件的读写 2.Python中常用的文件与文件夹操作方法 3.Python中Excel文件的读写 4.Python读取Excel文件案例​ 为了保存数据,方便修改和分享,数 ...

  8. python私人定制_手把手教你学python第十五讲(魔法方法续私人“定制”)

    python无处不对象的深刻理解 前面写了这么多,我觉得有必要从一个大的层面,也就是OO来看问题的本质.只要你调用对象的语法是合乎python的习惯的,那就是可以的,我们以前从来没有像下面这么写过,对 ...

  9. python 函数修饰器 父类_手把手教你学python第十四讲(函数装饰器,super用法和时间处理)...

    文中有些字在图中是因为每篇文章最多100张图片,我把有的小图片和文字一起截图了,文中所有的引用都会标出原文网址,除此以外都是作者原创. 有时候会在文章最前或者最后补充一些知识或者把前面说的有问题的地方 ...

最新文章

  1. Rendering failed with a known bug ,Please try a rebuild
  2. 报名丨2019全球AI文创大赛启动仪式邀您参加!
  3. [NC13C]形态形成场/[Gym100430B]Divisible Substrings
  4. 软件工程的实践项目课程的自我目标
  5. pdf2swf无法转换某些文档,提示缺少字体时的处理
  6. MATLAB机器学习系列-4函数篇
  7. HDU - 1079 Calendar Game(博弈打表sg函数)
  8. linux颜色吸取工具,8 个优秀的 Linux 图形图像及色彩工具
  9. 超级计算机的英语作文80字,英语作文_为什么这台超级计算机如此快? (有声) _沪江英语...
  10. __va_rounded_size
  11. python向CSV文件写内容
  12. QMessageBox改变大小
  13. python sleep什么意思,Python sleep()
  14. Centos 之find详解
  15. Android 动画 Kotlin 教程
  16. 刷榜中ASO优化中下载量与评论之间的对应比
  17. 零基础编程可以学习大数据吗?大数据难不难学啊?
  18. 2018年-读书笔记
  19. Java封装和多态作业
  20. 【小程序】滚动的公告栏

热门文章

  1. Docker 容器文件拷贝及目录挂载
  2. zabbix应用之详细的拓扑图标签--链路流量
  3. PCL点云库(2) — IO模块
  4. h5封装去底部_贪婪洞窟H5:也出微信小游戏了!还是原来贪婪的味道
  5. [重磅]秦雯讲大数据:心动.幡动.风动
  6. html中日期下拉选怎么设置,html中option标签(下拉列表选项)的详细介绍
  7. 计算机网络dce是什么意思,DTE与DCE的解释
  8. mysql 冗余 raid_RAID(廉价磁盘冗余阵列)
  9. 黑马pink JavaScript笔记(7)-流程控制-循环
  10. 30 周年,Linux 成功的真正原因是什么?