zoukankan      html  css  js  c++  java
  • 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()

  • 相关阅读:
    linux安装skype
    (转)程序员最应该读的图书
    Smarty 学习笔记六 缓存
    Smarty 学习笔记二 常用内置变量
    Smarty 学习笔记七 debug
    文本文件与二进制文件区别
    zz 通用线程:Awk 实例,第 2部分
    MIT墙上的格言
    AWK学习笔记
    zz SED单行脚本快速参考 以及 AWK版本
  • 原文地址:https://www.cnblogs.com/yuzaihuan/p/12292675.html
Copyright © 2011-2022 走看看