资源简介
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
- 上一篇:通用收据打印系统
- 下一篇:蓝色政府政务协会类织梦模板.rar
评论
共有 条评论