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

基于LOF算法的异常值检测

目录

  • LOF算法简介
  • Sklearn官网LOF算法应用实例1
  • Sklearn官网LOF算法应用实例2
  • 基于LOF算法鸢尾花数据集异常值检测
    • 读取数据
    • 构造数据
    • 可视化,画出可疑异常点
    • LOF算法

LOF算法简介

LOF异常检测算法是一种基于密度的异常检测算法,基于密度的异常检测算法主要思想是:给定的样本数据集,对于数据集中的点,如果其局部领域的点都很密集,那么这个点大概率为正常的数据点;而如果这个点距离其相邻的点距离较远,也就是在一个局部领域的点密度较小,那么这个点可能为异常点。

Sklearn官网LOF算法应用实例1

在这里插入图片描述
clf.negative_outlier_factor_输出:array([ -0.98214286, -1.03703704, -73.36970899, -0.98214286])
绝对值越大于1则越有可能是异常。很明显101.1最有可能是异常。

Sklearn官网LOF算法应用实例2

导入包:
在这里插入图片描述
构造二维数据,以及一些离群点,并可视化:
在这里插入图片描述
LOF算法:
在这里插入图片描述
根据X_scores可视化,红色圈越大,该点越可能是异常点:
在这里插入图片描述

基于LOF算法鸢尾花数据集异常值检测

import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from sklearn.neighbors import LocalOutlierFactor
from sklearn.datasets import load_iris
matplotlib.rcParams['font.sans-serif']=['SimHei']   # 用黑体显示中文
%matplotlib inline

读取数据

iris_data = load_iris()
iris_data.data[0:5,:]
array([[5.1, 3.5, 1.4, 0.2],[4.9, 3. , 1.4, 0.2],[4.7, 3.2, 1.3, 0.2],[4.6, 3.1, 1.5, 0.2],[5. , 3.6, 1.4, 0.2]])
# 数据规模
iris_data.data.shape
(150, 4)
# 特征
iris_data.feature_names
['sepal length (cm)','sepal width (cm)','petal length (cm)','petal width (cm)']
# 查看类别
pd.DataFrame(iris_data.target).value_counts(), iris_data.target_names
(0    501    502    50dtype: int64,array(['setosa', 'versicolor', 'virginica'], dtype='<U10'))

构造数据

这里为方便可视化,只选取iris数据集中 ‘sepal width (cm)’ 和 ‘petal width (cm)’ 两个特征

data = iris_data.data[:, [1, 3]]
data = pd.DataFrame(data, columns=iris_data.feature_names[1:4:2])#['sepal width (cm)','petal width (cm)']
data.head()
sepal width (cm)petal width (cm)
03.50.2
13.00.2
23.20.2
33.10.2
43.60.2

可视化,画出可疑异常点

# 可视化两个特征'sepal width (cm)','petal width (cm)'
data.plot(kind="scatter", x="sepal width (cm)", y="petal width (cm)", c='r', figsize=(6,2))## 圈出可疑的异常点
plt.plot(2.3, 0.3, "ko", markersize=20, markerfacecolor="none")
plt.annotate("可能异常点", xy=(2.3, 0.48), xytext=(2, 0.75), arrowprops=dict(facecolor="blue"))plt.plot(3.8, 2.1, "ko", markersize=30, markerfacecolor="none")
plt.annotate("可能异常点", xy=(3.9, 1.9), xytext=(4, 1.5), arrowprops=dict(facecolor="blue"))plt.plot(4.4, 0.4, "ko", markersize=20, markerfacecolor="none")
plt.annotate("可能异常点", xy=(4.3, 0.5), xytext=(4.5, 1), arrowprops=dict(facecolor="blue"))
Text(4.5, 1, '可能异常点')

在这里插入图片描述

LOF算法

