自主异常检测算法(Matlab代码实现)

news2024/11/27 22:39:14

 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🌈3 Matlab代码+数据

🎉4 参考文献


💥1 概述

文献来源:

本文介绍了一种在实证数据分析(EDA)框架下自主异常检测的新方法。这种方法完全由数据驱动,没有阈值。采用非参数EDA估计器,该方法能够基于数据的相互分布和集成特性,客观自主检测异常。该方法首先根据两个EDA标准识别潜在的异常,然后将其划分为无形状的非参数数据云。最后,它识别与每个数据云(本地)有关的异常。基于综合数据集和基准数据集的数值算例验证了所提方法的有效性和有效性。 

📚2 运行结果

 部分代码:

%% Output
%%    Output.IDX           - The indices of the identified anomalies
%%    Output.SystemParams  - The identified anomalies


data=Input.Data;
Lorigin=size(data,1);
Aver=mean(data,1);
X=mean(sum(data.^2,2));
dist1=pdist(data,'euclidean');
Averdist=mean(dist1(find(dist1<=mean(dist1(find(dist1<=mean(dist1)))))));
[UD,J,K]=unique(data,'rows');
F = histc(K,1:numel(J));
[L,W]=size(UD);
GlobalDensity=F./(ones(L,1)+sum((UD-repmat(Aver,L,1)).^2,2)./((X-sum(Aver.^2))));
GlobalDensity=GlobalDensity(K,:);
dist=pdist2(UD,data);
LocalDensity=zeros(L,1);
LPotenAbnorm=round(Lorigin/18);
for i=1:1:L
    s0=find(dist(i,:)<Averdist);
    if length(s0)>1
        data0=data(s0,:);
        Ave0=mean(data0,1);
        DELTA=mean(sum(data0.^2,2))-sum(Ave0.^2);
        LocalDensity(i)=F(i)/(1+sum((UD(i,:)-Ave0).^2)/DELTA)*(length(s0)-1)/(L);
    else
        LocalDensity(i)=0;
    end
end
LocalDensity=LocalDensity(K,:);
[~,IDX1] = sort(LocalDensity,'ascend');
[~,IDX2] = sort(GlobalDensity,'ascend');
IDPA=unique([IDX1(1:1:LPotenAbnorm);IDX2(1:1:LPotenAbnorm)]);
dataPA=data(IDPA,:);
[~,~,IDX,Mnumber,~]=FormingDataCloud(dataPA);
if isempty(Mnumber(Mnumber~=1))~=1
AMN=mean(Mnumber(Mnumber~=1));
else
    AMN=2;
end
seq=find(Mnumber<=AMN);
AbnoID=[];
for i=1:1:length(seq)
    seq0=find(IDX==seq(i));
    AbnoID=[AbnoID;seq0];
