一般流程
1. 读取数据
2. 了解整体数据情况,包括但不限于:
1).数据字典,也就是字段,明确分析维度;
2).数据类型;`object、int64`
3).有无空值、缺失值数量或者缺失率;`isnull()、info()`
4).特征中具体有哪些分类;`nunique()、unique()`
5).描述性统计;`describe()`
6).数据集是否是平衡数据集;`直方图、饼图`
3. 数据处理
1).空值与缺失值处理
a). 不做处理
b). 全部缺失值删除、删除高于阈值的缺失值或者删除与其他特征高度关联的缺失值特征
c). 插补法:
均值(众数)插补——缺失值数量小
考虑与其他特征的关系,根据其他特征插入——缺失值数量不大不小
补充另一个数——缺失值数量很大
2).异常值处理
a).删除含有异常值的记录:直接将含有异常值的记录删除;
b).视为缺失值:将异常值视为缺失值,利用缺失值处理的方法进行处理;
c).平均值修正:可用前后两个观测值的平均值修正该异常值;
d).不处理:直接在具有异常值的数据集上进行数据挖掘;
3).时间类型数据处理
a).数据类型转换
4.数据特征分析
1).单个特征分析
a). 各个特征与标签之间的关联关系
b).单个特征具体特征的分类与标签的关系
c).可视化绘图,包括但不限于:
直方图
饼图
折线图
2).多个特征分析
a).关联特征分析
b).热力图
5. 特征选择
主要从相关性、差异性、显著性三个方向进行特征选择;
参考特征选择博客
目前我主要用到的是Filter方法进行特征筛选,后续其他方法有待继续学习。
1).Filter——自变量与因变量之间的关系
连续变量-连续变量 相关分析
连续变量-分类变量 T检验/方差分析
分类变量-分类变量 卡方检验
a).相关性——主要看连续变量
b).卡方检验——分类变量(离散变量像sex)与标签的关系
c).Anova/t检验——连续变量(像age)与标签的关系
d).主要用到`sklearn.feature_selection`,`f_classif`方差分析,`SelectKBest `特征选择