在做数据建模或者是数据挖掘的过程中都需要对数据做一些探索性的分析,所谓的探索性数据分析主要是对数据的整体规模有一个大致了解,主要包括但不限于记录数、特征数、特征的数据类型、数据缺失情况、数据的整体分布情况(单变量的分布及多变量的分布)、数据的相关性情况等,下面分别从这几个方面介绍一下应用Python如何做EDA。
以泰坦尼克数据为样例进行探索性数据分析。
1、将数据导入到Python中
一般在Python中应用pandas库中的相应函数进行导入数据,这样导入的数据是一个DataFrame类型,方便后面的分析。
import
2、查看数据的行列数、数据类型、数值型数据分布情况
查看行列数(记录数及特征数)
![1eafd8806862369c30178a9031300f45.png](https://i-blog.csdnimg.cn/blog_migrate/b87cd51a5e5596d8eb130ad275b8a77d.png)
可以看出本数据集中有891条记录12个特征。
查看数据类型
![5627cd21ec47667d9ab35d477805285d.png](https://i-blog.csdnimg.cn/blog_migrate/7d01dd1e9c3de488cd9776d2fc2b19bd.png)
可以看出本数据集中有int64、float64和object三种类型的变量,从这个图中同样能够看出存在缺失值的字段,个数少于891个的特征都是存在缺失的。
查看数值型数据规模
![1f3f7a86317a30c431ea75df1a424047.png](https://i-blog.csdnimg.cn/blog_migrate/ed8ffa31493c8bb996547feb674fa083.jpeg)
图中只是展示了数值型变量规则及分布,主要展示了数量、均值、标准差、最小值、25%分位数、50%分位数、75%分位数和最大值等。
3、缺失值情况探查
缺失值情况探查主要是探查存在缺失值的字段及具体的缺失规模。
pandas库进行缺失探查
应用pandas库进行数据探查主要应用库中带的一些缺失值检测的函数,主要有isnull(),notnull()等。
![6c608c521cc7d4a43512bc52c647c08d.png](https://i-blog.csdnimg.cn/blog_migrate/1e52ff0354d7c3c190e6573fe0f75296.png)
从图中可以看出Age、Cabin和Embarked存在数据缺失,
missingno库进行缺失探查
missingno库主要用于对缺失值的展示,主要有三个函数missingno.bar(),missingno.matrix(),missingno.heatmap(),具体用户参见missingno官方。
![6105ec0452842b30db215db88feb0d5a.png](https://i-blog.csdnimg.cn/blog_migrate/1843c237acb4cf2e5e7e4d842b4ea123.png)
图中白色的地方就是存在缺失值的地方,从图中可以看出Cabin字段存在大量的数据缺失。
4、数据整体分布情况分析
(1)单变量数据分析
a 、数值型数据分布情况
数值型数据分布最好以图的方式进行展示,这样能够直观形象的看出数据的整体分布情况。主要使用展示图有:直方图、箱线图、小提琴图等。
下面以Fare字段进行数据整体分布的展示
![50cdeacf303f317bdf82faf755269947.png](https://i-blog.csdnimg.cn/blog_migrate/ad7848576cc6795d27aeae51032314bc.png)
![1c4bb17f7d51e9073affc12d4ba8dec3.png](https://i-blog.csdnimg.cn/blog_migrate/f88571c975539fd1bc064bb93a9531ef.png)
![5296394faeb17f7ef68a4bf73bb11d4f.png](https://i-blog.csdnimg.cn/blog_migrate/9e2e2add0a2af9da4751e1aed88d2664.png)
b、分类型数据分布情况
分类型数据的分布情况探查主要是查看各个分类值出现的频次及趋势,可以直接应用pandas库中的value_counts()方法查看,同时也可以应用seaborn库中的图表进行查看。
value_counts方法
![42f63cdde2f1a738c766df433e4599e9.png](https://i-blog.csdnimg.cn/blog_migrate/82e0c7c1cc3bb8f331b28aa7f91ce764.png)
seaborn方法
![63f251084a710cf43557aee038bcc463.png](https://i-blog.csdnimg.cn/blog_migrate/64d43d08fe83cd2095941286d9c14d3f.png)
(2)多变量数据分布情况分析
多变量的数据分布探查主要查看数据之间的相互关系,比较常用的就是seaborn中的pairplot方法。
![c02535667765af4389f172296c4404b3.png](https://i-blog.csdnimg.cn/blog_migrate/ce515f3d72e331edf6bfac44433a79ed.png)
5、数据相关性探查
数据相关性的探查一般都是通过查看皮尔逊相关系数确定数据之间是否存在相关性,但是这种相关性的确定有两个限制条件:1、只能确定数值型变量之间的关系;2、只能确定变量之间的是否线性相关。如果需要探查数据之间的是否存在非线性相关的时候就需要像斯皮尔曼相关系数等。
![4833323908a66c83fe325f34f822e5d7.png](https://i-blog.csdnimg.cn/blog_migrate/7fe34e6d935e3c396807c6f808d10a72.png)
注:本文只是简单的描述了一下初步数据探查的基本方法,后续还有很多地方需要不断完善的地方,比如异常值的检测、数值型变量与分类型变量的相关性分析等等,只有完全掌握了数据的整体分布才能继续后面的数据分析和挖掘工作。
本人能力有限,难免有错误或不足的地方,不吝赐教。