lof = LocalOutlierFactor(n_neighbors=30, metric="minkowski")
outlier_pre = lof.fit_predict(data.values)
"异常值数量:%d"%np.sum(outlier_pre==-1)
'异常值数量:7'
# 异常点
data[outlier_pre==-1]
sepal width (cm)petal width (cm)
154.40.4
334.20.2
412.30.3
602.01.0
1093.62.5
1173.82.2
1313.82.0
scores = lof.negative_outlier_factor_# negative_outlier_factor_数值越大越正常;数值越小越不正常,可能是离群点scores = (scores.max()-scores)/(scores.max()-scores.min())
data.plot(kind="scatter", x="sepal width (cm)", y="petal width (cm)", c='r', figsize=(6,2))
plt.scatter(data["sepal width (cm)"], data["petal width (cm)" ], s=800*scores, edgecolors='k', facecolor="none",label="score")

在这里插入图片描述

相关文章:

基于LOF算法的异常值检测

目录 LOF算法简介Sklearn官网LOF算法应用实例1Sklearn官网LOF算法应用实例2基于LOF算法鸢尾花数据集异常值检测读取数据构造数据可视化&#xff0c;画出可疑异常点LOF算法 LOF算法简介 LOF异常检测算法是一种基于密度的异常检测算法&#xff0c;基于密度的异常检测算法主要思想…...

软考-系统可靠性原理

系统可靠性原理...

【Unity】【Amplify Shader Editor】ASE入门系列教程第二课 硬边溶解

黑色为0,白色为1 新建材质&#xff08;不受光照影响&#xff09; 拖入图片 设置 添加节点&#xff1a; 快捷键&#xff1a;K 组合通道&#xff1a;快捷键 V 完成图...

对神经网络理解的个人记录

对神经网络理解的个人记录 一、 神经网络为什么可以拟合函数、非线性函数二、 用向量表示特征(语音、文本、视频)。然后如何计算向量之间的相似度2.1 欧氏距离的计算2.2 点积运算2.3 余弦相似度计算一、 神经网络为什么可以拟合函数、非线性函数 第一个小短片:讲解神经网络为什…...

华为数通方向HCIP-DataCom H12-821题库(单选题:61-80)

第61题 关于 BGP 的Keepalive报文消息的描述,错误的是 A、Keepalive周期性的在两个BGP邻居之间发送 B、Keepalive报文主要用于对等路由器间的运行状态和链路的可用性确认 C、Keepalive 报文只包含一个BGP数据报头 D、缺省情况下,Keepalive 的时间间隔是180s 答案&#xff…...

Unity带有时效性的数据存储

Unity带有时效性的数据存储 引言 在Unity项目开发中&#xff0c;有时候会遇到带有时效性的数据存储&#xff0c;比如账号信息、token等&#xff0c;都是具有时效性的&#xff0c;这时候我们就需要在这些信息过期的时候将对应的信息作废。 实现 这个功能怎么实现呢&#xff…...

vue 子组件 emit传递事件和事件数据给父组件

1 子组件通过emit 函数 传递事件名init-complete 和 数据dateRange this.$emit(init-complete, dateRange) 2 父组件 创建方法 接收数据 handleInitComplete(dateRange) {} 3 父组件 创建的方法 和 子组件事件绑定 <component :is"currentComponent" :passOb…...

Zenity 简介

什么使 Zenity Zenity 是一个开源的命令行工具&#xff0c;它提供了一种简单的方式来创建图形化的用户界面&#xff08;GUI&#xff09;对话框&#xff0c;以与用户进行交互。它基于 GTK 库&#xff0c;可以在 Linux 和其他 UNIX-like 系统上使用。 Zenity 可以通过命令行或脚…...

c# 数组反转

一个数组是{1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6}&#xff0c;把它变成{6&#xff0c;5&#xff0c;4&#xff0c;3&#xff0c;2&#xff0c;1} 1.创建一个和原数组长度类型一样的数组来接收反转的数据 private static void Main(string[] a…...

CSS学习笔记01

CSS笔记01 什么是CSS CSS&#xff08;Cascading Style Sheets &#xff09;&#xff1a;层叠样式表&#xff0c;也可以叫做级联样式表&#xff0c;是一种用来表现 HTML 或 XML 等文件样式的计算机语言。字体&#xff0c;颜色&#xff0c;边距&#xff0c;高度&#xff0c;宽度…...

数据结构,队列,顺序表队列,链表队列

