数据探索之基本数据特征分析方法

数据探索是在拿到数据后必要做的一步,可以帮助我们更好地认识和了解数据集。这里主要介绍三种分析:分布分析,统计量分析和相关分析。

分布分析

  • 定量数据分布分析

需要了解数据分布是否对称,常用直方图。直方图的画法可见第12期学习笔记。在此基础上可以进行正态分布的检验。

>>>import scipy

>>>scipy.stats.normaltest(要检验的dataframe.iloc[:,0], axis=0) (axis的默认参数为0,就是在第0轴上检验,在数据的属性列上检验是否是正态分布,此处因为是[:,0]所以是对第0列检验,若是[:,1]则是对第1列检验)

运行之后会返回卡方统计量的值和p值

  • 定性数据分布分析

需要了解各类数据的占比,常用饼图。

可以先通过count方法来看数据被分成了几类,每类中有多少条记录:

>>>要用的dataframe.target.value_counts()

再来看饼图:

>>>要用的dataframe.target.value_counts().plot(kind='pie')

统计量分析

  • 集中趋势分析

常讨论的是均值、中位数

  • 离中趋势分析

常讨论的是标准差、四分位距

求分位数的方法如下:

>>>要分析的dataframe.iloc[:,0].quantile() (返回的是中位数)

>>>要分析的dataframe.iloc[:,0].quantile([0.25,0.75]) (返回的是上四分位数和下四分位数)

若使用describe则可以直接求出上面所有要求的四个统计量:

>>>要分析的dataframe.iloc[:,0].describe()

相关分析

散点图是最直观地表示数据相关性的方式,scatter函数在之前的课程笔记中已有过介绍。

  • 这里介绍定量的相关分析——相关性系数的计算。

Pearson相关系数




Python中三维热力图 python画三维热力图_数据分布


如果不服从上述条件,一般使用Spearman相关系数。另外还有Kendall相关系数也比较常用。

这里主要介绍Pearson线性相关系数:

>>>要分析的dataframe.iloc[:,[0,1,最后一个数字]].corr() (求得第0、1列属性和最后目标类别之间的Pearson相关系数)

>>>要分析的dataframe.iloc[:,0].corr(要分析的dataframe.iloc[:,1]) (求得第0列和第1列的Pearson相关系数)

  • 通过seaborn来画出相关性的热力图

>>>import seaborn as sns

>>>sns.heatmap(要分析的dataframe.iloc[:,[0,1,最后一个数字]].corr(), annot=True, fmt='.1f', cmap='rainbow') (将上述第一个求的相关性系数画热力图,并设置一些参数,将热力图颜色设置为彩虹(cmap, 即colormap))