机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)

本例显示如何使用cross_val_predict函数可视化模型预测误差。这里要用到scikit-learn自带数据集——“波士顿房价数据集”。

数据集介绍

“波士顿房价数据集”位于datasets里,包括13个特征。首先,我们来看一看这个数据集的属性的详细信息。

from sklearn import datasets
boston = datasets.load_boston()
print(boston.DESCR)

打印结果显示:该数据集共有13个属性(特征)、506个实例(样本)。MEDV是目标变量,表示自住房屋房价的中位数(以千美元计)。下面列出所有14个属性的详细信息。

  • CRIM:城镇人均犯罪率。

  • ZN:住宅用地超过 25000 sq.ft. 的比例。

  • INDUS:城镇非零售商用土地的比例。

  • CHAS:查理斯河空变量(如果边界是河流,则为1;否则为0)。

  • NOX:一氧化氮浓度。

  • RM:住宅平均房间数。

  • AGE:1940 年之前建成的自用房屋比例。

  • DIS:到波士顿五个中心区域的加权距离。

  • RAD:辐射性公路的接近指数。

  • TAX:每 10000 美元的全值财产税率。

  • PTRATIO:城镇师生比例。

  • B:1000(Bk-0.63)^ 2,其中 Bk 指代城镇中黑人的比例。

  • LSTAT:人口中地位低下者的比例。

  • MEDV:自住房的平均房价,以千美元计。

重要参数: return_X_y逻辑参数,表示是否返回target变量(即MEDV), 默认值是FALSE,只返回data(即预测属性)。

print(boston.data.shape)

我们将return_X_y的值改为True,再看一下

data,target = datasets.load_boston(return_X_y = True)
print(data.shape)
print(target.shape)

下面展示该数据集的一部分数据:

实例详解

第一步

首先,从sklearn库里导入必需的数据集和函数库。

from sklearn import datasets
from sklearn.model_selection import cross_val_predict
from sklearn import linear_model
import matplotlib.pyplot as plt

这里的matplotlib.pyplot是一个命令式的函数集,与matlab很像。每一个pyplot函数都会改变图形的某些属性,例如创建图形、在图里创建绘图区域、在绘图区画线、用标签装饰图形等。由于名字比较长,使用别名plt简化,在后面的程序里,可以使用它代表。

第二步

然后,使用类linear_model里的函数LinearRegression建立一个线性回归对象lr。导入波士顿房价数据,取目标变量。

lr = linear_model.LinearRegression()
boston = datasets.load_boston()
y = boston.target

第三步

调用函数cross_val_predict, 返回一个与y维数相同的数组predicted。在predicted的每一项里,保存一个由10倍交叉验证获得的预测。

predicted = cross_val_predict(lr, boston.data, y, cv=10)

第四步

Matplotlib能够把很多张图画到一个显示界面,这通过把绘图面板分割成若干个子图来实现。
使用Matplotlib的函数subplot, 返回一个Figure对象,它包含多个子图(Axes).使用函数as.scatter, 以目标值为横轴、预测值为纵轴,绘成散点图。

fig, ax = plt.subplots()
ax.scatter(y, predicted, edgecolors=(0, 0, 0))
ax.plot([y.min(), y.max()], [y.min(), y.max()], 'k--', lw=4)
ax.set_xlabel('Measured')
ax.set_ylabel('Predicted')
plt.show()

精彩内容,请关注微信公众号:统计学习与大数据

