异常值测算
方法 1:基于规则的检测
设定阈值,如果数据点高于或低于阈值,则视为异常值。
例如,年龄范围为 1865 岁,年龄低于 18 岁或高于 65 岁的数据点被标记为异常值。
方法 2:基于统计的检测
计算数据点的标准差或变异系数。
离均值超过一定倍数(例如 2 倍或 3 倍)的数据点被标记为异常值。
方法 3:机器学习异常值检测
训练机器学习模型来识别正常数据模式。
偏离这些模式的数据点被标记为异常值。
异常值处理
1. 检查数据并确定异常值的原因
查看排除异常值后的数据分布,以了解潜在的模式或错误。
寻找与异常值相关的数据输入或转换错误。
2. 处理异常值的方法
删除异常值:如果异常值是错误或无关的,则可以将其删除。
校正异常值:如果异常值是有价值的但需要校正,则可以根据相关信息或知识对其进行修正。
替换异常值:可以将异常值替换为分布相似的近邻值。
使用异常值:异常值有时可能包含有价值的信息,可以将其作为独立的研究对象。
3. 考虑异常值的影响
评估异常值对数据分析和结论的影响。
如果异常值大幅影响结果,则可能需要进一步调查或调整分析方法。
4. 报告异常值处理
在最终报告中记录异常值处理方法和原因。
确保透明度并允许读者评估异常值处理的合理性。
异常值处理
异常值是与数据集其他部分明显不同的数据点。它们可能是由于错误、噪音或不寻常的事件造成的。如果不加以处理,异常值会对数据分析和建模产生误导性影响。
处理异常值的方法:
1. 检测异常值
箱线图:绘制出数据的四分位数和异常值(超过上下四分位距 1.5 倍的数据点)。
距离度量:使用欧氏距离或马氏距离来衡量每个数据点与质心的距离。异常值具有较大的距离度量。
统计检验:对数据进行统计检验,例如格拉布斯检验或肖维尼尔检验,以识别显著偏离正常分布的异常值。
2. 处理异常值
删除异常值:如果异常值是由于错误或噪音,则可以将其删除。
调整异常值:如果异常值代表真实但极端的事件,则可以将其值调整为更接近数据集其他部分。
转化数据:使用对数或平方根等变换可以将异常值的影响最小化。
鲁棒估计器:这些估计器对异常值不敏感,可以提供更准确的结果(例如,中位数和四分位数范围)。
3. 考虑异常值的影响
处理异常值后,重要的是考虑其对数据分析和建模的影响。
影响分类:异常值可能会导致错误分类,如果用于训练机器学习模型。
影响回归:异常值可能会导致模型过拟合并降低其预测性能。
影响集群:异常值可能会扭曲集群算法并导致不准确的集群结构。
最佳实践:
使用多种方法检测异常值。
考虑异常值删除或调整的潜在风险和好处。
告知利益相关者异常值处理操作,并解释其对分析的影响。
监控数据随时间变化以识别新出现的异常值。
无监督异常值检测方法
基于距离的异常值检测:
k近邻 (kNN)
局部异常因子 (LOF)
孤立森林 (iForest)
基于密度的方法:
密度峰值聚类 (DBSCAN)
局部密度估计 (LDE)
基于聚类的方法:
层次聚类
k 均值聚类
谱聚类
基于统计的方法:
zscore 检验
Grubbs 检验
Dixon 检验
半监督异常值检测方法
标签传播 (Label Propagation): 从已标记的数据中推断未标记数据的标签。
半监督支持向量机 (SemiSupervised SVM): 利用已标记的数据调整 SVM 分类边界。
图拉普拉斯 (Graph Laplacian): 在数据点之间的相似性图上构造拉普拉斯算子。
监督异常值检测方法
支持向量机 (SVM): 将数据点分类为正常或异常。
决策树: 使用决策树将数据点分类为正常或异常。
随机森林 (Random Forest): 从决策树集合中进行分类。
异类学习 (OneClass Support Vector Machine): 仅基于正常数据学习分类模型。
其他异常值检测方法
上下文异常值检测: 考虑数据点之间的上下文关系。
时间序列异常值检测: 专门针对时间序列数据。
基于域的自适应异常值检测: 跨越不同域的数据。
异常值可能导致以下问题:
数据分析误差:
异常值可以夸大或掩盖数据趋势和模式,导致错误的结论。
它们可以使统计分析失真,例如均值、标准差和回归线。
机器学习模型偏差:
异常值可以影响机器学习模型的训练,导致偏差或过度拟合。
它们可以降低模型的预测准确性,因为模型可能会过多地依赖异常值。
模型鲁棒性下降:
如果模型没有经过异常值处理,它可能会变得不那么鲁棒,并且在遇到新异常值时表现不佳。
异常值可以导致模型不稳定,在不同数据集上产生不同的结果。
错误决策:
基于包含异常值的数据进行的决策可能会受到影响。
异常值可能会导致错误分类、异常检测失败和预测偏差。
其他问题:
数据可视化失真: 异常值可以使数据可视化难以理解,因为它们会扭曲轴度量。
数据处理困难: 异常值可能会使数据清理和转换任务变得复杂,因为它们需要特殊处理。
偏好: 异常值可以引入偏好,因为它们可能代表一组不代表整体群体的小部分样本。