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个样本点之间的距离的集合,得出矩阵dddd=dist(Data);2.把集合dd隔行元素升序后,得出每个样本点与它的第(1-p)*n个样本点的最近的距离的集合dndd=sort(dd,2);k=round((1-p)*n);d=dd(:,k);3.找到集合d中的(1-p)分位点,记为邻近距离DD=quantile(d,1-p);4.求与出样本O的距离大于D的样本数num=p*n;5.结合邻近距离D判断是否为离群点fori=1:n[row,col]=find(dd(I,:)D)ifsum(row)numoutlier=[outlier,i]endendoutlier=data(:,outlier);6.画出所有点并标出离群点plot(Data(1,:),Data(2,:),’b.’)holdonplot(outlier(1,:),outlier(2,:),’ro’);