资源简介

LOF算法:剔除异常值,用于数据量不大,使用简单,并具有可视化功能,可将异常数据在图上显示出来

资源截图

代码片段和文件信息

%LOF算法
function lof =  LOF(dist)
K=10;
m=size(dist1);                 %m为对象数,dist为两两之间的距离
distance = zeros(mm);
num = zeros(mm);               %distance 和num用来记录排序后的顺序,和对象编号顺序
kdistance =  zeros(m1);         %计算每个对象的kdistance
count  = zeros(m1);            %k邻域的对象数
reachdist =  zeros(mm);         %计算两两之间的reachable-distance
lrd = zeros(m1);
lof = zeros(m1);
%计算k-距离
for i=1:m
     [distance(i:)num(i:)]=sort(dist(i:)‘ascend‘);
    kdistance(i)=distance(iK+1);
    count(i) = -1;%自己的距离为0,要去掉自己
    for j = 1:m
        if dist(ij)<=kdistance(i)
            count(i) = count(i)+1;
        end
    end
end  
for i = 1:m
    for j=1:i-1
        reachdist(ij) =  max(dist(ij)kdistance(j));
        reachdist(ji) = reachdist(ij);
    end
end
for i = 1:m
    sum_reachdist=0;
    for j=1:count(i)
         sum_reachdist=sum_reachdist+reachdist(inum(j+1));
    end
    %计算每个点的lrd
    lrd(i)=count(i)/sum_reachdist;
end
% 得到lof值
for i=1:m
    sumlrd=0;
    for j=1:count(i)
        sumlrd=sumlrd+lrd(num(j+1))/lrd(i);
    end
    lof(i)=sumlrd/count(i);
end
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  1980-01-01 00:00  CSDN\lof\
     文件        1198  2019-05-04 18:21  CSDN\lof\LOF.m
     文件        1172  2019-05-04 18:21  CSDN\lof\lof(1).zip
     文件     2458662  2019-05-04 18:21  CSDN\lof\剔除测量数据中异常值的若干方法_何平.pdf

评论

共有 条评论

相关资源