本节书摘来异步社区《Python机器学习——预测分析核心算法》一书中的第2章,第2.5节,作者:【美】Michael Bowles(鲍尔斯),更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.5 用实数值属性预测实数值目标:评估红酒口感

红酒口感数据集包括将近1 500种红酒的数据。每一种红酒都有一系列化学成分的测量指标,包括酒精含量、挥发性酸、亚硝酸盐。每种红酒都有一个口感评分值,是三个专业评酒员的评分的平均值。问题是构建一个预测模型,输入化学成分的测量值,预测口感评分值,使之与评酒员的评分一致。

代码清单2-14为获得红酒数据集统计信息的代码。代码打印输出数据集的数值型统计信息,在代码清单的最后部分可以看到。代码还产生了归一化属性的箱线图,可以直观发现数据集中的异常点。图2-16为箱线图。数值型统计信息和箱线图都显示含有大量的边缘点。在对此数据集进行训练时要记住这一点。当分析预测模型的性能时,这些边缘点很可能就是分析模型预测错误的一个重要来源。

代码清单2-14 红酒数据统计信息-wineSummary.py

__author__ = 'mike_bowles'
import pandas as pd
from pandas import DataFrame
from pylab import *
import matplotlib.pyplot as plottarget_url = ("http://archive.ics.uci.edu/ml/machine-"
"learning-databases/wine-quality/winequality-red.csv")
wine = pd.read_csv(target_url,header=0, sep=";")print(wine.head())#generate statistical summaries
summary = wine.describe()
print(summary)wineNormalized = wine
ncols = len(wineNormalized.columns)for i in range(ncols):mean = summary.iloc[1, i]sd = summary.iloc[2, i]wineNormalized.iloc[:,i:(i + 1)] = \(wineNormalized.iloc[:,i:(i + 1)] - mean) / sd
array = wineNormalized.values
boxplot(array)
plot.xlabel("Attribute Index")
plot.ylabel(("Quartile Ranges - Normalized "))
show()Output - [filename - wineSummary.txt]fixed acidity volatil acid citric acid resid sugar chlorides
0             7.4          0.70       0.00         1.9     0.076
1             7.8          0.88       0.00         2.6     0.098
2             7.8          0.76       0.04         2.3     0.092
3            11.2          0.28       0.56         1.9     0.075
4             7.4          0.70       0.00         1.9     0.076free sulfur dioxide tot sulfur dioxide density   pH sulphates
0                    11                 34  0.9978 3.51      0.56
1                    25                 67  0.9968 3.20      0.68
2                    15                 54  0.9970 3.26      0.65
3                    17                 60  0.9980 3.16      0.58
4                    11                 34  0.9978 3.51      0.56alcohol quality
0       9.4       5
1       9.8       5
2       9.8       5
3       9.8       6
4       9.4       5fixed acidity volatile acidity citric acid residual sugar
count     1599.000000      1599.000000 1599.000000    1599.000000
mean         8.319637         0.527821    0.270976       2.538806
std          1.741096         0.179060    0.194801       1.409928
min          4.600000         0.120000    0.000000       0.900000
25%          7.100000         0.390000    0.090000       1.900000
50%          7.900000         0.520000    0.260000       2.200000
75%          9.200000         0.640000    0.420000       2.600000
max         15.900000         1.580000    1.000000      15.500000chlorides free sulfur dioxide tot sulfur dioxide     density
count  1599.000000         1599.000000        1599.000000 1599.000000
mean      0.087467           15.874922          46.467792    0.996747
std       0.047065           10.460157          32.895324    0.001887
min       0.012000            1.000000           6.000000    0.990070
25%       0.070000            7.000000          22.000000    0.995600
50%       0.079000           14.000000          38.000000    0.996750
75%       0.090000           21.000000          62.000000    0.997835
max       0.611000           72.000000         289.000000    1.003690pH   sulphates     alcohol     quality
count  1599.000000 1599.000000 1599.000000 1599.000000
mean      3.311113    0.658149   10.422983    5.636023
std       0.154386    0.169507    1.065668    0.807569
min       2.740000    0.330000    8.400000    3.000000
25%       3.210000    0.550000    9.500000    5.000000
50%       3.310000    0.620000   10.200000    6.000000
75%       3.400000    0.730000   11.100000    6.000000
max       4.010000    2.000000   14.900000    8.000000```<div style="text-align: center"><img src="https://yqfile.alicdn.com/578ad5dab79e74a2a748ae50a20dba6ff4a43cd3.png" width="" height="">
</div>加入颜色标记的平行坐标图更易于观察属性与目标的相关程度。代码清单2-15为生成平行坐标图的代码。图2-17为平行坐标图。图2-17的主要不足在于对取值范围较小的变量进行了压缩。<div style="text-align: center"><img src="https://yqfile.alicdn.com/311664f2c315332466e67a1b0b0998527ccdc0ca.png" width="" height="">
</div>为了克服这个问题,代码清单2-15对红酒数据进行了归一化,然后重画了平行坐标图。图2-18为归一化之后的平行坐标图。代码清单2-15 红酒数据的平行坐标图-wineParalleIPLot.Py

author = 'mike_bowles'
import pandas as pd
from pandas import DataFrame
from pylab import *
import matplotlib.pyplot as plot
from math import exp

target_url = "http://archive.ics.uci.edu/ml/machine-learning-databases/
wine-quality/winequality-red.csv"
wine = pd.read_csv(target_url,header=0, sep=";")

generate statistical summaries

summary = wine.describe()
nrows = len(wine.index)
tasteCol = len(summary.columns)
meanTaste = summary.iloc[1,tasteCol - 1]
sdTaste = summary.iloc[2,tasteCol - 1]
nDataCol = len(wine.columns) -1

for i in range(nrows):

#plot rows of data as if they were series data
dataRow = wine.iloc[i,1:nDataCol]
normTarget = (wine.iloc[i,nDataCol] - meanTaste)/sdTaste
labelColor = 1.0/(1.0 + exp(-normTarget))
dataRow.plot(color=plot.cm.RdYlBu(labelColor), alpha=0.5)

plot.xlabel("Attribute Index")
plot.ylabel(("Attribute Values"))
plot.show()

wineNormalized = wine
ncols = len(wineNormalized.columns)

for i in range(ncols):

mean = summary.iloc[1, i]
sd = summary.iloc[2, i]
wineNormalized.iloc[:,i:(i + 1)] =
(wineNormalized.iloc[:,i:(i + 1)] - mean) / sd

Try again with normalized values

for i in range(nrows):

#plot rows of data as if they were series data
dataRow = wineNormalized.iloc[i,1:nDataCol]
normTarget = wineNormalized.iloc[i,nDataCol]
labelColor = 1.0/(1.0 + exp(-normTarget))
dataRow.plot(color=plot.cm.RdYlBu(labelColor), alpha=0.5)

plot.xlabel("Attribute Index")
plot.ylabel(("Attribute Values"))
plot.show()`
归一化红酒数据的平行坐标图可以更方便地观察出目标与哪些属性相关。图2-18展示了属性间清晰的相关性。在图的最右边,深蓝线(高口感评分值)聚集在酒精含量属性的高值区域;但是图的最左边,深红线(低口感评分值)聚集在挥发性酸属性的高值区域。这些都是最明显的相关属性。在第5章和第7章的预测模型中将会对属性基于对预测所做的贡献进行评分,我们会看到预测模型是如何支撑上述这些观察结果的。

