DATAWHALE-数据挖掘竞赛入门-task2-EDA-数据探索性分析

背景

这次的数据挖掘竞赛入门学习选取了阿里天池的二手车价格预测作为赛题,从数据竞赛的流程入手,为竞赛新人提供指导。那么,第二章主要是对数据探索性分析的介绍。

小插曲

翻开Datawhale提供的入门手册,打开Jupyter准备开敲,不料发生了如下错误。

DATAWHALE-数据挖掘竞赛入门-task2-EDA-数据探索性分析

 于是开始了漫长的寻错之旅。网上也有不少关于这个错误的纠正方法,如添加环境变量(添加环境变量教程)。但最终解决问题的还是Stack Overflow上的这个方法,参考设置CONDA_DLL_SEARCH_MODIFICATION_ENABLE。根据conda官网的介绍,这大概是由于dll冲突造成的,虽然我没有找到冲突的dll,但按上述方案设置后的确又恢复了,只是导入包变慢了。不管怎样,能用就行!

数据探索性分析

数据探索性分析(Exploratory Data Analysis)目的在于熟悉与了解数据集,来满足以下目的:

  • 确保数据集可以用于后续的机器学习或深度学习
  • 了解自变量间以及自变量与因变量间的相互关系
  • 通过数据处理与特征工程使得预测更加可靠
  • 对数据进行一些图表或文字性描述

主要内容

  • 载入库与数据

常用的库有:numpy, pandas, matplotlib, seaborn, (missingno缺失值可视化库

常用的载入数据:pd.read_csv('data.csv')

  • ​​​​​​​数据总览

​​​​​​​主要运用DataFrame的 describe(个数、平均值、方差、分位数等) 与 info (数据类型type,观察是否有Null值)来查看总体介绍。

运用 df.head(). append( df.tail( ) ) 可以查看前5行与后5行的具体数据(局部)。

  • 判断数据缺失和异常

​​​​​​​null值: df.isnull().sum()

可视化:可以尝试missingno库的可视化函数,如msno.matrix(), msno.bar()等

相应处理:null值过多可以考虑删掉该特征,少的可以选择填充。出现object类型可能是因为“-”的填充,需要多加留意,可以替换为nan。

倾斜:某些特征可能严重倾斜于某个值,如全是1。这样的特征可以删除。

  • 了解预测值的分布

​​​​​​​运用可视化工具观察样本值的分布,用概率分布去拟合。

总结

由于小插曲的出现导致大量时间用于寻找解决方法,所以这次的学习还有待进一步跟进。