• 大小: 2KB
    文件类型: .m
    金币: 2
    下载: 3 次
    发布日期: 2021-06-03
  • 语言: Matlab
  • 标签: LOFMATLAB  

资源简介

LOF离群因子算法,是基于密度的用于噪声和异常数据检测的常用算法,它通过为每个数据计算异常因子,来判断该数据是否为噪声或干扰数据。

资源截图

代码片段和文件信息

%LOF算法
%dist为m*m的距离矩阵每一行代表一个数据与其它数据距离的列向量,所以该矩阵为
%对角线为0的,关于对角线对称的矩阵K为k-近邻
% function lof = LOF(distK)

clear;
clc;

A=importdata(‘data.mat‘);%需要进行离群因子算法处理的数据集
numData=size(A1);
KD=[];
for i=1:1:numData
[~dist]=knnsearch(A(i:)A(::));
KD=[KD;dist‘];
end

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‘);%distance按照升序对dist进行排序,num记录排序前各个dist所在位置信息
    kdistance(i)=distance(iK+1);%获得k近邻距离,因为排序后第一个值为自身到自身的距离为0,所以k+1才是第k个最近距离
    count(i) = -1;               %自己的距离为0,要去掉自己
    for j = 1:m            

评论

共有 条评论

相关资源