队列是一种常见的数据结构&#xff0c;它具有先进先出&#xff08;First-In-First-Out&#xff0c;FIFO&#xff09;的特性&#xff0c;类似于排队等候的场景。以下是队列的要点&#xff1a; 1. 定义&#xff1a;队列是一种线性数据结构&#xff0c;由一系列元素组成&#xff…...

Webgl利用缓冲区绘制三角形

什么是attribute 变量 它是一种存储限定符&#xff0c;表示定义一个attribute的全局变量&#xff0c;这种变量的数据将由外部向顶点着色器内传输&#xff0c;并保存顶点相关的数据&#xff0c;只有顶点着色器才能使用它 <!DOCTYPE html> <html lang"en"&g…...

正则表达式应用

正则表达式应用 正则匹配以{开头&#xff0c;以}结尾 \{.*?\}正则匹配以[开头&#xff0c;以]结尾 \[.*?\]校验数字的表达式 数字&#xff1a;^[0-9]*$n位的数字&#xff1a;^\d{n}$至少n位的数字&#xff1a;^\d{n,}$m-n位的数字&#xff1a;^\d{m,n}$零和非零开头的数字…...

9.4 【C语言】用指针处理链表

9.4.1 什么是链表 它是动态地进行存储分配的一种结构。 链表中各元素在内存中的地址是不连续的。要找某一元素&#xff0c;必须先找到上一个元素&#xff0c;根据它提供的下一元素地址才能找到下一个元素。 如果不提供“头指针”&#xff0c;则整个链表无法访问。 9.4.2 建…...

后端面试话术集锦第四篇:rabbitmq面试话术

🚗后端面试集锦目录 💖后端面试话术集锦第一篇:spring面试话术💖 💖后端面试话术集锦第二篇:spring boot面试话术💖 💖后端面试话术集锦第三篇:spring cloud面试话术💖 💖后端面试话术集锦第四篇:ElasticSearch面试话术💖 💖后端面试话术集锦第五篇:r…...

Linux目录结构与文件管理(01) (三)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、Linux 系统的组成 二、目录结构 根目录 三、文件管理 目录管理 总结 前言 今天主要学习了Linux的目录结构&#xff0c;主要是一些命令的含义和用法&am…...

OpenCV为老照片,黑白照片增加色彩

Colorful Image Colorization 图片的颜色上色&#xff0c;主要使用到了CNN卷积神经网络&#xff0c;作者在ImageNet数据集上进行了大量的训练&#xff0c;并将此问题使用在分类任务中&#xff0c;以解决问题的潜在的不确定性&#xff0c;并在训练时使用颜色重新平衡的损失函数方…...

HTML之VSCode简单配置与创建

目录 插件下载 然后输入源码&#xff1a; 使用 效果 插件下载 下载这个插件后可以直接运行&#xff1a; 然后创建一个文件&#xff1a; 然后输入源码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"…...

2023亿发一体化新零售POS收银解决方案,打造连锁门店经营新未来

在零售业不断演变的今天&#xff0c;门店形态繁多&#xff0c;收银环节的共通性与差异性并存。传统的通用解决方案已不适应多样化的业态需求&#xff0c;而在线上线下一体化的时代背景下&#xff0c;全渠道经营能力也成为商家的迫切需求。 一体化新零售POS收银系统&#xff0c…...

Android ---使用Jenkins 打包release版本不能安装或者安装后不显示APP

大家在用 Jenkins的时候&#xff0c;是不是会觉得很爽&#xff0c;因为他在用的过程中&#xff0c;是无脑的&#xff0c;毕竟一键触发&#xff01;&#xff01;&#xff01;&#xff01; 这边记录一个昨天&#xff0c;今天遇到的一个坑货问题&#xff0c;别人提交了所有代码&am…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

Kafka主题运维全指南:从基础配置到故障处理

#作者&#xff1a;张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1&#xff1a;主题删除失败。常见错误2&#xff1a;__consumer_offsets占用太多的磁盘。 主题日常管理 …...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

云原生周刊:k0s 成为 CNCF 沙箱项目

开源项目推荐 HAMi HAMi&#xff08;原名 k8s‑vGPU‑scheduler&#xff09;是一款 CNCF Sandbox 级别的开源 K8s 中间件&#xff0c;通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度&#xff0c;为容器提供统一接口&#xff0c;实现细粒度资源配额…...