数据探索之基本数据特征分析方法
数据探索是在拿到数据后必要做的一步,可以帮助我们更好地认识和了解数据集。这里主要介绍三种分析:分布分析,统计量分析和相关分析。
分布分析
- 定量数据分布分析
需要了解数据分布是否对称,常用直方图。直方图的画法可见第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相关系数
如果不服从上述条件,一般使用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))