云计算百科
云计算领域专业知识百科平台

Sklearn 机器学习 异常值检测 局部异常因子算法LOF

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖

在这里插入图片描述

本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】


在这里插入图片描述

Sklearn 机器学习异常值检测:局部异常因子算法(LOF)

在实际的机器学习任务中,异常值检测(Outlier Detection)是一个不可或缺的步骤。无论是用于信用卡欺诈识别、网络入侵检测,还是工业设备监控,发现“不合群”的数据点 都是理解系统异常的第一步。

今天,我们将深入介绍 Sklearn 中的 局部异常因子(Local Outlier Factor,简称 LOF) 算法,并通过丰富的示例与可视化,演示它在二维空间中识别局部异常的强大能力。


📌 一、什么是局部异常因子(LOF)?

核心思想解析

局部异常因子(LOF)是一种 基于密度 的异常值检测算法,它不单纯依赖样本的距离或单维度统计,而是通过分析某个点与其邻居之间的“局部密度差异”来判断是否异常。

通俗来讲,LOF 计算一个点的密度与邻居点密度的比值。如果该点密度显著低于邻居(比值远大于 1),则该点被视为“局部异常”。

与传统方法的对比

方法
是否基于密度
是否考虑邻域结构
是否支持多维数据
高维表现
Z-score ❌ 否 ❌ 否 ✅ 支持 ❌ 效果差(逐维独立分析)
IQR ❌ 否 ❌ 否 ✅ 支持 ❌ 效果差(依赖中位数)
LOF ✅ 是 ✅ 是 ✅ 支持 ✅ 结合降维更稳定

🔍 二、Sklearn 中的 LOF 实现

Sklearn 提供了 sklearn.neighbors.LocalOutlierFactor 类来实现 LOF 检测。支持无监督异常识别、也支持“半监督”形式(仅使用正常样本进行模型训练,用于预测未来新样本是否异常)。

导入必要库

import numpy as np
import matplotlib.pyplot as plt
from sklearn.neighbors import LocalOutlierFactor


🧪 三、构造示例数据并可视化

构造二维样本

# 构造正常数据(聚集在 2,2 附近)
X_inliers = 0.3 * np.random.randn(100, 2) + [2, 2]

# 构造离群数据(离群)
X_outliers = np.random

赞(0)
未经允许不得转载:网硕互联帮助中心 » Sklearn 机器学习 异常值检测 局部异常因子算法LOF
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!