前几天接的一个小项目,基于欧氏距离和马氏距离的异常点检测,已经交接完毕,现在把代码公开。

基于欧式距离的:

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实现的更多相关文章

  1. MATLAB求马氏距离(Mahalanobis distance)

    MATLAB求马氏距离(Mahalanobis distance) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1.马氏距离计算公式 d2(xi,  ...

  2. 马氏距离(Mahalanobis distance)

    马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离.它是一种有效的计算两个未知样本集的相似度的方法.与欧 ...

  3. paper 114:Mahalanobis Distance(马氏距离)

    (from:http://en.wikipedia.org/wiki/Mahalanobis_distance) Mahalanobis distance In statistics, Mahalan ...

  4. Mahalanobis距离(马氏距离)的“哲学”解释

    讲解教授:赵辉 (FROM : UESTC) 课程:<模式识别> 整理:PO主 基础知识: 假设空间中两点x,y,定义: 欧几里得距离, Mahalanobis距离, 不难发现,如果去掉马 ...

  5. Mahalanobis Distance(马氏距离)

    (from:http://en.wikipedia.org/wiki/Mahalanobis_distance) Mahalanobis distance In statistics, Mahalan ...

  6. 有关马氏距离和hinge loss的学习记录

    关于度量学习,之前没有看太多相关的文献.不过南京的周老师的一篇NIPS,确实把这个问题剖析得比较清楚. Mahalanobis距离一般表示为d=(x-y)TM(x-y),其中x和y是空间中两个样本点, ...

  7. Mahalanobia Distance(马氏距离)的解释

    马氏距离有多重定义: 1)可以表示 某一个样本与DataSet的距离. 2)可以表示两个DataSet之间的距离. 1) The Mahalanobis distance of an observat ...

  8. Python实现的计算马氏距离算法示例

    Python实现的计算马氏距离算法示例 本文实例讲述了Python实现的计算马氏距离算法.分享给大家供大家参考,具体如下: 我给写成函数调用了 python实现马氏距离源代码:     # encod ...

  9. 机器学习中应用到的各种距离介绍(附上Matlab代码)

    转载于博客:各种距离 在做分类时常常需要估算不同样本之间的相似性度量(SimilarityMeasurement),这时通常采用的方法就是计算样本间的"距离"(Distance). ...

随机推荐

  1. 快速建立ssh互信(转)

    转自:魏巍的Linux酒吧 - 51CTO技术博客(http://weiweilinux.blog.51cto.com/3349074/1048212) 快速建立ssh互信 因为工作中经常需要配置服务 ...

  2. eclipse运行时弹出Fail to create the Java Virtual Machine

    找到eclipse程序所在目录,在目录下找到eclipse.ini文件,打开文件将com.android.ide.eclipse.adt.package.product下的值改成128m,org.ec ...

  3. 每天学一点Python(2)

    9月16日(python扩展的安装和使用) 接着上一篇继续.按照之前计划,先分析导出的数据,再做进一步统计. 导出的数据是html类型的,想到的处理方法有: 1.直接readlines然后一行一行找我 ...

  4. PHP生成月历代码

    <?php /*   Function Written by Nelson Neoh @3/2004.   For those who wants to utilize this code, p ...

  5. selenium遇到不可编辑input和隐藏input如何赋值

    js = 'document.getElementsByName("m:csr_mt_gnccspjclfbxd:bmshldID")[0].type="text&quo ...

  6. DotnetBrowser高级教程-(4)使用MVC框架1-搭建基础框架

    我们这次重点介绍下MVC框架的使用. 如果您之前使用过微软的mvc web框架,那么dotnetbrowser的mvc框架相信您也会很快上手,两者之间相似度约有80%. 所谓的mvc,以一个例子为例: ...

  7. js CacheQueue

    (function(){ var CacheQueue=function(name,weightValue,maxLength,clearTimerTime){ //public this.name ...

  8. jsp中jquery用法一步刷新 验证用户名是否存在

    <script type="text/javascript"> /* $(document).ready(function(){ var id="ha&quo ...

  9. Visual Studio 2015官方下载 秘钥破解

    微软刚刚为开发人员奉上了最新大礼Visual Studio 2015正式版.如果你是MSDN订阅用户,现在就可以去下载丰富的相关资源.如果你指向体验一把尝尝鲜,微软也是很慷慨的. Visual Stu ...

  10. GitHub上编程语言流行度分析

    GitHub已然是全球最流行的开源项目托管平台,项目数量眼下已经达到了千万级别.Adereth在Counting Stars on GitHub一文提供了一个很有意思的思路,那就是籍GitHub用户通 ...