数据质量分析
数据质量分析是数据预处理的前提,没有可信的数据,数据挖掘构建的模型将是空中楼阁。
数据质量分析的主要任务是检查原始数据中是否存在脏数据,脏数据一般指不符合要求,以及不能直接进行相应分析的数据。包括:
1)缺失值
2)异常值
3)不一致的值
4)重复数据及含有特殊符号(如#,¥,*等)的数据。
本文只介绍缺失值处理:
缺失值处理
1)删除
删除法是指将缺失值所在的观测行删除(前提是缺失行的比例非常低,如5%以内);
或者删除缺失值所对应的变量(前提是该变量中包含的缺失值比例非常高,如70%左右);
2)替换
直接利用缺失变量的均值、中位数或众数替换该变量中的缺失值;
其好处是缺失值的处理速度快;弊端是易产生有偏估计,导致缺失值替换的准确性下降;
3)插补
利用有监督的机器学习方法(如回归模型、树模型、网络模型等)对缺失值作预测;
其优势在于预测的准确性高;缺点是需要大量的计算,导致缺失值的处理速度大打折扣。
缺失值——识别
判断一个数据集是否存在缺失观测,通常从两个方面入手:
1)变量的角度,即判断每个变量中是否包含缺失值;
2)数据行的角度,即判断每行数据中是否包含缺失值。关于缺失值的判断可使用isnull方法。
# 导入数据处理需要的包
import pandas as pd
import numpy as np
# 构造测试数据集
df_nan_drop = pd.DataFrame({'a':[1,1,1,np.nan],
'b':[2,2,np.na