异常值检测
不同的方法适用于不同类型的数据和场景。选择合适的异常值检测方法应考虑以下因素:
- 数据类型(连续型、离散型、分类型等)。
- 数据分布特征(正态分布、非正态分布、多维数据等)。
- 数据规模和维度(小规模、低维数据 vs. 大规模、高维数据)。
- 对计算效率和解释性的要求。
方法 | 描述 | 数据要求 | 适用数据 | 优点 | 缺点 |
---|---|---|---|---|---|
标准差法(3σ原则) | 通过均值和标准差,确定超过均值一定标准差范围的数据为异常值 | 适用于正态分布或近似正态分布的连续数据 | 连续型数据 | 简单易用,适合大多数正态分布数据集 | 对非正态分布数据效果差,易受极端异常值影响 |
四分位距法(IQR) | 使用四分位数和四分位距定义异常值范围 | 适用于分布未知或非正态分布数据 | 连续型数据和有序类别型数据 | 对非正态分布数据和含有极端值的数据稳健 | 不适合大量离群值的数据,计算复杂度稍高 |
欧氏距离 | 计算数据点与数据中心的距离,超过阈值则为异常值 | 适用于多维连续数据 | 多维连续型数据 | 适用于高维数据,考虑数据全局分布 | 计算量大,不适合高维稀疏数据(维度灾难) |
马氏距离 | 使用协方差矩阵计算数据点到均值的距离,考虑变量间相关性 | 适用于多维正态分布数据 | 多维连续型数据 | 考虑变量间相关性,适合检测多变量异常值 | 计算复杂,需协方差矩阵,数据非正态分布时不适用 |
基于回归分析 | 利用回归模型预测数据,与实际值对比,差异超过阈值则为异常值 | 数据需具备明确输入-输出关系 | 连续型数据和分类型数据 | 适合检测线性和非线性关系中的异常点 | 模型选择和参数设定对结果影响大,不适合无明显关系数据 |
局部异常因子(LOF) | 通过数据点在局部邻域中的密度比较计算局部异常因子,检测局部异常值 | 适用于高维和稀疏数据 | 连续型和多维数据 | 可检测局部异常点,适用于高维数据 | 计算复杂度高,参数选择(邻域大小k)敏感 |
孤立森林 | 构建决策树隔离数据点,易被隔离的数据点为异常值 | 适用于各种数据类型,无需归一化 | 连续型、离散型和混合型数据 | 计算 |