机器学习数据可视化

本文档以机器学习Titaniciris等数据为原型,分析不同数据项,不同维度的情况下,可以展示哪些可视化图表。

1. 单数据项统计

h2o中统一概述为特征图总览图分布图范围图

1.1 特征图(CHARACTERISTICS)

通过对多种数据类型的测试,总结为特征图,其实是为了统计不同特征项的占比情况

2018-05-21-10-53-51.jpg

特征项分为以下几类:

  • 缺失值(Missing):就是针对当前统计列,缺失的数据量占比

  • 负无穷(-Inf):数据项中,值为负无穷的总量

  • 零值(Zero):一般情况下,一列可能会有很多取值,在h2o中,只把零值的占比单独拿出来的。

  • 正无穷(+Inf):数据项中,值为正无穷的总量

  • 其它(Other):除去缺失值零值,其它数据项统一为其它

特征图针对数字型枚举型字符串型都要展示出来。其中针对枚举型,在统计的时候,需要将枚举做一下转换,数据集中第一个枚举值为0值,剩下的都为其它

1.2 总览图(SUMMARY)

总览图其实就是分位图,以箱线图(box)的形式展示,统计指标为min,q1,q2,q3,max

2018-05-21-11-10-42.jpg

总览图只针对数字型的进行展示,其它数据类型不展示。四分位的统计一般有两种算法N+1N-1两种,我不知道我们会选哪一种。

  • q1:四分之一位

  • q2:四分之二位

  • q3:四分之三位

1.3 分布图(DISTRIBUTION)

其实就是直方图,统计不同区间(间隔)内,数据的分布情况:

2018-05-21-11-16-22.jpg

因为它统计的是不同区间内的数据分布,所以x轴的区间分布是连续的,这是与普通柱状图最大的不同,分布图也只针对数字型的列进行展示

1.4 范围图(DOMAIN (MAX 1000 LEVELS))

范围图跟上面的分布图类似,不过在h2o中,将y轴展示为数据取值,x轴展示为统计数量:

2018-05-21-11-21-17.jpg

范围图只统计枚举型的数据项,从图中可以看出,label列不是连续的。

我们系统中,要做到,所有的图表,在某个位置,比如右上角,有一个查看数据的图标,点击之后,可以查看图表数据明细。

2. 特征值总览统计图

针对特征项的整理统计,我们提供两个统计图,分别是热力图散点图矩阵

热力图

热力图本身比我们要展示的下图要复杂的多,我们这里只展示特征项之间的相关性。

因为热力图统计的项需要是数字型的,所以我们在展示热力图的特征项选择时,也只能展示特征项为数字型的特征。

2018-05-21-16-07-47.jpg

热力图展示的是所有特征项之间的相关性,因为自己跟自己肯定是最相关的,所以斜对角线一定是最大值。

展示热力图之前,用户需要配置的参数有:

  • 特征项:多选下拉框,默认全选,但如果特征项大于30个,需要用户手动选择

  • 色版取值范围:默认为空

  • 是否展示相关性数值:默认为展示

散点图矩阵

同样是展示特征项之间关系的一种图形,可以直观的看到哪些特征与标签项最为关联:

2018-05-21-16-28-46.jpg

用户需要配置的参数有:

  • 特征项:多选下拉框,默认全选,但如果特征项大于10个,需要用户手动选择

  • 标签项:单选下拉框,不必选,如果没有选择的话,出来的展示只有一种颜色

  • 对角线子图:单选下拉框,默认选中hist,即上图中展示的图形,还可以选择kde密度曲线

  • non-identity关系图:单选下拉框,默认不选择,可选项有:scatterreg

如果对角线子图选择密度曲线的话,展示图形如下图:

2018-05-21-16-44-36.jpg

如果non-identity关系图选择为reg的话,展示如下:

2018-05-21-16-46-59.jpg

3. 自定义统计图

在分析自定义统计图可以怎么设计之前,先分析seaborn中各种类型图形,分别支持什么样的参数,以决定我们在界面中,可以展示哪些。

图形类型 类型 x取值 y取值 分类列(标签列) 多图分类列 kind 堆叠 其它
factorplot 表格图 {point, bar, count, box, violin, strip} {size,aspect,orient,palette等}
lmplot 表格图 {size,aspect,palette,markers等}
jointplot 表格图 {scatter,reg,resid,kde,hex } { size,aspect,space,color等}
stripplot 分类图 {jitter,linewidth,palette,dodge
,size,marker,edgecolor,alpha等}
swarmplot 分类图 {color,palette,dodge,orient,
size,edgecolor,linewidth等}
boxplot 分类图 {order,palette,dodge,orient,
size,linewidth等}
violinplot 分类图 {order,palette,dodge,orient,inner,
width,linewidth,split,scale等}
lvplot 分类图 {order,palette,dodge,orient,
width,linewidth等}
pointplot 分类图 {order,palette,dodge,orient,join,estimator,
markers,linestyles,width,linewidth等}
barplot 分类图 {order,palette,dodge,orient,estimator,
color,width,linewidth等}
countplot 分类图 {order,palette,dodge,orient,
color,facecolor,edgecolor等}
distplot 分布图 {hist,kde,rug,fit,color,vertical等}
kdeplot 分布图 {shade,cbar,color,vertical等}
regplot 回归图 {color,marker,x_jitter,x_estimator
,order,ci等}
heatmap 矩阵图 {annot,vmin,vmax,cmap,center,
fmt,cbar,square等}

分析上面的表格,基本我们可以看到不同类型的表格需要不同的参数,但是可以划为几个大类。所以针对自定义数据统计,我打算分下面几个步骤:

  • 首先需要选择图表类型,不同的图表类型,下面的参数设置要有区分。

  • x列:基本都需要选择,除了heatmap

  • y列:针对表格图都需要选择,针对分类图,不是必选项

  • 标签列:对应seaborn中的hue,也就是按哪一列分类统计,不是必选项

  • 多图分类列:只有factorplotlmplot是可选的,单选下拉框

  • kind图类型:针对factorplot可以下拉选择{point, bar, count, box, violin, strip};针对jointplot可以下拉选择scatter,reg,resid,kde,hex

  • 堆叠:即一次画多个图,针对分类统计图有效,单选下拉框,可选项为{point, bar, count, box, violin, strip}

  • 其它自定义参数:我感觉可以一个textarea输入框搞定,随便用户输入

1. 需要支持多图重叠,需要列出哪些图可以重叠!重叠图形应该不能超过两个,否则应该很乱。

2. 在countplot中,xy只需要设计一个。

3. 在point, bar, count, box, violin, strip这些分类统计图中,xy可以只设置一个,相对的yx其实取值就是count

你可能感兴趣的:(机器学习数据可视化)