一、缺失值
1.1 填补原则
首选基于业务的填补方法
,其次根据单变量分析进行填补
。
(多重插补进行所有变量统一填补的方法只有在粗略清洗时菜户其使用。)
缺失比例 | 填补原则 |
---|---|
缺失值少于20% | 连续变量 使用均值 或中位值 填补;分类变量不需要填补 ,单算一类即可,或者用众数 填补 |
缺失值在20~80% | 填补方法同上 ;另外每个有缺失值的变量生成一个指示哑变量 ,参与后续的建模 |
缺失值大于80% | 每个有缺失值的变量生成一个指示哑变量 ,参与后续的建模。原始变量不再使用 |
1.2 填补方法(待补充)
#用平均值填充
df.fillna(df.mean())
#如果整列都是空,则填入test
df.apply(lambda x: x.fillna(np.mean(x)) if isinstance(np.max(x), float) else x.fillna('test' ))
二、异常值
2.1 查找原则
- 极端值、离群值
- 设置标准,如:5倍标准差之外的数据
- 极值有时并不意味着错误,应重新理解数据,例如:特殊用户的超大额消费
平均值法
- 平均值法:平均值±n倍标准差之外的数据
建议的临界值:
|SR|>2 | 用于观察值较少的数据集 |
|SR|>3 | 用于观察值较多的数据集 |
四分位数法
- 四分位数法(更适用于
对称分布
的数据)
IQR = Q3-Q1
Q1-1.5IQR ~ Q3+1.5IQR
2.2 处理方式
盖帽法
上下两端直接截断。
- 例子:用
1%
和99%
的分位数进行盖帽
def