异常检测方法
1 异常检测方法适用范围
什么时候我们需要异常点检测算法呢?常用的有三种情况。
- 1.做数据预处理的时候需要对异常的数据做过滤,防止对归一化等处理的结果。
- 2.对没有标记输出的特征数据做筛选,找出异常的数据。
- 3.对有标记输出的特征数据做二分类时,由于某些类别的训练样本非常少,类别严重不平衡,此时也可以考虑用非监督的异常点检测算法来做。
在以上场景中,异常的数据量都是很少的一部分,因此诸如:SVM,逻辑回归等分类算法,都不适用,因为监督学习算法适用于有大量的正向样本,也有大量的负向样本,有足够的样本让算法去学习其特征,且未来新出现的样本与训练样本分布一致。
2 基于统计学的方法来处理异常数据
(1) 标准差:

(2) 箱型图:

这两种方式源自统计学概念,适用于一维数据集。
3 基于聚类的方法来做异常点检测
如:k-means、层次聚类、DBSCAN集群等方法,这类方法试图找到数据的正常区域,然后将所定义区域外的任何值视为异常值,通常如果我们聚类后发现某些聚类簇的数据样本量比其他簇少很多,而且这个簇里数据的特征均值分布之类的值和其他簇也差异很大,这些簇里的样本点大部分时候都是异常点。例如:下图为k-means的一个聚类过程,其中蓝色点可认为是异常点。

如:DBSCAN算法(Density-Based Spatial Clustering of Applications with Noise)的输入和输出如下,对于无法形成聚类簇的孤立点,即为异常点(噪声点)。
- 输入:数据集,邻域半径Eps,邻域中数据对象数目阈值MinPts;
- 输出:密度联通簇

「下面是一些常见的聚类算法及其基本原理」:
「K-means聚类算法」:K均值聚类是最常用的聚类算法之一。其基本原理是通过计算数据样本与聚类中心之间的距离来确定样本的归属,并将样本分配到最近的聚类中心所代表的簇。然后,根据已分配的样本重新计算聚类中心的位置,迭代更新样本的归属和聚类中心的位置,直到达到停止条件。
「层次聚类算法」:层次聚类是一种自下而上或自上而下的聚类方法。其基本原理是通过计算样本之间的相似性或距离,将相似度高的样本逐步合并为越来越大的簇或者将所有样本初始为一个簇,然后逐步分割为越来越小的簇。这种逐步合并或分割的过程称为聚类树、树状图或者树状结构。
「密度聚类算法」(如DBSCAN):密度聚类是一种基于样本密度的聚类方法。其基本原理是通过确定样本周围邻域内的密度来判断样本是否属于一个簇。密度聚类可以自动发现任意形状和大小的簇,并且对噪声和离群值具有较好的鲁棒性。
4 第三类是基于专门的异常点检测算法来做
这类方法是明确的孤立异常值,而不是通过给每个点分配一个分数来构造正常的点和区域。它充分利用了这样一个事实:异常值只占数据的小部分,并且它们有与正常值大不相同的属性。该算法适用于高维数据集,并且被证实是一种非常有效的检测异常值的方法。
以iForest 算法(Isolation Forest,孤立森林)为例:由于异常数据较小且特征值和正常数据差别很大。因此,构建 iTree的时候,异常数据离根更近,而正常数据离根更远。当然,一颗ITree的结果往往不可信,iForest算法通过多次抽样,构建多颗二叉树。最后整合所有树的结果,并取平均深度作为最终的输出深度,由此计算数据点的异常分支。

