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() は2つの行列を返します

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で学ぶ異常検知入門

練習してみましょう!

Rで学ぶ異常検知入門

Preparing Video For Download...