当前位置: 首页 > news >正文

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
http://www.dtcms.com/a/328587.html

相关文章:

  • SQL连接操作全解析:从入门到精通
  • 某跨国金融机构法律法规自动文本摘要(ATS/文本大意提取)功能规划
  • 嵌入式第二十六天(文件IO相关操作)
  • [Robotics_py] docs | 机器人状态/位姿 | 环境表示_栅格地图
  • 准则 :用“检测到什么”的方式来编写需求条件
  • Python 异常捕获
  • 为什么我换了项目管理软件?
  • 如何在 Odoo 18 管理产品文档手册
  • Redis面试题及详细答案100道(16-32) --- 数据类型事务管道篇
  • 第23章,景深:技术综述
  • 软件测试之功能测试
  • 嵌入式系统学习Day17(文件编程)
  • (树形 dp、数学)AT_dp_v Subtree 题解
  • 架构设计:设计原则
  • 第十一节:加载外部模型:GLTF/OBJ格式解析
  • [MySQL数据库] 数据库简介
  • 【虚拟机】VMwareWorkstation17Pro安装步骤
  • Tricentis Tosca 2025.1 LTS 系统要求
  • 华为OD最新机试真题-国际移动用户识别码(IMSI)匹配-(C卷)
  • Terminal Security: Risks, Detection, and Defense Strategies
  • [激光原理与应用-255]:理论 - 几何光学 - CCD成像过程
  • 维文识别技术:将印刷体或手写体的维文文本转化为计算机可处理的数字信息
  • 网络协议组成要素
  • 网络协议——HTTP协议
  • Java锁机制全景解析:从基础到高级的并发控制艺术
  • Navicat更改MySql表名后IDEA项目启动会找原来的表
  • 树结构无感更新及地图大批量点位上图Ui卡顿优化
  • C++ 类型擦除技术:`std::any` 和 `std::variant` 的深入解析
  • 【C++】哈希
  • 终端安全与网络威胁防护笔记