MachineLearning入门-8(数据可视化)

为了生成最优化的算法模型,必须对数据进行理解。最快、最有效的方式是通过数据的可视化来加强对数据的理解。

接下来将通过matplotlib对数据可视化,以加强对原始数据集的理解。


单一图表

直方图(Histogram)又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据的分布情况。一般用横轴表示数据类型,纵轴表示分布情况。直方图可以非常直观展示每个属性的分布情况。通过图表可以很直观地看到数据是高斯分布、指数分布还是偏态分布。代码如下

1 from pandas import read_csv
2 import matplotlib.pyplot as plt
3 #使用pandas导入CSV数据
4 filename=‘/home/aistudio/work/pima_data1.csv‘
5 names=[‘preg‘,‘plas‘,‘pres‘,‘skin‘,‘test‘,‘mass‘,‘pedi‘,‘age‘,‘class‘]
6 data=read_csv(filename,names=names)
7 data.hist()
8 plt.show()

从上图可以看到,age、pedi和test也许是指数分布;mass、pres、plas也许是高斯分布。

密度图是一种表现与数据值对应的边界或域对象的图形表示方法,一般用于呈现连续变量。密度图类似于对直方图进行抽象,用平滑的线来描述数据的分布。这也是一种用来显示数据分布的图表。代码如下:

1 from pandas import read_csv
2 import matplotlib.pyplot as plt
3
4 filename=‘/home/aistudio/work/pima_data1.csv‘
5 names=[‘preg‘,‘plas‘,‘pres‘,‘skin‘,‘test‘,‘mass‘,‘pedi‘,‘age‘,‘class‘]
6 data=read_csv(filename,names=names)
7 data.plot(kind=‘density‘,subplots=True,layout=(3,3),sharex=False)
8 plt.show()

通过密度图来显示数据分布,相对于直方图更直观。

箱线图又称盒须图、盒式图或箱型图,是一种用于显示一组数据分布情况的统计图。因形状如箱子儿得名,在各种领域都经常被使用。

首先画一条中位数线,然后以下四位分数和上四位分数画一个盒子,上下各有一条横线,表示上边沿和下边沿,通过横线来显示数据的伸展状态,游离在边沿之外的点为异常值。

1 rom pandas import read_csv
2 import matplotlib.pyplot as plt
3
4 filename=‘/home/aistudio/work/pima_data1.csv‘
5 names=[‘preg‘,‘plas‘,‘pres‘,‘skin‘,‘test‘,‘mass‘,‘pedi‘,‘age‘,‘class‘]
6 data=read_csv(filename,names=names)
7 data.plot(kind=‘box‘,subplots=True,layout=(3,3),sharex=False)
8 plt.show()

上图显示,不同属性的延伸截然不同。

相关矩阵图主要用来展示两个不同属性相互影响的程度。如果两个属性按照相同的方向变化,说明是正影响。如果两个属性朝相反的方向变化,说明是反向影响。把所有属性两两影响的关系展示出来的图表叫相关矩阵。

矩阵图法就是从多维问题的事件中找出成对的因素,排列成矩阵图,然后根据矩阵图来分析问题,确定关键点。它是一种通过多因素综合思考来探索问题的好方法。

 1 from pandas import read_csv
 2 import matplotlib.pyplot as plt
 3 import numpy as np
 4
 5 filename=‘/home/aistudio/work/pima_data1.csv‘
 6 names=[‘preg‘,‘plas‘,‘pres‘,‘skin‘,‘test‘,‘mass‘,‘pedi‘,‘age‘,‘class‘]
 7 data=read_csv(filename,names=names)
 8 correlations=data.corr()
 9 fig=plt.figure()
10 ax=fig.add_subplot(111)
11 cax=ax.matshow(correlations,vmin=-1,vmax=1)
12 fig.colorbar(cax)
13 ticks=np.arange(0,9,1)
14 ax.set_xticks(ticks)
15 ax.set_yticks(ticks)
16 ax.set_xticklabels(names)
17 ax.set_yticklabels(names)
18 plt.show()

在图表的左边和上边显示的是完全相同的属性名称,通过这个矩阵可以清楚地看到各个属性两两关联的关系。

散点矩阵图表示因变量随自变量变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。散点矩阵图由两组数据构成多个坐标点,考察坐标点的分布,可以判断两个变量之间是否存在某种关联或总结坐标点的分布模式。散点矩阵图将序列显示为一组点,值由点在图表中的位置表示,类别由图表中的不同标记表示。散点矩阵图通常用于比较跨类别的聚合数据。当同时考察多个变量的相关关系时,若一一绘制它们的简单散点图将十分麻烦。此时可以利用散点矩阵图来绘制各个变量间的散点图,这样可以快速发现多个变量间的主要相关性,这在进行多元线性回归时显得尤为重要。

1 from pandas import read_csv
2 import matplotlib.pyplot as plt
3 from pandas.plotting import scatter_matrix
4
5 filename=‘/home/aistudio/work/pima_data1.csv‘
6 names=[‘preg‘,‘plas‘,‘pres‘,‘skin‘,‘test‘,‘mass‘,‘pedi‘,‘age‘,‘class‘]
7 data=read_csv(filename,names=names)
8 scatter_matrix(data)
9 plt.show()

原文地址:https://www.cnblogs.com/yuzaihuan/p/12292675.html

