本文档以机器学习Titanic
、iris
等数据为原型,分析不同数据项,不同维度的情况下,可以展示哪些可视化图表。
1. 单数据项统计
在h2o
中统一概述为特征图
、总览图
、分布图
、范围图
1.1 特征图(CHARACTERISTICS)
通过对多种数据类型的测试,总结为特征图,其实是为了统计不同特征项的占比情况

特征项分为以下几类:
-
缺失值(Missing):就是针对当前统计列,缺失的数据量占比
-
负无穷(-Inf):数据项中,值为负无穷的总量
-
零值(Zero):一般情况下,一列可能会有很多取值,在
h2o
中,只把零值的占比单独拿出来的。 -
正无穷(+Inf):数据项中,值为正无穷的总量
-
其它(Other):除去
缺失值
跟零值
,其它数据项统一为其它
特征图针对数字型
、枚举型
、字符串型
都要展示出来。其中针对枚举型
,在统计的时候,需要将枚举做一下转换,数据集中第一个枚举值为0值
,剩下的都为其它
。
1.2 总览图(SUMMARY)
总览图其实就是分位图
,以箱线图(box)
的形式展示,统计指标为min,q1,q2,q3,max
。

总览图只针对数字型
的进行展示,其它数据类型不展示。四分位
的统计一般有两种算法N+1
和N-1
两种,我不知道我们会选哪一种。
-
q1:四分之一位
-
q2:四分之二位
-
q3:四分之三位
1.3 分布图(DISTRIBUTION)
其实就是直方图,统计不同区间(间隔)内,数据的分布情况:

因为它统计的是不同区间内的数据分布,所以x轴
的区间分布是连续的,这是与普通柱状图最大的不同,分布图也只针对数字型
的列进行展示
1.4 范围图(DOMAIN (MAX 1000 LEVELS))
范围图跟上面的分布图类似,不过在h2o
中,将y轴
展示为数据取值,x轴
展示为统计数量:

范围图
只统计枚举型
的数据项,从图中可以看出,label
列不是连续的。
我们系统中,要做到,所有的图表,在某个位置,比如右上角,有一个
查看数据
的图标,点击之后,可以查看图表数据明细。
2. 特征值总览统计图
针对特征项的整理统计,我们提供两个统计图,分别是热力图
和散点图矩阵
热力图
热力图本身比我们要展示的下图要复杂的多,我们这里只展示特征项之间的相关性。
因为热力图统计的项需要是数字型的,所以我们在展示热力图的特征项选择时,也只能展示特征项为
数字型
的特征。

热力图展示的是所有特征项之间的相关性,因为自己跟自己肯定是最相关的,所以斜对角线
一定是最大值。
展示热力图之前,用户需要配置的参数有:
-
特征项:多选下拉框,默认全选,但如果特征项大于
30
个,需要用户手动选择 -
色版取值范围:默认为空
-
是否展示相关性数值:默认为展示
散点图矩阵
同样是展示特征项之间关系的一种图形,可以直观的看到哪些特征与标签项最为关联:

用户需要配置的参数有:
-
特征项:多选下拉框,默认全选,但如果特征项大于
10
个,需要用户手动选择 -
标签项:单选下拉框,不必选,如果没有选择的话,出来的展示只有一种颜色
-
对角线子图:单选下拉框,默认选中
hist
,即上图中展示的图形,还可以选择kde
密度曲线 -
non-identity关系图:单选下拉框,默认不选择,可选项有:
scatter
和reg
如果对角线子图
选择密度曲线的话,展示图形如下图:

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

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
,也就是按哪一列分类统计,不是必选项 -
多图分类列:只有
factorplot
和lmplot
是可选的,单选下拉框 -
kind图类型:针对
factorplot
可以下拉选择{point, bar, count, box, violin, strip}
;针对jointplot
可以下拉选择scatter,reg,resid,kde,hex
-
堆叠:即一次画多个图,针对
分类统计图
有效,单选下拉框,可选项为{point, bar, count, box, violin, strip}
-
其它自定义参数:我感觉可以一个
textarea
输入框搞定,随便用户输入
1. 需要支持多图重叠,需要列出哪些图可以重叠!重叠图形应该不能超过两个,否则应该很乱。
2. 在
countplot
中,x
和y
只需要设计一个。
3. 在
point, bar, count, box, violin, strip
这些分类统计图中,x
和y
可以只设置一个,相对的y
和x
其实取值就是count
。
网友评论