2013-03-11から1日間の記事一覧
答えは87番目のデータ。 下をコピペして、半角スペース区切りで読み込む。 data0 <- read.delim("clipboard", sep=" ", header=FALSE) cols <- rep(1, nrow(data0)) cols[87] <- 2 69.613 129.070 52.111 70.670 128.161 52.446 72.303 128.450 52.853 73.75…
近傍法は近い点の距離を計算する。 library(FNN) #k-nearest neighbor # ??? works not well topn <- 8 alg <- c("cover_tree", "kd_tree", "VR", "CR", "brute") res <- array(0, c(nrow(data0), topn, length(alg))) for(i in seq(nrow(data0))){ for(alg0…
k-means法はもともと、「似ているものをまとめる」方法なので、「仲間はずれを探す」方法としてはよくないことがある。 今回はグダグダ。 k0 <- 2:10 kcluster <- matrix(0, nr=length(k0), nc=nrow(data0)) for(k1 in seq(k0)){ kcluster[k1, ] <- kmeans(d…
決定木をたくさん作るRandomForests。 library(randomForest) rf0 <- randomForest(data0) MDSplot(rf0, cols, k=3) どうプロットしたら一番わかりやすい結果が見えるかまだわかってないのでこんな図に。 答えだけを強調したらそれとなくそんな気分になる。
各パラメータは関係があったりすることがあるので、無関係な主成分にしてみる。 pca_score <- scale(data0) %*% eigen(cor(data0))$vectors *sqrt(nrow(data0)/(nrow(data0) - 1)) library(rgl) plot3d(pca_score, type="n", xlab="PC1", ylab="PC2", zlab="…
超平面という中二病的境界線を引く。 本当はtuningが必要らしいのだが、今回は無視。 #one class SVM library(e1071) #non-supervised svm0 <- svm(data0, type="one-classification") pred0 <- predict(svm0, data0) pred0 plot(data0, pch=16, col=(!pred0…
この問題を解くのに最もいいのはLOF(論文)らしい。ある点近傍の点の数をパラメータにして、外れ値ならまわりが少ないのではないかという… library(Rlof) lof0 <- lof(data0, 5:10) plot(lof0[,1], pch=16, col=cols) matplot(lof0, pch=16, ylab="LOF score"…
機械学習を用いて、選んではいけない金塊を見つけ出す問題。 設定は、100個の金塊っぽいもののうち、1つだけが真の金塊。各々の金塊っぽいものには、3つのパラメータがある。 本物の金塊を選ぶほうが実はいけない。 問題としては、100個の中から異常なデータ…