探索性数据分析学习心得

探索性数据分析学习心得(EDA,Exploratory Data Analysis)

零基础摸索中,参考零基础入门数据挖掘 - 二手车交易价格预测

EDA目的

  • 首先是对数据的前期处理:熟悉数据集,了解数据集,对数据集进行验证来确定所获得数据集可以用于接下来的机器学习或者深度学习使用。

  • 下一步就是要去了解变量间的相互关系以及变量预测值之间的关系。

  • 最后进行数据处理以及特征工程的步骤,使数据集的结构和特征集让接下来的预测问题更加可靠。

EDA步骤

在此记录每步步骤,以及各个基础模块~

1. 载入各种数据科学以及可视化库

导入常用的数据科学库 pandas、numpy、scipy;可视化库 matplotlib、seabon;

import warnings
warnings.filterwarnings('ignore')
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import missingno as msno

2. 导入数据:

载入训练集和测试集;
简略观察数据(head()+shape);

pandas.DataFrame.sample
pandas.DataFrame.sample 随机选取若干行

3. 数据总览,了解数据当前状态:

通过describe()来熟悉数据的相关统计量
通过info()来熟悉数据类型

绘图部分

import scipy.stats as st
y = Train_data['price']
plt.figure(1);plt.title('Johnson SU')
sns.distplot(y, kde=False, fit=st.johnsonsu)
plt.figure(2); plt.title('Normal')
sns.distplot(y, kde=False, fit=st.norm)
plt.figure(3); plt.title('Log Normal')
sns.distplot(y, kde=False, fit=st.lognorm)

sns.displot():displot()集合了matplotlib的hist()与核函数估计kdeplot的功能,增加了rugplot分布观测条显示与利用scipy库fit拟合参数分布的新颖用途。

无界Johnson SU分布
Johnson 分布体系包含三种分布,这些分布全都基于变换的正态分布。这三种分布如下:
Johnson Su,无界。
Johnson Sb,由可以估计的参数定义的双尾上均有界限。
Johnson Sl,由可以估计的参数定义的单尾上有界限。Johnson Sl 系列包含一系列对数正态分布。
Johnson 分布十分灵活,所以很受欢迎。特别是,Johnson 分布体系以其数据拟合能力闻名,因为它支持偏度和峰度的每种可能组合。
探索性数据分析学习心得_第1张图片

4. 判断数据缺失和异常

查看每列的存在nan情况
异常值检测

5. 了解预测值的分布

总体分布概况(无界约翰逊分布等)
查看skewness and kurtosis
查看预测值的具体频数

6. 特征分为类别特征和数字特征,并对类别特征查看unique分布

7. 数字特征分析

相关性分析
查看几个特征得 偏度和峰值

偏度(skewness)和峰度(kurtosis)
偏度(skewness),是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。定义上偏度是样本的三阶标准化矩。
峰度(peakedness;kurtosis)又称峰态系数。表征概率密度分布曲线在平均值处峰值高低的特征数。直观看来,峰度反映了峰部的尖度。随机变量的峰度计算方法为:随机变量的四阶中心矩与方差平方的比值。

每个数字特征得分布可视化

特征预处理-对数变换
我们在数据预处理过程中经常见到对于有偏数据进行log变换,变换后的数据能更加接近正态分布。

数字特征相互之间的关系可视化
多变量互相回归关系可视化

8. 类型特征分析

unique分布
类别特征箱形图可视化
类别特征的小提琴图可视化
类别特征的柱形图可视化类别
特征的每个类别频数可视化(count_plot)

9. 用pandas_profiling生成数据报告

你可能感兴趣的:(探索性数据分析学习心得)