数据清洗
文章目录
一、概念
现实世界中数据大体上都是不完整,不一致的脏数据,无法直接进行数据挖掘,或挖掘结果差强人意。为了提高数据挖掘的质量产生了数据预处理技术。数据预处理有多种方法:数据清理,数据集成,数据变换,数据归约等。这些数据处理技术在数据挖掘之前使用,大大提高了数据挖掘模式的质量,降低实际挖掘所需要的时间。
二、缺失值处理
2.1. 缺失值
在实际业务中,不可避免的会出现数据缺失的现象,大概分为以下几种:
- 人为疏忽、机器故障等客观原因导致信息缺失
- 人为刻意隐瞒数据。
- 数据本身不存在,如对学生群体而言,工资属性不存在。
- 系统实时性能要求高
- 历史局限性导致信息搜集不完整
2.2 概念
数据集中不含缺失值的变量称为 完全变量,反之称为 不完全变量。数据缺失类型可以分为 完全随机缺失、随机缺失 和 非随机缺失。
2.2.1 完全随机缺失
对所有数据来说,所有变量的缺失概率都是相同的。数据的缺失不依赖于不完全变量或完全变量。
2.2.2 随机缺失
数据的缺失与其他完全变量有关。如,收集家庭信息这一变量,女性比男性的数据缺失率高,其中性别为完全变量。
2.2.3 非随机缺失
- 数据的缺失与不完全变量自身的取值有关,分为两种:
- 缺失值依赖于未观察变量
- 数据缺失不是随机的,取决于未观测到的变量,比如,学校开设一门课程,中途退出的人较多,可能与课程质量这一未收集变量有关
- 缺失取决于缺失值本身
- 缺失值的概率与缺失值本身直接相关,比如收入过高或过低人群不愿提供收入证明
2.3 处理方法
2.3.1 填充
基于统计学原理,根据初始数据集中非缺失对象取值的分布情况来对缺失值进行填充。
填充方法包括 人工填充,特殊值填充,热卡填充,KNN,预测模型,组合完整化方法 等。
2.3.1.1 Mean、Mode、Median估计
定类:众数填充,以数据集中类别数据量较多的类别填充
定量:均值、中位数填充
广义插补:以所有非缺失值的Mean或Median填充
相似插补:分别计算非缺失值的Mean和Median填充各类别缺失值
- 优点:操作简单
- 缺点
- 可能会改变原始数据的分布情况
- 可能会引入噪音结点
- 降低模型准确性
2.3.1.2 KNN
通过 KNN 的方法将所有样本进行划分,通过计算欧氏距离,选取与缺失数据样本最近的 k k k 个样本,然后通过投票法或 K K K 个值加权平均来估计该样本的缺失数据。其本质是找相似插补。
- 优点
- 不需要为含有缺失值的每个属性都建立预测模型
- 一个属性有多个缺失值也可以很容易解决
- 缺失值处理时把数据结构之间的相关性考虑在内
- 缺点
- 面对大数据集, K N N KNN KNN 时间开销大
- K K K 值的选取是关键,过大或过小都会影响最终结果
2.3.1.3 回归
- 把数据集中不含缺失部分的部分作为训练集,根据预测建立回归模型,将此模型用来预测缺失值并进行填充
- 此方式只适用于缺失值是连续的情况
- 预测填充理论上比值填充效果好,但若缺失值和其他变量没有相关性,则预测出的缺失值没有统计学意义。
2.3.1.4 变量映射
把变量映射到高维空间中,如男女映射为 是否男
,是否女
,和 NULL
- 优点
- 可以保留数据完整性
- 无需考虑缺失值
- 缺点
- 计算开销大大提升
- 可能会出现稀疏矩阵,反而降低模型质量
2.3.2 不处理
补齐的缺失值毕竟不是原始数据,不一定符合客观事实,对数据的填充一定程度上改变了数据的原始分布,也不排除加入了噪音节点的可能性。
因此,对于一些无法应对缺失值的模型,可以用缺失值填充的方式补齐缺失数据,但有些模型本身可以容忍一定的数据缺失,此时可以选择不处理,比如XGBoost
2.3.3 删除
适用于数据量大,数据缺失值少的数据集。
完全随机缺失 可以直接用删除操作。
80%法则
:当某一物质的非缺失部分低于总样本量的
80
%
80\%
80% 时,建议删除该物质。
- 缺点:
- 直接删除会丢失部分原始数据,破坏数据的历史完整性;
- 数据缺失占比较多时,直接删除可能会改变原始数据的分布情况;
- 降低模型准确性。
三、异常值处理
3.1 概念
异常值是偏离整体样本的观察值,也叫离群点。异常值会影响模型的精确度,因此异常值处理是数据预处理中重要的一步,在实际应用中,研究者可将其用于一些异常检测场景,比如入侵检测、欺诈检测、安全检测等。
当异常值出现时,需了解异常出现的原因。针对不同原因,采取不同异常值处理方法,以便达到较好的数据挖掘效果。
异常值出现的原因大致有以下几种:
- 数据输入错误。相关人员无意或故意导致数据异常,比如,客户年收入13万美元,数据登记为130万美元。
- 数据测量、实验误差。此为较常见误差,可因测量仪器不精准导致。
- 数据处理错误。ETL操作不当,发送数据异常。
- 抽样错误。数据采集时包含了错误或无关数据。
- 自然异常值。非人为因素导致的数据异常。比如,根据历史数据预测明年降水量,但今年7月降水量与前五年同期相比大大增加。
当出现异常值时,会产生以下几种影响:
- 增加了整体数据方差,降低了统计学检测的权威性。
- 异常值是随机分布,因此可能会改变数据集的正态分布。
- 可能会对回归、ANOVA、T检验等统计学假设的结果产生影响。
3.2 异常值检测
异常值检测方法较多,常见的有:散点图、基于分类模型的异常检测、 3 σ 3\sigma 3σ原则及箱型图分析。
3.2.1 散点图
将数据用散点图的形式可视化,可观察到异常值。
3.2.2 基于分类模型的异常值检测
- 根据现有数据建立模型,然后对新数据进行判断是否偏离,偏离则视为异常值。
- 比如:贝叶斯模型、神经网络、SVM等
3.2.3 3 σ 3\sigma 3σ原则
若数据集服从参数为 μ \mu μ, σ \sigma σ 的正太分布或高斯分布,记为 X X X ~ N ( μ , σ 2 ) N(\mu, \sigma^2) N(μ,σ2)
异常值若被定义为,其值与平均值偏差绝对值超过三倍标准值的差,即
P
(
∣
x
−
μ
∣
>
3
σ
)
≤
0.003
P(|x-\mu|>3\sigma)\le0.003
P(∣x−μ∣>3σ)≤0.003
3.2.4 箱型图
Q1: 上四分位数(75%位数)
Q3: 下四分位数(25%位数)
IOR: Q1 - Q3
最大估计值: Q 1 + k ∗ I O R Q1 + k * IOR Q1+k∗IOR
最小估计值: Q 3 − k ∗ I O R Q3 - k * IOR Q3−k∗IOR
k k k 代表对异常值的容忍度,一般取 k = 1.5 k = 1.5 k=1.5