资源简介

计算Local outlier factor的matlab实现,附带有例子。

资源截图

代码片段和文件信息

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-distance
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

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1511  2016-04-25 21:57  LOF.m
     文件         221  2016-05-19 11:07  test.m
     文件       76836  2016-05-19 11:07  test.mat

评论

共有 条评论