代码及数据集链接
链接:https://pan.baidu.com/s/1tLLIPUmADk48TZpAHy-g1A 密码:bqmz
特征理解的基本工作流程
- 数据有没有组织?是以表格形式存在还是非结构化文本格式
- 每列的数据是是定性还是定量的,单元格中的数字代表字符串还是数值
- 每列处于哪个等级? 定类、定序、定距还是定比
- 我们可以用什么图表?
基础概念
数据结构的不同
- 结构化数据:
有组织的数据,可以分成观察值和特征的数据,一般以表格的的形式组织(行是观察值,列是特征) - 非结构化数据:
不遵循标准组织结构(例如表格)的数据。例如文本或者图像
数据类型
- 定量数据:本质上是数值,应该是衡量某样东西的数量。例如(💰)
- 定性数据:本质上是类别,描述某样东西的性质。例如(人名,地名)
有时数据可以同时是定性和定量的。例如餐厅评分(1~5🌟)虽然是数,但是也可以表示类别。
- 如果公布出来的平均分是带小数的例如(4.7颗🌟)那么当前数据为定量的
- 如果(1~5🌟)对应的分别是【讨厌、还行、喜欢、喜爱、特别喜爱】那么当前数据为定性的
定性/定量数据区分示例
数据集为旧金山工资数据集
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
plt.style.use('fivethirtyeight')
salary_ranges = pd.read_csv('data/Salary_Ranges_by_Job_Classification.csv',index_col=0)
salary_ranges.head()
- 先看看前几行数据,已经能够看出一些数据的分类了,例如Biweekly High Rate 是工资的选项 该列应该为定量数据 Job Code应该是一段编码用来区分不同的工作职位,那么该列数据应该是个定性数据
- 通过dataframe.info()查看下数据的行列数,以及数据类型,是否有缺失值,可以看出并没有缺失值。
- 使用describe方法查看一些定量数据的描述性统计
- describe 默认描述定量列若是没有定量列,也会描述定性列
- 前文提到过定量数据的定性数据之间具有模糊性,describe默认int,float型为定量列,object为定性列。具体的需要自己单独去细分
- Union Code明显不是定量虽然该列是数字型但是不代表数量,代表某个工会的代码
- Biweekly High Rate 之前分析过应该是定量数据这里并为展示,是因为$的原因所以之后会进行单独的处理,将这一列处理成定量数据
当前很重要的步骤就是选取我们感兴趣的特征进行单独分析
- 例如定量列Biweekly High Rate(双周最高工资)和一个定性列Grade(工作种类)这两个特征应该是有一定的内在联系的。
- 为保证数据类型正确,移除工资前的$并改称folat类型
- 1356行
- 2列自己选取的
- 双周最高工资:定量列,代表某个部门平均最高工资
- 工作种类:工资对应的部门,代码代表一个部门所以是定性的
由于定性定量数据之间的模糊性,会进一步将数据细分成四个等级
数据的四个等级
数据定性定量后可以继续分类
- 定类等级(nominal level)
- 定序等级(ordinal level)
- 定距等级(interval level)
- 定比等级(ratio level)
每个等级有不同的控制和数学操作等级
目的:决定了可以执行的可视化类型和操作
定类等级
结构性最弱,该等级只按名称分类,该数据都是定性的
可执行的数学操作
- 由于定性数据所以不可以执行加减法,平均值等定量数学操作
- 不过可以使用value_counts()进行计数
- 通过条形图饼图等可视化手段观察规律
定类等级分析示例
- 还是旧金山工资数据集
- 之前讨论过Grade为工作种类 是定类等级通过value_counts()进行计数,并且可视化
- 可以看出出现最多的种类为00000,以为这这个种类为众数
- 也可以通过绘制饼图来进行可视化分析
定序等级
定序等级继承了定类等级的所有属性,且有重要的附加属性
- 定序等级的数据可以自然排序
- 可以认为列中的某些数据比其他数据更好或更大(这样就可以有区分比较)
- 与定类等级一样定序等级天然数据属性任然是类别
- 例如考试成绩 ABCD这属于定序等级 可以认为A比B好 但是仍然是类别属性
即使评分(1~10)也是类别
可执行的数学操作
- 计数
- 比较和排序
- 因为可以进行比较和排序所以可以计算中位数和百分位数
- 中位数:茎叶图
- 百分位数:箱线图
定序等级分析示例
- 数据集说明:
使用旧金山机场数据集,该数据集表示多少人喜欢旧金山国际机场
旧金山数据集数据说明
数据的属性非常多,总共95列属性,我们选取其中的Q7A_ART进行分析
Q7A_ART:关于艺术品和展览的取值为[0~6]- 1=Unacceptable
- 2=Below Average
- 3=Average
- 4=Good
- 5=Outstanding
- 6=Have Never Used or Visited
- 0=Blank
- 这些值虽然是数字可是这些数据是定性的,属于定序等级:
除去0和6 剩下的1~5 他们是有一个区分比较的 可以认为数字越大越好
定距等级
定量数据:不仅可以对值进行排序和比较,而且可以加减
可执行的数学操作
- 算术平均数
- 标准差
定距等级分析示例
- 数据说明:平均温度的气候数据集
- 每行代表某个城市某月的平均温度,上溯至18世纪
- 每行代表某个城市某月的平均温度,上溯至18世纪
- 只看前五行就已经有数据缺失了,所以将这些数据进行删除,之后再来分析会更容易理解。
- 我们关注的是AverageTemperature这一列,该数据为定距等级
定比等级
- 最高等级:拥有最高程度的控制和数学运算能力
- 定量数据
- 继承了定距等级的加减运算增加了绝对零点概念可以做乘除运算
绝对零点
- 由于存在绝对零点 那么一些数据的比较就有了意义
- 例如:
- ¥100 时¥50的两倍
- 无零点或者存在负值时那么这个比较就无意义
- 例如:温度 因为温度是主观的不是客观存在的 没有真正的零点
定比等级分析示例
- 使用旧金山工资数据集中的双周最高工资和工作种类两列
数据等级总结
数据等级总结
等级 | 属性 | 例子 | 描述性统计 | 图标 |
---|---|---|---|---|
定类 | 离散 | 二元响应(真或假) | 频率/占比 | 条形图 |
无序 | 油漆颜色、人名 | 众数 | 饼图 | |
定序 | 有序类别 | 李科特量表 | 频率/众数 | 条形图 |
比较 | 考试等级 | 中位数/百分位数 | 茎叶图 | |
定距 | 数字差别有意义 | 摄氏度 | 频率/众数 | 条形图/饼图/茎叶图 |
某些特殊的李科特量表 | 中位数/均值/标准差 | 箱线图/直方图 | ||
定比 | 连续 | 💰 | 均值 | 直方图 |
存在有意义的绝对零点,可以做除法 | 重量 | 标准差 | 箱线图 |
统计类型汇总
统计量 | 定类 | 定序 | 定距 | 定比 |
---|---|---|---|---|
众数 | ☑️ | ☑️ | ☑️ | 有时可 |
中位数 | ❌ | ☑️ | ☑️ | ☑️ |
差值、最大最小值 | ❌ | ☑️ | ☑️ | ☑️ |
均值 | ❌ | ❌ | ☑️ | ☑️ |
标准差 | ❌ | ❌ | ☑️ | ☑️ |
图表绘制汇总
图表 | 定类 | 定序 | 定距 | 定比 |
---|---|---|---|---|
条形图/饼图 | ☑️ | ☑️ | 有时可 | ❌ |
茎叶图 | ❌ | ☑️ | ☑️ | ☑️ |
箱线图 | ❌ | ❌ | ☑️ | ☑️ |
直方图 | ❌ | ❌ | 有时可 | ☑️ |