数据挖掘:探索性数据分析(EDA)
一、什么是探索性数据分析
EDA (Exploratory Data Analysis),即对数据进行探索性的分析。充分了解数据,为之后的数据清洗和特征工程等提供想法和结论。在探索分析时,也可进行数据清洗的工作,两者是相辅相成的,没有说必须按照顺序去执行。主要包括以下三个方面:分布分析,统计量分析和相关分析。
分布分析:定量定性分析。
统计量分析:集中,离散趋势和分布形状。
相关分析:单个图,图矩阵,相关系数。
另外,在比赛中可能会遇到脱敏数据。不告知数据的特征是什么,比如。阿里天池的工业蒸汽的数据本文主要讨论非脱敏数据,会在后续的文章对脱敏数据的一般处理方式进行说明。
- 充分了解数据:
1.了解数据的外部信息。即数据的现实意义。可通过比赛数据说明和上网百度、谷歌相关的业务数据知识得到。
2.了解数据的内部信息。即数据的自身情况。可通过统计学的相关知识,如计算均值,标准差,峰度,偏度等。另外,也可以通过绘图,来深入了解数据,为创建有效特征提供思路。
二、数据外部信息
这部分主要参考比赛数据,业务知识和自己对数据的理解。
比如,有身高和体重的数据,那么我们通过上网查找资料,得知将身体,体重带入某一公式,可以得出当前人的健康水平。这样我们就创建了一个更好的特征。
再举一个例子,电影评分的数据。通过上网查资料,或是平时对这方面数据的理解,可以得知IMDB的电影评分公式,将数据代入这个公式,可以创建一个不错的特征。
另外,也可以展开头脑风暴,创建大量的特征,有的没有都有,然后,进行特征选择。有时会有意想不到的效果。(但你也不知道为啥这个特征会有帮助。。。T^T)
三、数据内部信息
这里区分为单特征分析和多特征分析。利用的方法包括统计学相关知识和数据可视化。
对于文本、图形、音频等非结构数据会在后续的文章中进行说明。本文主要探索结构性数据(简单理解就是全是数字的数据……)
读取数据后,可用pandas里的一些函数对数据有个大致的了解。常用的有如下几个函数:
# df是导入的数据
df.describe() # 查看所有数据平均值,四分位数等信息
df.info() # 查看所有数据的数据类型和非空值个数。
df.shape # 查看数据行列数
df.isnull()