由于在业务场景里,通常是实时流数据。在面对流式数据时,孤立森林会有以下几点问题:
- 数据是随着时间的流逝而产生的,孤立森林会遗漏时间这个维度;
- 孤立森林的每棵树在建立候选样本集合时,采用的是针对整体样本的无放回抽样,而在流式数据中,我们需要每次对最新的数据进行采样,构建出数据集;
- 孤立森林在面对流式数据时,每次来一个点都要重新去构建树,整体耗时以及复杂度较高;
因此后续又在 iForest 算法基础上提出了RRCF(Robust Random Cut Forest,稳健随机采伐森林).
参考:
1 异常检测算法-RRCF(Robust Random Cut Forest) | 秃头少年的boke (zuoxiang95.github.io)
2 独家 | 每个数据科学家应该知道的五种检测异常值的方法(附Python代码)-腾讯云开发者社区-腾讯云 (tencent.com)
3 官方rrcf代码:https://github.com/kLabUM/rrcf
4 14种异常检测方法汇总(附代码)!-腾讯云开发者社区-腾讯云 (tencent.com)
相关文章:
异常检测方法
1 异常检测方法适用范围 什么时候我们需要异常点检测算法呢?常用的有三种情况。 1.做数据预处理的时候需要对异常的数据做过滤,防止对归一化等处理的结果。2.对没有标记输出的特征数据做筛选,找出异常的数据。3.对有标记输出的特征数据做二…...
在网站建设时,如何选择适合自己的网站模版
可以根据以下几个地方选择适合的网站模板 1.公司的核心业务 根据公司的业务内容来确定网站展示的内容之一,不同的业务内容可以有不同的展示方式,以此来确定网站的展示风格之一,公司肯定是要有明确的业务内容,并且能够在网站…...
rabbitmq单机安装及性能测试
RabbitMQ单机安装及性能测试 本文使用CentOS7.9安装RabbitMQ单机环境,并进行性能测试。 1. 安装RabbitMQ RabbitMQ依赖Erlang,版本配套关系参考官网:https://www.rabbitmq.com/docs/which-erlang。 本文安装RabbitMQ3.8.21,Erlang版本要求…...
字节流和字符流的区别
字节流和字符流的区别 字节流 **数据单位:**Byte为单位进行数据传输和处理。 **应用场景:**适用于所有类型的文件,包括视频、视频、音频等二进制文件,以及文本文件。 比如InputStrem和子类(FileInputStream&#x…...
【仿真建模-anylogic】EventRate原理解析
Author:赵志乾 Date:2024-06-13 Declaration:All Right Reserved!!! 1. 类图 2. 原理解析 EventOriginator是Anylogic中各类事件的父类,对外暴露的接口主要有: 函数功能boolean isActive()判定…...
Linux安装Qt5.14.2
下载 qt 5.14.2下载网址 下载qt-opensource-linux-x64-5.14.2.run Linux系统下载.run文件(runfile文件),windows系统下载.exe文件,mac系统下载.dmg文件。 md5sums.txt中是各个文件对应的MD5校验码。 验证MD5校验码 md5sum是li…...
Linux so文件无法找到及某条命令找不到的解决办法
前言 在一些定制软件中可能会自带so文件。或者自带一些二进制命令。 这时会如果运行某个程序会发生 **.so 文件无法找到的错误。 以及 * 某条命令无法找到的错误。 比如像是下面这样 解决办法: so文件无法找到 通过往 LD_LIBRARY_PATH 变量中追加路径来告诉程序…...
工业交换机的供电功率配置
在工业领域中,交换机作为网络设备中的重要组成部分,其供电功率配置必不可少。工业交换机的供电功率配置不仅关系到设备的稳定运行,还直接影响到整个工业生产系统的效率和安全性。因此,在选择工业交换机时,必须对供电功…...
实现一个vue js小算法 选择不同的时间段 不交叉
以上图片选择了时间段 现在需要判断 当前选择的时间段 不能够是 有交叉的所以现在需要循环判断 //判断时间段是否重叠交叉 export function areIntervalsNonOverlapping(intervals:any) {// 辅助函数:将时间字符串转换为从当天午夜开始计算的分钟数function conver…...
GStreamer安装——iOS
安装iOS开发 支持从iOS6开始的所有版本 先决条件 iOS开发需要下载Xcode和iOSSDK。Xcode 可以在App Store或 这里 iOSSDK,如果它还没有包含在您的Xcode版本中, 可以从下载选项卡下的Xcode首选项菜单下载。 最低要求iOS版本为6.0。的最低要求版本 Xcode…...
【云计算】Docker部署Nextcloud网盘并实现随地公网远程访问
配置文件 切换root权限,新建一个nextcloud的文件夹,进入该目录,创建docker-compose.yml [cpslocalhost ~]$ su root Password: 666666 [rootlocalhost cps]# ls Desktop Documents Downloads Music Pictures Public Templates Vide…...
贪心+构造,CF1153 C. Serval and Parenthesis Sequence
一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1153C - Codeforces 二、解题报告 1、思路分析 对于括号匹配问题我们经典做法是左括号当成1,右括号当成-1 那么只要任意前缀非负且最终总和为0那么该括号序列就是合法 对于本题&…...
网络安全等级保护基本要求 第1部分:安全通用要求
基本要求 第三级 安全物理环境 物理位置选择 a) 机房场地应选择在具有防震、防风和防雨等能力的建筑内; b) 机房场地应避免设在建筑物的顶层或地下室,否则应加强防水和防潮措施 物理访问控制 a) 机房出入口应配置电子门禁系统,控制、鉴…...
ubuntu22.04防火墙策略
1. 安装和配置UFW 1.1 安装UFW 如果UFW尚未安装,可以使用以下命令进行安装: sudo apt update sudo apt install ufw1.2 启用UFW 启用UFW并允许SSH流量,以防止自己被锁定在系统之外: sudo ufw allow OpenSSH sudo ufw enable2…...
selenium的使用教程
Selenium简介 Selenium是一个用于Web应用程序自动化测试工具。它支持多种浏览器,可以录制、编辑和运行自动化测试。通过Selenium,我们可以编写脚本来模拟用户在浏览器中的操作,从而进行功能测试。 二、安装与配置 安装Selenium库 使用pip安…...
Centos: ifconfig command not found且ip addr查不到服务器IP
前段时间部门新派发了服务器,让我过去使用U盘装机,装完后使用ifconfig查不到服务器IP地址,ip addr也是查不到 ifconfig:command not found (这两个图片先用虚拟机的替代一下) 在网上找资料(CSDN,博客园,知乎…...
WPF学习(2)--类与类的继承2-在窗口的实现
一、代码分析 1.Animal.cs 1.1 代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace AnimalNamespace {public class Animal{public string Name { get; set; }public int Age { get; set…...
Docker面试整理-Docker容器与虚拟机比较,安全性如何?
Docker 容器与传统的虚拟机(VM)在许多方面都不同,其中之一是安全性。每种技术都有其特定的安全特点和潜在的风险。了解这些差异可以帮助你做出更好的决策,适当地使用它们来保障系统安全。 容器与虚拟机的安全性对比: 1. 隔离性: ● 虚拟机:提供较高的隔离性。每个虚拟机…...
Python私教张大鹏 Vue3整合AntDesignVue之Checkbox 多选框
何时使用 在一组可选项中进行多项选择时; 单独使用可以表示两种状态之间的切换,和 switch 类似。区别在于切换 switch 会直接触发状态改变,而 checkbox 一般用于状态标记,需要和提交操作配合。 案例:多选框组件 核心…...
flutter 导出iOS问题3
更新flutter版本后 macminihaomacMiniaodeMini SocialIM % flutter --version Flutter 3.7.12 • channel stable • https://github.com/flutter/flutter.git Framework • revision 4d9e56e694 (1 year, 2 months ago) • 2023-04-17 21:47:46 -0400 Engine • revision 1a6…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
