2 数 据 探 索
2.1 理论知识
2.1.1 变量识别
变量识别就是对数据从变量类型、数据类型等方面进行分析。举个例子,数据如表1-2-1所示:
表1-2-1
我们可以从以下方面对其进行变量识别:
1. 输入变量与输出变量
输入变量(也称为“predictor”或“特征”)有age,workclass,education,gender,hours-per-week,occupation。
输出变量(也称为“target”或“标签”)有 income。
2. 数据类型
字符型数据有workclass,education,gender,occupation,income。
数值型数据有age,hours-per-week。
3. 连续型变量与类别型变量
连续型变量(特征)有age,hours-per-week。
类别型变量(特征)有workclass,education,gender,occupation,income。
说明:例中的问题属于分类问题,两个类别分别是income(收入)≤50k 和income(收入)>50k。而如果目标改为预测具体收入,则变成了一个回归问题。
2.1.2 变量分析
1. 单变量分析
对于连续型变量,需要统计数据的中心分布趋势和变量的分布,如对表1-2-2 中的数据进行分析,其结果如图1-2-1 所示。
表1-2-2
图1-2-1 统计量和变量的分布
对于类别型变量,一般使用频次或占比表示每一个类别的分布情况,对应的衡量指标分别是类别变量的频次(次数)和频率(占比),可以用柱形图来表示可视化分布情况。
2. 双变量分析
使用双变量分析可以发现变量之间的关系。根据变量类型的不同,可以分为连续型与连续型、类别型与类别型、类别型与连续型三种双变量分析组合。
(1)连续型与连续型。绘制散点图和计算相关性是分析连续型与连续型双变量的常用方法。
- 绘制散点图:散点图的形状可以反映变量之间的关系是线性(linear)还是非线性(non-linear),图1-2-2 所示为常见的几种双变量关系对应的散点图。
- 计算相关性:散点图只能直观地显示双变量之间的关系,但并不能说明关系的强弱,而相关性可以对变量之间的关系进行量化分析。相关性系数的公式如下:
相关性系数的取值区间为[-1, 1]。当相关性系数为-1时,表示强负线性相关;当相关性系数为1时,表示强正线性相关;当相关性系数为0时,表示不相关。
图1-2-2 双变量关系散点图
那么,在Python 中如何对相关性进行计算呢?举个例子,假设X=[65, 72, 78, 65, 72,70, 65,68],Y=[72, 69, 79, 69, 84, 75, 60, 73],要计算X 与Y 的相关性系数,代码如下:
import numpy as np
X = np.array([65, 72, 78, 65, 72, 70, 65, 68])
Y = np.array([72, 69, 79, 69, 84, 75, 60, 73])
np.corrcoef(X, Y)
计算结果如下:
array([[1. , 0.64897259],
[0.64897259, 1. ]])
一般来说,在取绝对值后,0~0.09 为没有相关性,0.1~0.3 为弱相关,0.3~0.5 为中等相关,0.5~1.0 为强相关。
(2)类别型与类别型。对于类别型与类别型双变量,一般采用双向表、堆叠柱状图和卡方检验进行分析。
- 双向表:这种方法是通过建立频次(次数)和频率(占比)的双向表来分析变量之间的关系,其中行和列分别表示一个变量,如表1-2-3 所示。
表1-2-3
- 堆叠柱状图:这种方法比双向表更加直观,如图1-2-3 所示。
图1-2-3 堆叠柱状图
- 卡方检验:主要用于两个和两个以上样本率(构成比)及两个二值型离散变量的关联性分析,即比较理论频次与实际频次的吻合程度或拟合优度。
以iris 数据集为例,在sklearn 库中使用卡方检验筛选与目标变量相关的特征,示例代码如下:
from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
iris = load_iris()
X, y = iris.data, iris.target
chiValues = chi2(X, y)
X_new = SelectKBest(chi2, k=2).fit_transform(X, y)
(3)类别型与连续型。在分析类别型和连续型双变量时,可以绘制小提琴图(Violin Plot),这样可以分析类别变量在不同类别时,另一个连续变量的分布情况。如图1-2-4 所示,通过绘制小提琴图,可以对比在类别变量为low,medium,high 三个不同类别时,连续变量price 的分布情况。
图1-2-4 小提琴图及其说明
小提琴图结合了箱形图和密度图的相关特征信息,可以直观、清晰地显示数据的分布,常用于展示多组数据的分布及相关的概率密度。
说明:建议使用Seaborn 包中的violinplot()函数。