end
AbnoIDX=sort(IDPA(AbnoID),'ascend');
AbnoData=data(AbnoIDX,:);
Output.IDX=AbnoIDX;
Output.Anomaly=AbnoData;
end
function [NoC,center,IDX,Mnumber,LocalX]=FormingDataCloud(data)
%%
[L,W]=size(data);
%%
[UD,J,K]=unique(data,'rows');
F = histc(K,1:numel(J));
LU=length(UD(:,1));
%%
dist=pdist(UD,'euclidean');
dist=squareform(dist).^2;
unidata_pi=sum(dist.*repmat(F',LU,1),2);
unidata_density=unidata_pi'*F./(unidata_pi.*2*L);
unidata_glodensity=unidata_density.*F;
[~,pos]=max(unidata_glodensity);
seq=1:1:LU;
seq=seq(seq~=pos);
Rank=zeros(LU,1);
Rank(1,:)=pos;
for i=2:1:LU
    [~,pos0]=min(dist(pos,seq));
    pos=seq(pos0);
    Rank(i,:)=pos;
    seq=seq(seq~=pos);
end
UD1=UD(Rank,:);
UGDen=unidata_glodensity(Rank);
F1=F(Rank);
Gradient=zeros(2,LU-2);
Gradient(1,:)=UGDen(1:1:LU-2)-UGDen(2:1:LU-1);
Gradient(2,:)=UGDen(2:1:LU-1)-UGDen(3:1:LU);
seq2=2:1:LU-1;
seq1=find(Gradient(1,:)<0&Gradient(2,:)>0);
if Gradient(2,LU-2)<0
    seq3=[1,seq2(seq1),LU];
else
    seq3=[1,seq2(seq1)];
end
%%
LU2=length(seq3);
UD2=UD1(seq3,:);
dist1=pdist2(UD2,data);
[~,seq4]=min(dist1,[],1);
centre=zeros(LU2,W);
Mnumber=zeros(LU2,1);
for i=1:1:LU2
    seq5=find(seq4==i);
    Mnumber(i)=length(seq5);
    centre(i,:)=mean(data(seq5,:));
end
seq0=find(Mnumber==1);
M0=length(seq0);
LU2=LU2-M0;
C0=centre(seq0,:);
seq0=find(Mnumber>1);
centre=centre(seq0,:);

🌈3 Matlab代码+数据

🎉4 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1] X. Gu, P. Angelov, “Autonomous anomaly detection”, in IEEE International Conference on Evolving and Adaptive Intelligent Systems (EAIS), 2017, pp. 1-8.
[2] X. Gu, "Self-organising Transparent Learning System," Phd Thesis, Lancaster University, 2018. 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/166755.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AppScan 扫描web应用程序

系列文章 AppScan介绍和安装 第二节-AppScan 扫描web应用程序 1.环境布置 我们准备了如下一个靶场用来做实验 2.扫描步骤 1.启动AppScan 2.选择 【扫描web应用程序】 3.输入起始URL&#xff0c;点击【下一步】 http://127.0.0.1:83/4.选择【不使用代理】,点击【下一…

ctfshow php特性[125-135]

&#x1f60b;大家好&#xff0c;我是YAy_17&#xff0c;是一枚爱好网安的小白&#xff0c;自学ing。 本人水平有限&#xff0c;欢迎各位大佬指点&#xff0c;一起学习&#x1f497;&#xff0c;一起进步⭐。⭐此后如竟没有炬火&#xff0c;我便是唯一的光。⭐web 125<?php…

word怎么转换成pdf?其实很简单,看这里即可!

转眼间又到了校招的季节&#xff0c;想必许多小伙伴都在忙着编辑自己的简历吧。不过&#xff0c;咱们编辑的时候常常用到的都是word文件&#xff0c;但是当我们要将文件投递出去的时候就需要用到pdf了。其实不仅仅是投递简历&#xff0c;许多地方在要求我们发送正式文件的时候都…

vue+node+mysql全栈项目完整记录

文章目录vuenodemysql全栈项目完整记录写在前面项目最终界面展示项目框架搭建后端创建后端项目编写入口文件数据库及数据库使用前端创建前端项目使用elementUI必要包安装设置跨域访问&#xff0c;全局挂载axios删除无用的文件和代码设置统一的页面样式主页面页面设计路由设计登…

【C语言】柔性的数组是什么?C/C++程序的内存开辟又是?

本文主要讲解柔性数组的相关知识点&#xff0c;并穿插一下C/C程序的内存开辟&#xff0c;涉及到动态内存管理函数&#xff0c;如有不了解的&#xff0c;请参考这一篇文章【C语言】小王带您轻松实现动态内存管理&#xff08;简单易懂&#xff09;_小王学代码的博客-CSDN博客 目录…

【C++】类和对象【下篇】--初始化列表,static成员,友元,内部类,匿名对象

文章目录一、再谈构造函数1.构造函数体赋值2.初始化列表1.概念2.特性二、隐式类型转换1.概念2.构造函数的类型转换3.explict关键字4.类型转换的意义三、Static成员1.概念2.static成员变量3.static成员函数四、友元1.友元函数2.友元类五、内部类六、匿名对象七、拷贝对象时的一些…

深入使用noexcept

深入使用noexcept简介好处坏处适用场景不适用场景实验结果总结参考资料简介 noexcept是C11引入的&#xff0c;表明函数是否会抛出异常。正确使用它可以优化性能&#xff0c;错误使用则会带来麻烦。 noexcept使用语法有两种&#xff1a; noexcpetnoexcept(expression) 第二种…

如何提高系统稳定性?

1、系统稳定性的评判标准 在开始谈稳定性保障之前&#xff0c;我们先来聊聊业内经常提及的一个词SLA&#xff01;业内喜欢用SLA &#xff08;服务等级协议&#xff0c;全称&#xff1a;service level agreement&#xff09;来衡量系统的稳定性&#xff0c;对互联网公司来说&am…

测试开发知识总结(一)

本文内容顺序&#xff1a;测试基础理论、测试岗经常被问到的场景题、智力题、测试岗高频算法题、数据库、Linux知识点。常用自动化测试工具1、Appium官网&#xff1a;http://appium.ioAppUI自动化测试Appium 是一个移动端自动化测试开源工具&#xff0c;支持iOS 和Android 平台…

为什么很少拿神经网络来直接做滤波器呢?

其实无论是IIR&#xff08;RNN&#xff09;还是FIR(CNN)滤波器都可以看成一个简单神经网络&#xff0c;而且有严格的推理&#xff0c;可解释性比神经网络强多了&#xff0c;而已易于工程实现&#xff0c;因此在工程中大量应用。你说的含色噪声和其他乱七八糟的噪声难以滤除时&a…

ROS | Realsense中的IMU解算orientation

文章目录概述一、定义介绍二、操作教程(一)、下载并编译imu_tools功能包1.创建工作空间并初始化2.下载imu_tools并编译(二)、修改配置1.修改imu_tools源码2.修改launch文件3.启动解算概述 本文详细介绍了如何使用ROS自带的工具解算6轴IMU&#xff0c;获取其位姿。 一、定义介绍…

mybatis之动态SQL常见标签的使用

引入where标签的原因&#xff1a; 在上篇文章使用if语句的查询中&#xff0c;我们在SQL语句后面都写入了where 11&#xff0c;以保证每次都能够查询出结果&#xff0c;但这种方法并不是最合理的&#xff0c;假设我们现在将where后面的11去掉&#xff1a; 如下所示&#xff1a…

上午摆摊,下午写代码,35岁程序员的双面人生超爽!

最近看到一个程序员发帖分享自己的工作&#xff1a;白天出摊卖馄饨&#xff0c;下午在家为海外公司全职远程工作。“年入百万是可以的&#xff0c;并且我老家是三线城市&#xff0c;没有房租、通勤费用&#xff0c;性价比还是很高的。” 对比在大城市天天996的程序员&#xff0…

【JavaEE】多线程之线程安全(synchronized篇),死锁问题

目录 线程安全问题 观察线程不安全 线程安全问题的原因 从原子性入手解决线程安全问题 ——synchronized synchronized的使用方法 synchronized的互斥性和可重入性 死锁 死锁的三个典型情况 死锁的四个必要条件 破除死锁 线程安全问题 在前面的章节中&#xff0c…

Wav2Vec HuBert 自监督语音识别模型

文章目录Wav2Vec: Unsupervised pre-training for speech recognitionabstractmethodwav2vec 2.0: A Framework for Self-Supervised Learning of Speech RepresentationsabstractintroductionmethodMODEL arch损失函数finetuneexprimentHuBERT: Self-Supervised Speech Repres…

商品期货跨期套利实战笔记

合约对&#xff1a;IC2301&IC2302 价差计算 前-后&#xff08;6082-6079.8&#xff09; 做多价差开仓&#xff08;预期价差变大&#xff09; 买2301&#xff08;前&#xff09; 卖2302&#xff08;后&#xff09; 做空价差开仓&#xff08;预期价差变小&#xff09;&…

【Java|golang】1813. 句子相似性 III

一个句子是由一些单词与它们之间的单个空格组成&#xff0c;且句子的开头和结尾没有多余空格。比方说&#xff0c;“Hello World” &#xff0c;“HELLO” &#xff0c;“hello world hello world” 都是句子。每个单词都 只 包含大写和小写英文字母。 如果两个句子 sentence1…

react hooks组件间的传值方式(使用ts),子孙传值给祖先组件

父子组件传值参考&#xff1a;react hooks组件传值父传子很简单&#xff0c;只要父组件传参&#xff0c;子组件写好interface childProps和props去接收即可子传父稍复杂父组件写一个回调函数&#xff1a;changeTaskState{(id: any) > { changeTaskStateByID(id) }}当然这个 …

图自监督表征

1、综述 数据挖掘领域大师俞士纶团队新作&#xff1a;最新图自监督学习综述图自监督学习综述&#xff1a;Graph Self-Supervised Learning A Survey图自监督学习&#xff08;Graph Self-supervised Learning&#xff09;最新综述Github代码汇总图自监督学习在腾讯Angel Graph中…

基础数学(二)两数之和 三数之和

目录 两数之和_牛客题霸_牛客网 三数之和_牛客题霸_牛客网 两数之和_牛客题霸_牛客网 给出一个整型数组 numbers 和一个目标值 target&#xff0c;请在数组中找出两个加起来等于目标值的数的下标&#xff0c;返回的下标按升序排列。 &#xff08;注&#xff1a;返回的数组下标从…