LOF方法检测异常值:
局部异常因子法(LOF法),是一种基于概率密度函数识别异常值的算法。LOF算法只对数值型数据有效。
算法原理:将一个点的局部密度与其周围的点的密度相比较,若前者明显比后者小(LOF值大于1),则该点相对于周围的点来说就处于一个相对比较稀疏的区域,这就表明该点是一个异常值。
R语言实现:使用DMwR包中的函数lofactor(),基本格式为:
lofactor(data, k)
其中,data为数值型数据集;k为用于计算局部异常因子的邻居数量。
> library(DMwR)
> out.scores<-lofactor(USArrests,k=10) #计算每个样本的LOF值
> plot(density(out.scores)) #绘制LOF值的概率密度图(如图6.5)
>#LOF值排前6的数据作为异常值,提取其样本号
> order(out.scores,decreasing=TRUE)[1:6]
[1] 33 9 11 45 20 34