【Python实例第1讲】交叉验证预测曲线的画法相关推荐

  1. scikit-learn一般实例之一:绘制交叉验证预测

    本实例展示怎样使用cross_val_predict来可视化预测错误: # coding:utf-8from pylab import * from sklearn import datasets f ...

  2. 【机器学习】深度盘点:详细介绍 Python 中的 7 种交叉验证方法!

    在任何有监督机器学习项目的模型构建阶段,我们训练模型的目的是从标记的示例中学习所有权重和偏差的最佳值. 如果我们使用相同的标记示例来测试我们的模型,那么这将是一个方法论错误,因为一个只会重复刚刚看到的 ...

  3. 【Python学习】 - sklearn学习 - 交叉验证中的常用函数

    首先调入库:from sklearn.model_selection import train_test_split train_test_split是交叉验证中常用的函数,功能是从样本中随机的按比例 ...

  4. python实例(一):验证输入的手机号码是否为中国移动手机号码

    #python day08 实战演练 实例 验证输入的手机号码是否为中国移动手机号码 import re pattern = r'(13[4-9]\d{8})|(15[01289]\d{8})$' d ...

  5. 计算营业额python_ARIMA时间序列分析-----Python实例(一周销售营业额预测)

    以ARIMA模型为例介绍时间序列算法在python中是如何实现的,一下是应用Python语言建模步骤: –– coding: utf-8 –– """ Created o ...

  6. 机器学习中的交叉验证

    总第100篇 本篇讲讲机器学习中的交叉验证问题,并利用sklearn实现. 前言 在说交叉验证以前,我们先想一下我们在搭建模型时的关于数据切分的常规做法[直接利用train_test_split把所有 ...

  7. 交叉验证和超参数调整:如何优化您的机器学习模型

    In the first two parts of this article I obtained and preprocessed Fitbit sleep data, split the data ...

  8. k折交叉验证优缺点_k折交叉验证(R语言)

    "机器学习中需要把数据分为训练集和测试集,因此如何划分训练集和测试集就成为影响模型效果的重要因素.本文介绍一种常用的划分最优训练集和测试集的方法--k折交叉验证." k折交叉验证 ...

  9. 模型效果优化,试一下多种交叉验证的方法(系统实操)

    我们在建模时,经常会遇到这样的情况:模型在训练样本集上拟合成功后的性能评价指标都表现较好,但在测试样本集上的验证效果却表现很差,这种偏差情况出现的原因,往往是模型出现了过拟合问题(如图1所示),直接反 ...

  10. k折交叉验证 k-fold cross-validation

    文章目录 k折交叉验证 k值的确定 实例 使用scikit-learn进行交叉验证 交叉验证是用来评估机器学习方法的有效性的统计学方法,可以使用有限的样本数量来评估模型对于验证集或测试集数据的效果. ...

最新文章

  1. 小牛生产小牛的问题解决集粹
  2. Kafka实现细节(下)
  3. [JVM]线上CPU负载持续飙高的问题解决
  4. Linux_用户和权限管理
  5. stm32 IO口模式的寄存器配置
  6. STORM_0001_用vmware拷贝出三个相同的ubuntu搭建小的zookeeper集群
  7. Storing XML in Relational Databases(2)
  8. 解决: service endpoint with name xxx already exists ( docker 已删除的容器却依旧存在)
  9. QT Core | 信号槽03 - 自定义信号与槽
  10. 数据接口请求异常:parerror_什么是接口的幂等性,如何实现接口幂等性?
  11. Vue Cli 3 搭建一个可按需引入组件的组件库架子
  12. ant脚本 变量赋值_【Jmeter】Jmeter+ant+jenkins持续集成
  13. matlab 线型、标记、颜色
  14. JRE瘦身 制作小工具
  15. Web登录小案例(含验证码登录)
  16. [Tensorflow]L2正则化和collection【tf.GraphKeys】
  17. 在linux虚拟机上显示摄像头视频(V4L2编程)
  18. 六面阿里天猫,已拿offer,我的面经复盘总结,原来进大厂没那么难了
  19. 若依前后端分离版生成代码实现仓库的增删改查
  20. 常用算法的计算复杂度

热门文章

  1. 几篇QEMU/KVM代码分析文章
  2. 思想是精神的种子,改造自己的内心世界
  3. ELK详解(五)——Head插件简单使用
  4. MySQL引擎详解(二)——MyISAM引擎特性
  5. web基础、tomcat搭建
  6. html_头部meta设置
  7. 高通RFC适配RFFE-添加MIPI设备【转】
  8. WPF 使用附加属性增加控件属性
  9. SQL时间相关 - SQL日期,时间比较(转)
  10. 《树莓派开发实战(第2版)》——1.2 封装树莓派