Tokyor09

39
R によるデータサイエンス II 章第 4 多次元尺度法 @yokkuns 洋平 R 勉強会@東京(Tokyo.R#092010/09/19 @yokkuns 洋平 (R 勉強会@東京(Tokyo.R#09R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 1 / 40

Transcript of Tokyor09

Page 1: Tokyor09

.

.

. ..

.

.

Rによるデータサイエンス第 II章第 4章多次元尺度法

@yokkuns里 洋平

R 勉強会@東京(Tokyo.R#09)

2010/09/19

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 1 / 40

Page 2: Tokyor09

範囲

Rによるデータサイエンス第 II章第 4章

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 2 / 40

Page 3: Tokyor09

AGENDA

自己紹介

多次元尺度法

計量的多次元尺度法

非計量的多次元尺度法

まとめ

最後に

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 3 / 40

Page 4: Tokyor09

AGENDA

自己紹介

多次元尺度法

計量的多次元尺度法

非計量的多次元尺度法

まとめ

最後に

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 4 / 40

Page 5: Tokyor09

自己紹介

ID : yokkuns名前 : 里 洋平

職業 : Webエンジニア

http://twitter.com/yokkuns

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 5 / 40

Page 6: Tokyor09

自己紹介 -主催してる勉強会 1

R勉強会@東京(Tokyo.R)参加ありがとうございます!

http://groups.google.co.jp/group/r-study-tokyo

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 6 / 40

Page 7: Tokyor09

自己紹介 -主催してる勉強会 2

数式ニヤニヤ勉強会

是非ご参加下さい!

http://groups.google.co.jp/group/grinning-math

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 7 / 40

Page 8: Tokyor09

自己紹介 -今月の発表予定

2010.09.11 RPML最終回パターン認識と機械学習(PRML)

13.3~ 13.3.3線形動的システム

2010.09.19第 9回R勉強会@東京(Tokyo.R#09)

Rによるデータサイエンス第 II部第 4章多次元尺度法

2010.09.25第 7回データマイニング +WEB勉強会@東京(Tokyo.Webmining#7)

初めてでも分かるヘッジファンド入門

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 8 / 40

Page 9: Tokyor09

自己紹介 -今月の発表予定

2010.09.11 RPML最終回パターン認識と機械学習(PRML)

13.3~ 13.3.3線形動的システム

2010.09.19第 9回R勉強会@東京(Tokyo.R#09)

Rによるデータサイエンス第 II部第 4章多次元尺度法

2010.09.25第 7回データマイニング +WEB勉強会@東京(Tokyo.Webmining#7)

初めてでも分かるヘッジファンド入門

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 9 / 40

Page 10: Tokyor09

AGENDA

自己紹介

多次元尺度法

計量的多次元尺度法

非計量的多次元尺度法

まとめ

最後に

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 10 / 40

Page 11: Tokyor09

多次元尺度法MDS: multi-dimensional scaling

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

計量多次元尺度法

距離データを低次元に配置する方法

非計量多次元尺度法

類似度あるいは距離に変換可能なデータを低次元に配置する方法

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 11 / 40

Page 12: Tokyor09

他の手法との比較

判別分析、因子分析、主成分分析 ...↓

線形性を仮定している

クラスター分析

分類対象が非常多い場合解析結果に

意味を見出しにくくなる

MDS↓

個体間の距離のみで何らかの空間に布置するので

基本的に線形性の呪縛からは自由!

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 12 / 40

Page 13: Tokyor09

他の手法との比較

判別分析、因子分析、主成分分析 ...↓

線形性を仮定している

クラスター分析

分類対象が非常多い場合解析結果に

意味を見出しにくくなる

MDS↓

個体間の距離のみで何らかの空間に布置するので

基本的に線形性の呪縛からは自由!

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 13 / 40

Page 14: Tokyor09

他の手法との比較

判別分析、因子分析、主成分分析 ...↓

線形性を仮定している

クラスター分析

分類対象が非常多い場合解析結果に

意味を見出しにくくなる

MDS↓

個体間の距離のみで何らかの空間に布置するので

基本的に線形性の呪縛からは自由!

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 14 / 40

Page 15: Tokyor09

他の手法との比較

判別分析、因子分析、主成分分析 ...↓

線形性を仮定している

クラスター分析

分類対象が非常多い場合解析結果に

意味を見出しにくくなる

MDS↓

個体間の距離のみで何らかの空間に布置するので

基本的に線形性の呪縛からは自由!

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 15 / 40

Page 16: Tokyor09

他の手法との比較

判別分析、因子分析、主成分分析 ...↓

線形性を仮定している

クラスター分析

分類対象が非常多い場合解析結果に

意味を見出しにくくなる

MDS↓

個体間の距離のみで何らかの空間に布置するので

基本的に線形性の呪縛からは自由!

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 16 / 40

Page 17: Tokyor09

他の手法との比較

判別分析、因子分析、主成分分析 ...↓

線形性を仮定している

クラスター分析

分類対象が非常多い場合解析結果に

意味を見出しにくくなる

MDS↓

個体間の距離のみで何らかの空間に布置するので

基本的に線形性の呪縛からは自由!

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 17 / 40

Page 18: Tokyor09

他の手法との比較

判別分析、因子分析、主成分分析 ...↓

線形性を仮定している

クラスター分析

分類対象が非常多い場合解析結果に

意味を見出しにくくなる

MDS↓

個体間の距離のみで何らかの空間に布置するので

基本的に線形性の呪縛からは自由!

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 18 / 40

Page 19: Tokyor09

距離行列

データが量的データの場合、何らかの定義で

距離行列 Dn×n = [di j]を求めることが出来る

個体 iと個体 jの距離を di jで表す

di j = ||Xi − X j||

以下の距離の公理を満たす

di j ≥ 0

di j = d ji

di j + d jk ≥ dik

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 19 / 40

Page 20: Tokyor09

代表的な距離

ユークリッド距離

edi j =

√√√ p∑k=1

(xik − x jk)2

市街距離

cdi j =

p∑k=1

|xik − x jk|

ミンコフスキー距離

mdi j =q

√√√ p∑k=1

|xik − x jk|q

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 20 / 40

Page 21: Tokyor09

類似度

データが質的データの場合、類似度がよく用いられる

ピアソンの相関係数

ri j =

∑pk=1

(xik − xi)(x jk − x j)√∑pk=1

(xik − xi)2∑nk=1

(x jk − x j)2

パターン類似度

psi j =

∑pk=1

xikx jk√∑pk=1

x2ik

∑nk=1

x2jk

 

以下のような変換で距離として用いる

rdi j = 1 − ri j pdi j = 1 − psi j

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 21 / 40

Page 22: Tokyor09

AGENDA

自己紹介

多次元尺度法

計量的多次元尺度法

非計量的多次元尺度法

まとめ

最後に

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 22 / 40

Page 23: Tokyor09

計量的多次元尺度法の考え方

2点間の平方ユークリッド距離

d2i j= ||xi − x j||2 = (xi − x j)T(xi − x j)

= ||xi||2 + ||x j||2 − 2xTi

x j

2つのベクトルの内積

bi j = xTi

x j = xi1x j1 + xi2x j2 + · · · + xipx jp

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 23 / 40

Page 24: Tokyor09

計量的多次元尺度法の考え方

平方ユークリッド距離

d2i j= ||xi||2 + ||x j||2 − 2bi j

原点からのベクトルの長さ

d2i= ||xi||2

d2i j= d2

i+ d2

j− 2bi j

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 24 / 40

Page 25: Tokyor09

計量的多次元尺度法の考え方

内積 bi jは

bi j =1

2(d2

i+ d2

j− d2

i j)

個体間の距離が分かっていれば、

個体間の内積を求めることが出来る

 

 

得られた内積行列から個体の座標値を推定

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 25 / 40

Page 26: Tokyor09

計量的MDSケーススタディ

計量 MDSの関数cmdscale(d, k = 2, eig = FALSE)

d : dist関数が返すような距離構造のデータk : 次元

eig : 固有値を返すか否か

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 26 / 40

Page 27: Tokyor09

ヨーロッパの主な 21都市

(eur.cmd< −cmdscale(eurodist))plot(eur.cmd,type=”n”)text(eur.cmd,rownames(eur.cmd ))

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 27 / 40

Page 28: Tokyor09

irisを使った例

iris.dist< −dist(iris[,-5])iris.cmd< −cmdscale(iris.dist)plot(iris.cmd,type=”n”)iris.lab< −factor(c(rep(”S”,50),rep(”C”,50),rep(”V”,50)))text(iris.cmd,labels=iris.lab,col=unclass(iris.lab))

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 28 / 40

Page 29: Tokyor09

AGENDA

自己紹介

多次元尺度法

計量的多次元尺度法

非計量的多次元尺度法

まとめ

最後に

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 29 / 40

Page 30: Tokyor09

非計量的多次元尺度法

距離の公理を満たさない非類似度データに対して、

多次元尺度法を適用するために開発された手法

カルスカルのストレス

STRESS1 =

√√√√∑∑i, j(d̂i j − di j)2∑∑

d2i j

カルスカルの評価の目安

STRESS1 %表示 適合度の程度

0.200 20.0% 悪い

0.100 10.0% まずまず

0.050 5.0% よい

0.025 2.5% すばらしい

0.000 0% 完璧

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 30 / 40

Page 31: Tokyor09

非計量的MDSケーススタディ

MASS パッケージisoM DS(d, y = cmdscale(d, k), k = 2, maxit = 50, t race = TRUE, tol =

1e − 3, p = 2)

MASS パッケージsammon(d, y = cmdscale(d, k), k = 2, niter = 100, t race = TRUE, magic =

0.2, tol = 1e − 4)

vegan パッケージmetaM DS(comm, distance = ”bray”, k = 2, t rymax = 20, autotrans f orm =

TRUE, noshare = 0.1,wascores = TRUE, expand = TRUE, t race = 1, plot =FALSE, previous.best, old.wa = FALSE, ...)

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 31 / 40

Page 32: Tokyor09

人口データを使った例

install.packages(”mlbench”)library(mlbench)install.packages(”e1071”)set.seed(100)p< −mlbench.corners(n=160)lab=as.numeric(p$classes)x.dist< −dist(p$x)library(MASS)par(mar=c(4.5,4.5,1,1), mfrow=c(2,2))plot(cmdscale(x.dist),pch=lab,col=lab)plot(sammon(x.dist)$points,pch=lab,col=lab)plot(isoMDS(x.dist)$points,pch=lab,col=lab)install.packages(”vegan”)library(vegan)x.dist2< −as.matrix(x.dist)plot(metaMDS(x.dist2)$point,pch=lab,col=lab)

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 32 / 40

Page 33: Tokyor09

人口データを使った例

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 33 / 40

Page 34: Tokyor09

AGENDA

自己紹介

多次元尺度法

計量的多次元尺度法

非計量的多次元尺度法

まとめ

最後に

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 34 / 40

Page 35: Tokyor09

まとめ

多次元尺度法

計量多次元尺度法

距離データを低次元に配置する方法

cmdscale関数

非計量多次元尺度法

類似度あるいは距離に変換可能なデータを低次元に配置する方法

isoMDS関数sammon関数metaMDS関数

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 35 / 40

Page 36: Tokyor09

AGENDA

自己紹介

多次元尺度法

計量的多次元尺度法

非計量的多次元尺度法

まとめ

最後に

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 36 / 40

Page 37: Tokyor09

最後に

R勉強会@東京(Tokyo.R#10)発表者募集中です!

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 37 / 40

Page 38: Tokyor09

AGENDA

自己紹介

多次元尺度法

計量的多次元尺度法

非計量的多次元尺度法

まとめ

最後に

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 38 / 40

Page 39: Tokyor09

ご清聴ありがとうございました

@yokkuns 里 洋平 (R 勉強会@東京(Tokyo.R#09))R によるデータサイエンス 第 II 章第 4 章 多次元尺度法 2010/09/19 39 / 40