数据挖掘竞赛实战:方法与案例
上QQ阅读APP看书,第一时间看更新

2.1 探索性数据分析

探索性数据分析是一种使用可视化技术分析数据的方法。正如Scott Berinato在他的著作Good Charts中所说,“A good visualization can communicate the nature and potential impact of information and ideas more powerfully than any other form of communication.”

在机器学习中,对数据进行恰当的预处理以及抽取合适的特征对后续的模型训练起到至关重要的作用。EDA可以帮助我们发现数据中的某些模式、趋势,以及借助统计描述信息和图形表示验证某些假设,从而指导我们如何进行数据预处理和特征工程。

在EDA中,需要重点关注的信息包括缺失值、异常值、数据分布、变量之间的相关性、变量和标签之间的相关性。可以借助Matplotlib、Seaborn等诸多工具手动地进行EDA,更简便的方法是使用自动化的EDA工具,如dtale、pandas profiling、sweetviz、AutoViz。这里以AutoViz为例,结合鸢尾花数据集,来看看如何使用简单的几行代码实现EDA,代码如下。

AutoViz能计算各个变量的重要性,选择重要性比较高的变量进行绘图,内置启发式算法,并选择被认为最优的表现形式进行绘图。在这个案例中,AutoViz生成了如图2.2~图2.7所示的可视化结果。

图2.2 散点图(表示连续型变量和标签的关系)

图2.2展示了4个散点图,每个散点图都显示了一个特征与鸢尾花品种(标签)之间的关系。其中:

 Species:表示鸢尾花品种(Iris-setosa、Iris-versicolor、Iris-virginica);

 SepalLengthCm:表示萼片长度;

 SepalWidthCm:表示萼片宽度;

 PetalLengthCm:表示花瓣长度;

 PetalWidthCm:表示花瓣宽度。

图2.3 成对散点图(用于理解连续变量之间的相关性程度)

图2.3展示了鸢尾花数据集的成对散点图,其中包括了4个连续变量(萼片长度、萼片宽度、花瓣长度和花瓣宽度)。每个散点图展示了两个变量之间的关系,并且每个鸢尾花品种(Iris-setosa、Iris-versicolor、Iris-virginica)都以不同的颜色标识。

图2.4 连续型变量的数据分布

图2.4展示了鸢尾花数据集中不同品种鸢尾花的4个特征(花瓣宽度、花瓣长度、萼片长度和萼片宽度)的分布。这些图被称作核密度估计图(kernel density estimate,KDE),它们平滑地展示了数据的分布形态。

图2.5 标签的数据分布

图2.5展示了两个条形图,分别表示鸢尾花数据集中的品种分布:一个为百分比分布,另一个为频率分布。

图2.6 不同标签下连续型变量的箱型图

图2.6包含了4个箱线图,分别展示了鸢尾花数据集中3种不同品种的鸢尾花(Iris-setosa、Iris-versicolor、Iris-virginica)的4个不同特征(萼片长度、萼片宽度、花瓣长度和花瓣宽度)的数据分布情况。

图2.7是一个热力图,展示了鸢尾花数据集中连续变量之间的相关系数。相关系数的取值是-1~1,其中1表示完全正相关,-1表示完全负相关,而0表示没有相关性。

图2.7 热力图(用于展示连续变量以及标签的相关系数矩阵)