選んではいけない金塊

機械学習を用いて、選んではいけない金塊を見つけ出す問題
設定は、100個の金塊っぽいもののうち、1つだけが真の金塊。各々の金塊っぽいものには、3つのパラメータがある。
本物の金塊を選ぶほうが実はいけない。
問題としては、100個の中から異常なデータをもつ1つの外れ値を検出する、外れ値検出である。
 
Local outlier factor
one-classs SVM
主成分分析
RandomForests
k-means
k-nearest neighbor
 
データセットから読み込んだとして

plot(data0, pch=16)

library(rgl)
plot3d(data0, type="n")
text3d(data0, texts=seq(nrow(data0)))