rによるウイスキー分析

23
によるウイスキー分析 Tokyo.R#53 2016-04-30 @kashitan

Upload: takashi-kitano

Post on 06-Jan-2017

1.871 views

Category:

Data & Analytics


0 download

TRANSCRIPT

Page 1: Rによるウイスキー分析

によるウイスキー分析Tokyo.R#53 2016-04-30 @kashitan

Page 2: Rによるウイスキー分析

Tokyo.Rといえば

「ウイスキーもあるよ!東京R勉強会に参加してみた(第51回TokyoR参加レポート)」より

Page 3: Rによるウイスキー分析

これを

でやりたい

http://itpro.nikkeibp.co.jp/atcl/column/16/032500073/032500001/

Page 4: Rによるウイスキー分析

• ggradarによる可視化

• 多次元尺度法によるポジショニングの確認

Page 5: Rによるウイスキー分析

ggradarによる可視化

Page 6: Rによるウイスキー分析

ウイスキーデータ• スコットランドのストラスクライド⼤学が提

供する86種類のウイスキーのフレーバーに関するオープンデータ

Distillery Medicinal Winey Floral

Body Tobacco Nutty Postcode

Sweetness Honey Malty Latitude

Smoky Spicy Fruity Longitude

Page 7: Rによるウイスキー分析
Page 8: Rによるウイスキー分析

平均の算出> # データロード > 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")

Page 9: Rによるウイスキー分析

レーダーチャートの描画> library(ggradar) > ggradar(overall, grid.min=0, grid.mid=2, grid.max=4)

Page 10: Rによるウイスキー分析

代表7銘柄の抽出> # 代表7銘柄 > w.list <- c("OldFettercairn","Caol Ila", "Talisker", "Highland Park", "Macallan", "Auchentoshan", "Glenfiddich") > w.sub <- w %>% + filter(Distillery %in% w.list) %>% + select(-RowID, -Postcode, -Latitude, -Longitude)

Page 11: Rによるウイスキー分析

代表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)

Page 12: Rによるウイスキー分析

代表7銘柄の レーダーチャート描画

Page 13: Rによるウイスキー分析

多次元尺度法による ポジショニングの確認

Page 14: Rによるウイスキー分析

「シングルモルトウイスキー フレーバーマップ」より

Page 15: Rによるウイスキー分析

多次元尺度法とは• 多次元尺度法(MDS: multi-dimensional scaling)は、

個体間の親近性データを、2次元あるいは3次元空間に類似したものを近く、そうでないものを遠くに配置する⽅法で、データの構造を考察する⽅法である。

• 多次元尺度法は計量多次元尺度法と⾮計量多次元尺度法に⼤別される。計量多次元尺度法とは距離データを低次元に配置する⽅法で、⾮計量多次元尺度法は、順序尺度のデータの類似度あるいは距離に変換可能な親近性データを低次元に配置する⽅法である。

https://www1.doshisha.ac.jp/~mjin/R/27/27.html

Page 16: Rによるウイスキー分析

多次元尺度法のステップ

1.距離を求める。 2.座標値を求める 3.2〜3次元上で個体を配置する 4.信頼性について考察する

Page 17: Rによるウイスキー分析

距離の計算

> library(proxy) > # コサイン類似度の計算 > w.dist <- w %>% + select(-RowID, -Distillery, -Postcode, -Latitude, -Longitude) %>% + dist(method="cosine")

Page 18: Rによるウイスキー分析

階層クラスタリング> ## 階層型クラスタリング > 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)

Page 19: Rによるウイスキー分析

階層クラスタリング> # デンドログラムを描画 > library(networkD3) > dendroNetwork(w.hc, width="1000", treeOrientation="vertical")

Page 20: Rによるウイスキー分析

座標値を求める

> w.cmd <- w.dist %>% + # MDS + cmdscale() %>% + as.data.frame() %>% + add_rownames() %>% + rename(Distillery = rowname, + x = V1, + y = V2) %>% + inner_join(w.cls, by="Distillery")

Page 21: Rによるウイスキー分析

プロット

> library(rCharts) > dP <- dPlot( + y ~ x, + groups = c("Distillery","group"), + data = w.cmd, + type = "bubble" + ) > dP$xAxis( type = "addMeasureAxis" ) > print(dP)

Page 22: Rによるウイスキー分析

プロット

Page 23: Rによるウイスキー分析