k 近邻距离得分

R 异常检测入门

Alastair Rushworth

Data Scientist

家具尺寸

plot(Width ~ Height, data = furniture)

R 异常检测入门

k 近邻(kNN)距离

异常通常远离其邻居

R 异常检测入门

距离矩阵计算的输入

library(FNN)
furniture_knn <- get.knn(data = furniture, k = 5)

 

参数

  • data: 数据矩阵
  • k: 邻居数量
R 异常检测入门

距离矩阵输出

get.knn() 返回两个矩阵

names(furniture_knn)
"nn.index" "nn.dist" 

距离矩阵

head(furniture_knn$nn.dist, 3)
         [,1]     [,2]     [,3]     [,4]     [,5]
[1,] 5.128300 5.367791 5.390801 5.740713 8.477025
[2,] 4.300093 5.367791 6.159139 7.091966 7.428176
[3,] 3.047502 3.545978 4.426266 5.006570 5.654202
R 异常检测入门

kNN 距离得分

到最近邻的平均距离

furniture_score <- rowMeans(furniture_knn$nn.dist)

 

最大得分?

which.max(furniture_score)
29
R 异常检测入门

Let's practice!

R 异常检测入门

Preparing Video For Download...