データサイエンティスト養成読本
データサイエンティスト養成読本
データサイエンティスト養成読本 [ビッグデータ時代のビジネスを支えるデータ分析力が身につく! ] (Software Design plus)
- 作者: 佐藤洋行,原田博植,下田倫大,大成弘子,奥野晃裕,中川帝人,橋本武彦,里洋平,和田計也,早川敦士,倉橋一成
- 出版社/メーカー: 技術評論社
- 発売日: 2013/08/08
- メディア: 大型本
- この商品を含むブログ (12件) を見る
特集1 データ分析実績入門
第1章 Rで統計解析をはじめよう
p.45 まで。
- 多次元尺度法(MDS)
- データ間の距離や類似度を使って仮想的なマップを作成する手法
- クラスタリング
- 多数の変数で表現されたデータを類似度を元に似ているもの同士をグルーピングする手法
- k-means
- 機械学習
# MDS install.packages("stats") install.packages("ggplot2") library(stats) library(ggplot2) hdist <- read.table("HokkaidoCitiesMDS.tsv", header = F) hcities <- c("札幌", "旭川", "稚内市", "釧路市", "帯広市", "室蘭市", "函館", "小樽") names(hdist) <- hcities rownames(hdist) <- hcities hdist.cmd <- cmdscale(hdist) hdist.cmd.df <- as.data.frame(hdist.cmd) hdist.cmd.df$city <- rownames(hdist.cmd.df) names(hdist.cmd.df) <- c("x", "y", "city") # geom_text で family 指定しないと日本語文字化けする ggplot(hdist.cmd.df, aes(x = x, y = y, label = city)) + geom_text(family = "Hiragino Kaku Gothic Pro W3") + theme_bw(16) # k-means の実行 state.km <- kmeans(scale(state.x77[, 1:6]), 3) state.pca.df <- data.frame(state.pca$x) state.pca.df$name <- rownames(state.pca.df) state.pca.df$cluster <- as.factor(state.km$cluster) ggplot(state.pca.df, aes(x = PC1, y = PC2, label = name, col = cluster)) + geom_text() + theme_bw(16) # レーダーチャート install.packages("fmsb") library(fmsb) df <- as.data.frame(scale(state.km$centers)) dfmax <- apply(df, 2, max) + 1 dfmin <- apply(df, 2, min) - 1 df <- rbind(dfmax, dfmin, df) radarchart(df, seg = 5, plty = 1, pcol = rainbow(3)) legend("topright", legend = 1:3, col = rainbow(3), lty = 1) # caret による SVM とランダムフォレストの実行 install.packages("caret") install.packages("e1071") install.packages("kernlab") install.packages("randomForest") library(caret) library(e1071) library(kernlab) data(spam) head(spam) table(spam[, 58]) train.index <- createDataPartition(spam$type, p = 0.5, list = F) spam.train <- spam[train.index,] spam.test <- spam[-train.index,] # training 方法のカスタマイズ: LGOCV で75%を training に使い5回繰り返す fitControl <- trainControl(method = "LGOCV", p = 0.75, number = 5) # SVM spam.svm <- train(spam.train[, -58], spam.train$type, method = "svmRadial", preProcess = c("center", "scale"), trControl = fitControl) # ランダムフォレスト spam.rf <- train(spam.train[, -58], spam.train$type, method = "rf", preProcess = c("center", "scale"), trControl = fitControl) allPred <- extractPrediction(list(spam.svm, spam.rf), testX = spam.test[, -58], testY = spam.test$type) testPred <- allPred[allPred$dataType == "Test",] tp.svm <- testPred[testPred$model == "svmRadial",] tp.rf <- testPred[testPred$model == "rf",] confusionMatrix(tp.svm$pred, tp.svm$obs) confusionMatrix(tp.rf$pred, tp.rf$obs)
メモ
RStudio を入れたときか R を入れたときかどちらかわからないが、
気が付いたら .Rprofile が自動で作成されていて、グラフで日本語が文字化けしないようになっていた。
が、MDSのグラフを表示する際、グラフ内の日本語が文字化けした。
これは geom_text に family を指定することでとりあえず解決。
また、RStudio では日本語入力が確定しないと表示されなくて、日本語入力が辛い。 結果、 Atom に language-r を入れて、Atom で書いた。 RStudio ではそのファイルを随時更新して実行した。
Windows でも Mac でも同じように使えるので、Atom 重宝してる。