图2-19为属性之间、属性与目标之间的关联热图。在这个热图中,暖色对应强相关(颜色标尺的选择与平行坐标图中的正好相反)。红酒数据的关联热图显示口感评分值(最后一列)与酒精含量(倒数第二列)高度正相关,但是与其他几个属性(包括挥发性酸等)高度负相关。

分析红酒数据所用的工具在前面都已经介绍和使用过。红酒数据集展示了这些工具可以揭示的信息。平行坐标图和关联热图都说明酒精含量高则口感评分值高,然而挥发性酸高则口感评分值低。在第5、第7章可以看到,预测模型中的一部分工作就是研究各种属性对预测的重要性。红酒数据集就是一个很好的例子,展示了如何通过探究数据来知晓向从哪个方向努力来构建预测模型以及如何评价预测模型。下节将探究多类别分类问题的数据集。

《Python机器学习——预测分析核心算法》——2.5 用实数值属性预测实数值目标:评估红酒口感...相关推荐

  1. 《Python机器学习——预测分析核心算法》——2.4 基于因素变量的实数值预测:鲍鱼的年龄...

    本节书摘来异步社区<Python机器学习--预测分析核心算法>一书中的第2章,第2.4节,作者:[美]Michael Bowles(鲍尔斯),更多章节内容可以访问云栖社区"异步社 ...

  2. 《Python机器学习——预测分析核心算法》——2.2 分类问题:用声纳发现未爆炸的水雷...

    本节书摘来异步社区<Python机器学习--预测分析核心算法>一书中的第2章,第2.2节,作者:[美]Michael Bowles(鲍尔斯),更多章节内容可以访问云栖社区"异步社 ...

  3. python模型预测_《Python机器学习——预测分析核心算法》——1.5 构建预测模型的流程...

    本节书摘来异步社区<Python机器学习--预测分析核心算法>一书中的第1章,第1.5节,作者:[美]Michael Bowles(鲍尔斯),更多章节内容可以访问云栖社区"异步社 ...

  4. 惩罚线性回归---Python机器学习:预测分析核心算法

    惩罚线性回归 参考教材:Python机器学习预测分析核心算法,书中代码较为过时,借用sklearn等工具包进行了重写. 实践中遇到的绝大多数预测分析(函数逼近)问题,惩罚线性回归和集成方法都具有最优或 ...

  5. python分类预测_《Python机器学习——预测分析核心算法》——2.6 多类别分类问题:它属于哪种玻璃...

    本节书摘来异步社区<Python机器学习--预测分析核心算法>一书中的第2章,第2.6节,作者:[美]Michael Bowles(鲍尔斯),更多章节内容可以访问云栖社区"异步社 ...

  6. python数据预测模型算法_Python机器学习 预测分析核心算法

    第1章关于预测的两类核心算法 1.1为什么这两类算法如此有用 1.2什么是惩罚回归方法 1.3什么是集成方法 1.4算法的选择 1.5构建预测模型的流程 1.5.1构造一个机器学习问题 1.5.2特征 ...

  7. python数据预测模型算法_《python机器学习—预测分析核心算法》:构建预测模型的一般流程...

    参见原书1.5节 构建预测模型的一般流程 问题的日常语言表述->问题的数学语言重述 重述问题.提取特征.训练算法.评估算法 熟悉不同算法的输入数据结构: 1.提取或组合预测所需的特征 2.设定训 ...

  8. python预测算法_Python机器学习:预测分析核心算法

    领取成功 您已领取成功! 您可以进入Android/iOS/Kindle平台的多看阅读客户端,刷新个人中心的已购列表,即可下载图书,享受精品阅读时光啦! - | 回复不要太快哦~ 回复内容不能为空哦 ...

  9. 【python机器学习:朴素贝叶斯分类算法】

    python机器学习:朴素贝叶斯分类算法 朴素贝叶斯介绍 贝叶斯公式 基本思想 示例分析 数据展示 先验概率和条件概率 算法步骤: 代码 计算先验概率和条件概率 分类 朴素贝叶斯介绍 贝叶斯分类是一类 ...

