DB离群点算法

更新时间:2023-10-29 19:56:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

DB(p,D)离群点算法

实验目的:

1. 掌握DB(p,D)离群点算法

2. 在Matlab上实现DB(p,D)离群点算法 3. 简单的应用

实验原理

假设有n个样本,如果与样本O的距离大于D的临近点数大于p*n,则称样本O为离群点。 其中每个样本点与它的第(1-p)*n个样本点的距离的集合d中的(1-p)分位点,记为临近距离点,其距离记为D(临近距离)。

p为(用户自定的)离群点的比例(与样本O的距离大于D的样本占总样本的百分比)。

实验步骤(代码解释在代码中)

1. 先算出n个样本点之间的距离的集合,得出矩阵dd

dd = dist(Data);

2. 把集合dd隔行元素升序后,得出每个样本点与它的第(1-p)*n个样本点的最近的距离的

集合d

ndd = sort(dd,2); k = round((1-p)*n); d = dd(:,k);

3. 找到集合d中的(1-p)分位点,记为邻近距离D

D = quantile(d,1-p);

4. 求与出样本O的距离大于D的样本数

num = p*n;

5. 结合邻近距离D判断是否为离群点

for i = 1:n [row,col] = find(dd(I,:)>D) if sum(row) >num outlier = [outlier,i] end

end

outlier = data(:,outlier);

6. 画出所有点并标出离群点

plot(Data(1,:),Data(2,:),’b.’) hold on

plot(outlier(1,:),outlier(2,:),’ro’);

本文来源:https://www.bwwdw.com/article/vfm2.html

Top