时间: 2024-08-29 19:57:34

MachineLearning入门-8(数据可视化)的相关文章

跟风舞烟学大数据可视化-Echarts从入门到上手实战

跟风舞烟学大数据可视化-Echarts从入门到上手实战 课程观看地址:http://www.xuetuwuyou.com/course/180 课程出自学途无忧网:http://www.xuetuwuyou.com 课程讲师:风舞烟 课时数:三个模块,共70课时   一.课程特色: 1.最全的Echarts课程讲解     70学时课时量,360度全方位,无死角的课程设计,让你通透Echarts可视化技术 2.最适合小白学员学习的课程,没有之一     只要你了解一点基本的Html,CSS,Ja

数据可视化入门之show me the numbers

数据的可视化一直是自己瞎玩着学,近来想系统的学数据可视化的东西,于是搜索资料时看到有人推荐<show me the numbers>作为入门. 由于搜不到具体的书籍内容,只能搜到一个128页的PDF,且里面的内容是PPT加注释,倒也讲得蛮清楚的.但是由于此书的定位是给商科学生讲授图表展示,信息如何有效的沟通与传达,所以,内容比较浅.虽说这PDF是04年的,但是不少准则.理论还是比较经典实用的. PDF: http://courses.washington.edu/info424/2007/re

d3.js:数据可视化利器之快速入门

hello,data! 在进入d3.js之前,我们先用一个小例子回顾一下将数据可视化的基本流程. 任务 用横向柱状图来直观显示以下数据: var data = [10,15,23,78,57,29,34,71]; 简单地思考一下,要完成这个任务有两个问题需要解决: 用什么可视元素来表现横向柱? 数据对应到可视元素的什么属性? 这个不算困难,我们使用HTML的DIV元素来实现,代码参见http://www.hubwiz.com/course/54fd40cfe564e50d50dcf284/:快速

地铁译:Spark for python developers ---Spark处理后的数据可视化

spark for python developer 一书,说实在的,质量一般,但勉强可以作为python 工程师的入门资料,至此,这一时段的地铁译结束了,开始新的阅读旅程-- 对于 Python 的图形绘制和可视化, 有大量的工具和库,和我们最相关并且有趣的是:? ? Matplotlib 是Python 绘图库的鼻祖. Matplotlib 最初7由 John Hunter 创作, 他是开源软件的支持者,建立的 Matplotlib 是学术界和数据科学界最流行的绘图库之一. Matplotl

ECharts, PHP, MySQL, Ajax, JQuery 实现前后端数据可视化

ECharts 下载js代码 工作原理浅析 在项目中引入ECharts 后台处理 数据库端MySQL PHP端 JQuery Ajax处理 ECharts 端处理 前端全部代码 演示结果 总结 最近要将后台数据库上的一些数据以可视化的方法显示到前端,找来找去,发现百度开发的这套图表工具库还不错,网上搜索了一下相关的教程,也算是实现了较为简单的demo.于是写下来,记录一下. ECharts ECharts是国人开发的一套前端的图表工具库,使用起来超方便,也很简单(当然了,前提是理解了其工作原理之

数据可视化之Processing【1】

说Processing之前得先说一下数据可视化 数据可视化--顾名思义,是关于数据之视觉表现形式的研究,将数据用其他方式表现出来,使之更直观, 更清晰,更容易分析和处理,常见的表达方式如word中使用广泛的直方图.树状图.折线图.饼状图等. 数据可视化技术的基本思想是将数据库中每一个数据项作为单个图元元素表示,大量的数据集构成数据 图像,同时将数据的各个属性值以多维数据的形式表示,可以从不同的维度观察数据,从而对数据进行 更深入的观察和分析. 我们知道,单纯的一连串数字摆在人们眼前很难分析其特点

Webstorm+Webpack+echarts构建个性化定制的数据可视化图表&amp;&amp;两个echarts详细教程(柱状图,南丁格尔图)

Webstorm+Webpack+echarts   ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表. ECharts 3 中更是加入了更多丰富的交互功能以及更多的可视化效果,并且对移动端做了深度的优化.   1.npm

前端数据可视化echarts.js使用指南

一.开篇 首先这里要感谢一下我的公司,因为公司需求上面的新颖(奇葩)的需求,让我有幸可以学习到一些好玩有趣的前端技术,前端技术中好玩而且比较实用的我想应该要数前端的数据可视化这一方面,目前市面上的数据可视化的框架琳琅满目,例如:D3.js.hightcharts.js.echarts.js………….由于公司对这个项目的需求是1.开发时间短,所以也就限制了D3.js的使用.2.要尽量的减少开发的成本,所以也就不能使用hightcharts.js(hightcharts是一款个人免费,商业付费的框架

前端编程提高之旅(八)----D3.js数据可视化data join解析

   D3.js作为一门轻型的可视化类库,非常便于将数据与web界面元素绑定,实现可视化.乐帝d3.js入门是大体看了一遍<d3js数据可视化实战>这本书,D3操作非常类似于jquery的使用,具体体现在两点: 选择器模块都采用CSS3标准 方法可以链式调用    有了jquery使用基础,相信再加上以上书籍的例子,调试很容易上手使用D3.js,乐帝目前认为D3.js与jquery区别在于:D3.js独有的数据结构概念及对SVG操作方便的实现.而深入理解D3原理,以上皮毛的理解就不够用了.