最新文章

  1. sqlserver如何通过管理器设置字段的自增
  2. VC编写自己构造http协议数据的post上传图片类(MFC环境 带编码转换)(转)
  3. istio入门(05)istio的架构概念2
  4. es6 ik分词热更新MySQL_rollup环境搭建(es6转es5、压缩、本地服务器、热更新)
  5. 还在忍受限速网盘?来搭建一套自己的私有网盘!
  6. Java 8流中的数据库CRUD操作
  7. 理解T-SQL: 触发器
  8. Linux学习总结(39)——系统管理员应该知道的 20 条 Linux 命令
  9. MyCat分布式数据库集群架构工作笔记0015---高可用_负载均衡_Mycat双主双从读写分离
  10. ​​​​​​​(复制python包,产生的问题) pip Fatal error in launcher: Unable to create process using
  11. Android图片压缩
  12. windows 安装 telnet 工具
  13. java毕业设计—— 基于java+JSP+SSH的网上购物系统设计与实现(毕业论文+程序源码)——网上购物系统
  14. 杭州/北京内推 | 蚂蚁集团数字身份及安全生态团队招聘学术实习生
  15. 移动通信网络规划:误码率
  16. Error Code: 1054. Unknown column 'xxx' in 'field list'
  17. 16-MySQL基础语法(数据库)
  18. 灰色预测的MATLAB程序
  19. 写的基于http协议的QQ聊天机器人
  20. VSCode 配置远程登入 Remote-SSH

热门文章

  1. 2177 找到和为给定整数的三个连续整数(思维题)
  2. python sns画布大小设置
  3. 华为云Stack智能进化,三大举措赋能政企深度用云
  4. 2021版!万字UNIX网络编程学习笔记(套接字篇)
  5. ZYNQ图像处理|静态图像通路|VDMA寄存器、DDR内存操作
  6. module_init源码分析
  7. SSO(Single Sign On)系列(一)--SSO简介
  8. Sequence定义
  9. python太极代码_Python : Turtle绘图-太极图(代码)
  10. Quantopian自学笔记03