后面会开始特征工程系列的文章,本文是第一篇:特征理解。
特征理解的作用:告诉你数据集里都有什么?
- 结构化数据和非结构化数据
- 定量数据和定性数据
- 数据的4个等级
- 探索性数据分析和数据可视化
- 描述性统计分析
数据结构有无
结构化数据:能够将数据分成观察值和特征值的数据,一般是表格形式;通常行是观察值,列是特征属性
非结构化数据:作为自由流动的实体,不遵循标准组织结构的数据,比如服务器的日志数据等;一般文本形式的数据都是非结构化的
大部分非结构化的数据能够通过一定的方法转成结构化的数据
定量数据和定性数据
-
定量数据:本质上是数值,可以衡量某种东西的某个数量,比如苹果的价格是6元,苹果—>6元
-
定性数据:本质上是类别,可以描述某种东西的某个属性,比如苹果是甜的,甜就是一种属性
处理两种数据:
定量数据:一般使用整数或者浮点数(最好使用浮点数);
定性数据:一般使用字符串或者Unicode对象
数据的4个等级
-
定类等级:nominal level
-
定序等级:ordinal level
-
定距等级:interval level
-
定比等级:ratio level
定类等级:nominal level
-
该等级是第一个等级,结构最弱,属于定性数据;这个等级中的数据只按照名称来分类,比如血型的A、B、O、AB等,访客名单等
-
在这个等级上的数据不能执行任何定量数学操作,只能进行统计计数:df[“name”].value_counts()
-
将统计的结果用柱状图或者饼图利用可视化方式展现。
定序等级:ordinal level
能够进行自然排序。能够执行的操作:
- 统计计数
- 比较和排序
- 计算中位数和百分位数(茎叶图和箱线图)
比如评价信息的字段取值为
- 0:不接受
- 1:勉强
- 2:不错
- 3:特别好
在数据中我们会使用0-1-2-3,但是这个数值实际上代表的是某个类别,所以仍然是定性的,也是定序的
定距等级:interval level
定类数据和定序数据都是在处理定性数据,即便内容是一个数,也不代表真实的数量,而是某个类别。
定距等级开始处理定量数据。在定距等级,数值数据不仅可以排序,而且值之间的差异也是具有一定的含义。可执行的操作:排序、加减
一个非常经典的例子:温度。昨天温度是20°C,今天是25°C,相差5°C。这样的减法操作在定类和定序等级中是不能执行的
定比等级:ratio level
定比等级也是处理定量数据的。可以执行加减运算,还有一个绝对零点的概念,可以做乘除运算。
比如处理金融数据,货币处于定比等级。例如:$100 是 $50 的两倍,存在0这个概念,这样的比较是有意义的
我们一般认为,温度属于定距等级,而不是定比等级,因为100℃比50℃高两倍这种说法没有意义,并不合理。温度是主观的,不是客观正确的。
基本流程
当你拿到一份数据,可以参考下面的基本流程:
-
数据有没有组织?
-
每个列的数据是定量的还是定性的?如果单元格中存在数值,是字符串含义还是真实数值?
-
每个列处于哪个等级?
-
有什么合适的图表来表示数据的统计或者分布情况?
对比
操作可行性
总结每个等级上可行与不可行的操作:
统计类型
每个等级的不同统计类型:
绘制图形
每个等级上可绘制的图形: