阿里云天池大赛赛题解析——机器学习篇-赛题一(3)

2 数 据 探 索

2.1 理论知识

2.1.1 变量识别

变量识别就是对数据从变量类型、数据类型等方面进行分析。举个例子,数据如表1-2-1所示:

表1-2-1

阿里云天池大赛赛题解析——机器学习篇-赛题一(3)

我们可以从以下方面对其进行变量识别:

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

阿里云天池大赛赛题解析——机器学习篇-赛题一(3)

阿里云天池大赛赛题解析——机器学习篇-赛题一(3)

图1-2-1 统计量和变量的分布

对于类别型变量,一般使用频次或占比表示每一个类别的分布情况,对应的衡量指标分别是类别变量的频次(次数)和频率(占比),可以用柱形图来表示可视化分布情况。

2. 双变量分析

使用双变量分析可以发现变量之间的关系。根据变量类型的不同,可以分为连续型与连续型、类别型与类别型、类别型与连续型三种双变量分析组合。

(1)连续型与连续型。绘制散点图和计算相关性是分析连续型与连续型双变量的常用方法。

    • 绘制散点图:散点图的形状可以反映变量之间的关系是线性(linear)还是非线性(non-linear),图1-2-2 所示为常见的几种双变量关系对应的散点图。
    • 计算相关性:散点图只能直观地显示双变量之间的关系,但并不能说明关系的强弱,而相关性可以对变量之间的关系进行量化分析。相关性系数的公式如下:

阿里云天池大赛赛题解析——机器学习篇-赛题一(3)

相关性系数的取值区间为[-1, 1]。当相关性系数为-1时,表示强负线性相关;当相关性系数为1时,表示强正线性相关;当相关性系数为0时,表示不相关。


阿里云天池大赛赛题解析——机器学习篇-赛题一(3)

图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

阿里云天池大赛赛题解析——机器学习篇-赛题一(3)

    • 堆叠柱状图:这种方法比双向表更加直观,如图1-2-3 所示。

阿里云天池大赛赛题解析——机器学习篇-赛题一(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 的分布情况。

阿里云天池大赛赛题解析——机器学习篇-赛题一(3)

图1-2-4 小提琴图及其说明

小提琴图结合了箱形图和密度图的相关特征信息,可以直观、清晰地显示数据的分布,常用于展示多组数据的分布及相关的概率密度。

说明:建议使用Seaborn 包中的violinplot()函数。

上一篇:阿里云天池大赛赛题解析——机器学习篇-赛题一(2)


下一篇:阿里云数字新基建系列:云原生操作系统Kubernetes-第1章(1)