20160430 tokyo r53

169 views
124 views

Published on

飛び入り発表資料

Published in: Data & Analytics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
169
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

20160430 tokyo r53

  1. 1. によるウイスキー分析 Tokyo.R#53 2016-04-30 @kashitan
  2. 2. Tokyo.Rといえば 「ウイスキーもあるよ!東京R勉強会に参加してみた(第51回TokyoR参加レポート)」より
  3. 3. これを でやりたい http://itpro.nikkeibp.co.jp/atcl/column/16/032500073/032500001/
  4. 4. • ggradarによる可視化 • 多次元尺度法によるポジショニングの 確認
  5. 5. ggradarによる可視化
  6. 6. ウイスキーデータ • スコットランドのストラスクライド⼤学が提 供する86種類のウイスキーのフレーバーに関 するオープンデータ Distillery Medicinal Winey Floral Body Tobacco Nutty Postcode Sweetness Honey Malty Latitude Smoky Spicy Fruity Longitude
  7. 7. 平均の算出 > # データロード > w <- read.csv("https://www.mathstat.strath.ac.uk/outreach/nessie/ datasets/whiskies.txt", header=TRUE, stringsAsFactor=FALSE) > rownames(w) <- w$Distillery > # 平均 > library(dplyr) > library(ggradar) > overall <- w %>% + select(-RowID, -Distillery, -Postcode, -Latitude, -Longitude) %>% + summarise_each(funs(mean), everything()) %>% + add_rownames("group") %>% + mutate(group = "overall")
  8. 8. レーダーチャートの描画 > library(ggradar) > ggradar(overall, grid.min=0, grid.mid=2, grid.max=4)
  9. 9. 代表7銘柄の抽出 > # 代表7銘柄 > w.list <- c("OldFettercairn","Caol Ila", "Talisker", "Highland Park", "Macallan", "Auchent oshan", "Glenfiddich") > w.sub <- w %>% + filter(Distillery %in% w.list) %>% + select(-RowID, -Postcode, -Latitude, -Longitude)
  10. 10. 代表7銘柄の レーダーチャート描画 > # 個別にプロット > ggradar(w.sub[1, ], grid.min=0, grid.mid=2, grid.max=4) > ggradar(w.sub[2, ], grid.min=0, grid.mid=2, grid.max=4) > ggradar(w.sub[3, ], grid.min=0, grid.mid=2, grid.max=4) > ggradar(w.sub[4, ], grid.min=0, grid.mid=2, grid.max=4) > ggradar(w.sub[5, ], grid.min=0, grid.mid=2, grid.max=4) > ggradar(w.sub[6, ], grid.min=0, grid.mid=2, grid.max=4) > ggradar(w.sub[7, ], grid.min=0, grid.mid=2, grid.max=4)
  11. 11. 代表7銘柄の レーダーチャート描画
  12. 12. 多次元尺度法による ポジショニングの確認
  13. 13. 「シングルモルトウイスキー フレーバーマップ」より
  14. 14. 多次元尺度法とは • 多次元尺度法(MDS: multi-dimensional scaling)は、 個体間の親近性データを、2次元あるいは3次元空間 に類似したものを近く、そうでないものを遠くに配置 する⽅法で、データの構造を考察する⽅法である。 • 多次元尺度法は計量多次元尺度法と⾮計量多次元尺度 法に⼤別される。計量多次元尺度法とは距離データを 低次元に配置する⽅法で、⾮計量多次元尺度法は、順 序尺度のデータの類似度あるいは距離に変換可能な親 近性データを低次元に配置する⽅法である。 https://www1.doshisha.ac.jp/ mjin/R/27/27.html
  15. 15. 多次元尺度法のステップ 1.距離を求める。 2.座標値を求める 3.2〜3次元上で個体を配置する 4.信頼性について考察する
  16. 16. 距離の計算 > library(proxy) > # コサイン類似度の計算 > w.dist <- w %>% + select(-RowID, -Distillery, -Postcode, -Latitude, -Longitude) %>% + dist(method="cosine")
  17. 17. 階層クラスタリング > ## 階層型クラスタリング > w.hc <-w.dist %>% + hclust(method="ward.D2") > # クラスタ番号の付与 > w.cls <- w.hc %>% + cutree(k = 4) %>% + as.matrix() %>% + as.data.frame() %>% + add_rownames() %>% + rename(Distillery = rowname, + group = V1)
  18. 18. 階層クラスタリング > # デンドログラムを描画 > library(networkD3) > dendroNetwork(w.hc, width="1000", treeOrientation="vertical")
  19. 19. 座標値を求める > w.cmd <- w.dist %>% + # MDS + cmdscale() %>% + as.data.frame() %>% + add_rownames() %>% + rename(Distillery = rowname, + x = V1, + y = V2) %>% + inner_join(w.cls, by="Distillery")
  20. 20. プロット > library(rCharts) > dP <- dPlot( + y ~ x, + groups = c("Distillery","group"), + data = w.cmd, + type = "bubble" + ) > dP$xAxis( type = "addMeasureAxis" ) > print(dP)
  21. 21. プロット

×