クラスター分析入門

クラスター分析入門
高崎経済大学
宮田 庸一
データ
x2
1
A
1
1
2
B
1
2
3
C
3
1
4
D
6
6
5
E
8
7
6
F
9
1
7
G
10
2
E
7
x1
D
6
ラベル
4
2
B
1
3
y
5
番号
A
G
C
2
F
4
6
x
8
10
クラスター分析
• 直感的に3 つのグループに分けられることが
わかる
• クラスター分析≒ ”データが近いものは同じグ
ループ”と考える
類似度
データ
• データとデータの”近さ”を測る
• 2点間の距離を”近さ”として考える
• 【例】 点A と点B の近さ
d12  (1 1)  (2 1)  1
2
2
•Aには1, B には2,Cには3 と、数を割り振り、
点A とC の距離であればd13とする
類似度行列
A
B
C
D
E
F
G
A
0
1
2
7.07
9.22
8
9.06
B
1
0
2.24
6.4
8.6
8.06
9
C
2
2.24
0
5.83
7.81
6
7.07
D
7.07
6.4
5.83
0
2.24
5.83
5.66
E
9.22
8.6
7.81
2.24
0
6.08
5.39
F
8
8.06
6
5.83
6.08
0
1.41
G
9.06
9
7.07
5.66
5.39
1.41
0
d13
d23
群平均法
• A とB が一番近いことがわかる
• 2 つの点をまとめて1 つの群にする. これは
(A,B) という記号で表す
• 次に(A,B),C,D,E,F,G それぞれの近さを測る
• A とB という点を含んだ群1 と点C との距離
をd(1,2)3 と表す
d13  d23
d(1,2)3 
2
群と点の距離
•A
•B
d13
•C
d23
d13  d23 2  2.24
d(1,2)3 

 2.12
2
2
群と群の距離
d14
•A
d13
d24
•B
•D
•C
d23
d13  d14  d23  d24 2 + 7.07+ 2.24 + 6.4
d(1,2)(3,4) 

 4.4275
4
4
クラスタリングの一連の作業
•
•
•
•
•
•
•
•
A,B,C,D,E,F,G
一番近いのはA とB の距離d12=1
→(A,B),C,D,E,F,G
2番目に近いのはF とG の距離d67=1.4
(A,B)とCの距離d(1,2)3=2.12
その他の距離も計算→ F とG の距離が近い
→(A,B),C,D,E,(F,G)
→(A,B,C),D,E,(F,G)
デンドログラム
4
G
F
B
A
E
C
1
d(1,2)3=2.12
D
2
3
きりの良い場所で線
を引く
高さ
5
6
7
Cluster Dendrogram
Ward法(クラスター内平方和)
群2
群1
•A(x1,y1)
•D(x4,y4)
 ( x1, y1 )
•B(x2,y2)
•C(x3,y3)
•E(x5,y5)
x1  x2  x3  x4 1 y1  y2  y3  y4
x 
y 
4
4
1
S  ( x1  x1 )2  ( y1  y1 )2  ( x2  x1 )2  ( y2  y1 )2
 ( x3  x1 )2  ( y3  y1 )2  ( x4  x1 )2  ( y4  y1 )2
 ( x5  x 2 )2  ( y5  y 2 )2
x 2  x5
y 2  y5
Ward法(クラスター内平方和)
群2
群1
•A(x1,y1)
•D(x4,y4)
•B(x2,y2)
•C(x3,y3)
 ( x1, y1 )
•E(x5,y5)
x1  x2  x5 1 y1  y2  y5 2 x3  x4 2 y3  y4
x 
y 
x 
y 
3
5
2
2
1
S  ( x1  x1 )2  ( y1  y1 )2  ( x2  x1 )2  ( y2  y1 )2  ( x5  x1 )2  ( y5  y1 )2
 ( x3  x 2 )2  ( y3  y 2 )2  ( x4  x 2 )2  ( y4  y 2 )2
Ward法
• 群1 と群2 を合わせたものと, 群1 と点E を合
わせたものなど, どのクラスター内平方和が
小さくなるのかを調べ, 最も小さくなるほうの
群と結合する
• 最初は与えられたn 個のデータはそれぞれ
別のクラスターだと考えて, その中で上の基
準で群と群をまとめていって最後には1 つの
クラスターにまとめる方法をWard法と言う.
R(インポート)
• データのインポート
data02<-read.csv("c:\\Program Files
\\R\\principal_data02.csv",header=T,row.name="name")
と入力しEnterを押す
name
国語
社会
数学
物理
英語
相川 英之
91
98
63
72
88
吾妻 博
57
70
83
79
63
阿部 美穂
63
64
78
82
66
飯田 卓也
66
67
67
40
82
上原 広幸
55
66
70
59
66
内田 弓子
95
95
81
76
91
14
Rによる実行
•
•
•
•
•
•
群平均法
hc<-hclust(dist(data02),"ave")
plot(hc,xlab="",ylab="高さ",sub="")
Ward法
hc<-hclust(dist(data02),“ward")
plot(hc,xlab="",ylab="高さ",sub="")