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…

k-nearest neighbor

近傍法は近い点の距離を計算する。 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

k-means法はもともと、「似ているものをまとめる」方法なので、「仲間はずれを探す」方法としてはよくないことがある。 今回はグダグダ。 k0 <- 2:10 kcluster <- matrix(0, nr=length(k0), nc=nrow(data0)) for(k1 in seq(k0)){ kcluster[k1, ] <- kmeans(d…

RandomForests

決定木をたくさん作るRandomForests。 library(randomForest) rf0 <- randomForest(data0) MDSplot(rf0, cols, k=3) どうプロットしたら一番わかりやすい結果が見えるかまだわかってないのでこんな図に。 答えだけを強調したらそれとなくそんな気分になる。

主成分分析 PCA

各パラメータは関係があったりすることがあるので、無関係な主成分にしてみる。 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="…

one-classs SVM

超平面という中二病的境界線を引く。 本当は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…

Local outlier factor

この問題を解くのに最もいいのは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個の中から異常なデータ…