基于欧氏距离和马氏距离的异常点检测—matlab实现
前几天接的一个小项目,基于欧氏距离和马氏距离的异常点检测,已经交接完毕,现在把代码公开。
基于欧式距离的:
load data1.txt %导入数据,行为样本,列为特征
X=data1; %赋值给X
u=mean(X); %求均值
[m,n]=size(X);
for i=1:m
dist(i)=sqrt(sum(X(i,:)-u).^2);
end
[a,b]=sort(dist);%对欧氏距离进行排序
T=ceil(m*0.02)%设置阀值
Threshold=a(m-T);%定为阀值
len=length(a);
for i = 1:len %遍历,如果小于阀值为正常点
if a(i) < Threshold
inlier(i) = [b(i)];
s=b(i);
disp(['正常点序列号:',num2str(s)])
end
end
% inlier
for i = 1:len %遍历,如果大于等于阀值为正常点
if a(i)>= Threshold
outlier(i) = [b(i)];
ns=b(i)
disp(['离群点序列号:',num2str(ns)])
end
end
% outlier
基于马氏距离的:
load data1.txt %导入数据,行为样本,列为特征
X=data1; %赋值给X
u=mean(X); %求均值
[m,n]=size(X);
for i=1:m
newdata=[X(i,:);u]
cov_w=cov(newdata);%求协方差矩阵
dist(i)=(X(i,:)-u)*cov_w*(X(i,:)-u)'%求出每个样本到u的马氏距离
end
[a,b]=sort(dist);%对马氏距离进行排序
T=ceil(m*0.02)%设置阀值
Threshold=a(m-T);%定为阀值
clear T;
len=length(a);
for i = 1:len %遍历,如果小于阀值,为正常点
if a(i) < Threshold
inlier(i) = [b(i)];
s=b(i);
disp(['正常点序列号:',num2str(s)])
end
end
% inlier
for i = 1:len %遍历,如果大于等于阀值为异常点
if a(i)>= Threshold
outlier(i) = [b(i)];
l=b(i)
disp(['离群点序列号:',num2str(l)])
end
end
% outlier
基于欧氏距离和马氏距离的异常点检测—matlab实现的更多相关文章
- MATLAB求马氏距离(Mahalanobis distance)
MATLAB求马氏距离(Mahalanobis distance) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1.马氏距离计算公式 d2(xi, ...
- 马氏距离(Mahalanobis distance)
马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离.它是一种有效的计算两个未知样本集的相似度的方法.与欧 ...
- paper 114:Mahalanobis Distance(马氏距离)
(from:http://en.wikipedia.org/wiki/Mahalanobis_distance) Mahalanobis distance In statistics, Mahalan ...
- Mahalanobis距离(马氏距离)的“哲学”解释
讲解教授:赵辉 (FROM : UESTC) 课程:<模式识别> 整理:PO主 基础知识: 假设空间中两点x,y,定义: 欧几里得距离, Mahalanobis距离, 不难发现,如果去掉马 ...
- Mahalanobis Distance(马氏距离)
(from:http://en.wikipedia.org/wiki/Mahalanobis_distance) Mahalanobis distance In statistics, Mahalan ...
- 有关马氏距离和hinge loss的学习记录
关于度量学习,之前没有看太多相关的文献.不过南京的周老师的一篇NIPS,确实把这个问题剖析得比较清楚. Mahalanobis距离一般表示为d=(x-y)TM(x-y),其中x和y是空间中两个样本点, ...
- Mahalanobia Distance(马氏距离)的解释
马氏距离有多重定义: 1)可以表示 某一个样本与DataSet的距离. 2)可以表示两个DataSet之间的距离. 1) The Mahalanobis distance of an observat ...
- Python实现的计算马氏距离算法示例
Python实现的计算马氏距离算法示例 本文实例讲述了Python实现的计算马氏距离算法.分享给大家供大家参考,具体如下: 我给写成函数调用了 python实现马氏距离源代码: # encod ...
- 机器学习中应用到的各种距离介绍(附上Matlab代码)
转载于博客:各种距离 在做分类时常常需要估算不同样本之间的相似性度量(SimilarityMeasurement),这时通常采用的方法就是计算样本间的"距离"(Distance). ...
随机推荐
- 记录下我的阿里云centos服务器之路
以下内容都已经过试验,边走边记,懒得排版 安装aphach yum install -y httpd systemctl start httpd netstat -tulp 安装桌面 尽量不用桌 ...
- 关于Sending build context to Docker daemon 数据很大的问题
以往进行docker build的时候都是在新建的文件夹下面进行,这次为了图方便,就直接放在开发根目录下进行build,这样子问题就来了.于是就有了下面的文件大小发送量: Sending build ...
- 【ActiveMQ】管理界面查看消息详情,报错/WEB-INF/tags/form/forEachMapEntry.tag PWC6199: Generated servlet error: The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files
ActiveMQ版本:5.12 JDK版本:1.8 ===================== 使用ActiveMQ过程中,在管理界面查看消息详情,发现报错: 查看日志信息,报错如下: 2017-11 ...
- recovery怎么刷机,recovery是什么意思
转自:http://www.3lian.com/edu/2012/04-11/25212.html Recovery是什么意思? recovery翻译过来就是“恢复”的意思,是开机后通过特殊按键组合( ...
- ef SaveChanges()报"更新条目时出错,有关详细信息请参见内部异常"
报这个错误是因为表没有设置主键,设完主键后再重新更新Entity,就可以添加了
- 配置和使用服务器Tomcat连接池
1.配置Tomcat6.0根目录\conf\context.xml <?xml version='1.0' encoding='utf-8'?> <!-- Licensed to t ...
- MR之SequenceFile具体解释
package com.leaf.hadoop.second; import java.util.Random; import org.apache.hadoop.conf.Configuration ...
- Linux下防火墙iptables用法规则详及其防火墙配置
转:http://www.linuxidc.com/Linux/2012-08/67952.htm iptables规则 规则--顾名思义就是规矩和原则,和现实生活中的事情是一样的,国有国法,家有家规 ...
- 先行发生原则(Happens-before)
先行发生原则(Happens-Before)是判断数据是否存在竞争.线程是否安全的主要依据. 先行发生是Java内存,模型中定义的两项操作之间的偏序关系,如果操作A先行发生于操作B,那么操作A产生的影 ...
- Foreach嵌套Foreach速度慢优化方案
有时候这样的效率还可以,但是只要牵涉到操作数据库,那就GAMEOVER.. 最近在维护项目,一个Foreach循环,4分半才能出来结果. 代码: foreach ($content as $key = ...