+

はじパタ
10章	
 クラスタリング	
 前半
(10.1 ~ 10.3)	
 

2014/3/4 yamakatu
+

omae dare yo	
 
n 

やまかつ(@yamakatu)

n 

フルスタックイクメンエンジニア

n 

主に検索方面

n 

gihyo.jp Mahoutで体感する機械学習の実践
n 

n 

合い言葉は「読まずにはてブだけ」

一部の心ない人たちからソーシャルチンピラって呼ばれてる
n 

インターネット怖い
+

最初に知っておくべきこと 1/2
+

最初に知っておくべきこと	
 2/2
+

10章	
 クラスタリング	
 
n 

教師なし学習の一つ

n 

入力データ間の類似度や非類似度から、データをグループ分け

n 

手法(やまかつ、ポッター小野氏)
n 

n 

n 

非階層的クラスタリング
n  K-means法
階層的クラスタリング(融合法)
n  単連結法
n  完全連結法
n  群平均法
n  ウォード法
n  重心法
n  メディアン法
混合分布(混合分布モデル
n  EMアルゴリズム
+

10.1 類似度と非類似度
+

10.1.1 距離の公理	
 
n 

データをグループ分け
n 
n 

n 

指標:類似度や非類似度
尺度:距離

距離の公理
n 

非負性:d(x,y) >= 0
反射律:d(x,y) = 0 の時、x = yが成り立つ

n 

対称性:d(x,y) = d(y,x)

n 

三角不等式:d(x,z) <= d(x,y) + d(y,z)

n 
+

10.1.2 ミンコフスキー距離	
 
n 

で、実際の距離の計算方法は?
n 

n 

パラメータa,bの値次第で以下の距離に派生する
n 
n 
n 
n 

n 

ミンコフスキー距離

a=1, b=1 :	
 市街地距離(マンハッタン距離)
a=2, b=2 :	
 ユークリッド距離
a=2, b=1 :ユークリッド距離の2乗(ユークリッド平方距離)
a=b=∞ :	
 チェビシェフ距離(各次元の差の内、最大の差が距離となる)

一言で言うと
n 
n 

aの増加:個々の特徴間の差の重みが大きくなる
bの増加:差分累乗和に対する重みが小さくなる
+

その他の距離	
 
n 

キャンベラ尺度(キャンベラ距離)

n 
n 

n 

方向余弦(方向余弦距離、コサイン類似度)

n 

n 

マンハッタン距離の亜種っぽい感じ
各次元を正規化できる

ベクトル間の角度を利用

LTの資料がまとまってるぽい
+

新鋭	
 
n 

アルベルト距離
n 
n 

??????????
いつかきっとアルベルトな方が説明してくれる、、、?
+

10.2 非階層型クラスタリ
ング(K-平均法)
+

10.2 非階層型クラスタリング
(K-平均法) 1/2	
 
n 

非階層型クラスタリング、と言うよりK-Meansの話

n 

目的
n 
n 

n 

d次元のN個のデータ
これをあらかじめ定めたK個のクラスタに分類する

定義

n 

各クラスタの代表ベクトルの集合
k番目の代表ベクトルが支配するクラスタ
帰属変数

n 

K-Meansの評価関数

n 

最適化

n 
n 
+

10.2 非階層型クラスタリング
(K-平均法)	
 2/2	
 
n 

アルゴリズム(逐次最適化)
n 

以下、TJO氏のサイト wikipedia(
http://en.wikipedia.org/wiki/K-means_clustering )から

1.	
 

n 

3.	
 

4.	
 

収束するまで3〜4を繰り返す
ちなみにKmeansの初期化ってやりかた2つあるよね
n  本:データをクラスタにランダムに割り当てる
n  wikipedia:ランダムに重心を決める
ちなみにK個のKはCanopyクラスタリングで求める方法があるぜよ
n 

n 

2.
+

10.3 階層型クラスタリン
グ(融合法)
+

10.3 階層型クラスタリング(融合法)	
 
n 

類似度の高い順に融合していって、最終的にN個のデータを一
つのクラスタに統合

n 

デンドログラムで表現できる
+

クラスタ間の類似度の定義	
 
n 

単連結法

n 

完全連結法

n 

群平均法

n 

ウォード法

n 

重心法

n 

メディアン法
+

10.3.1 単連結法	
 
n 

二つのクラスタA,B間でもっとも類似度の高いデータ間の距離
を、クラスタ間の距離にする
+

単連結法の性質	
 
n 

クラスタに一つデータが追加されると、他のクラスタとの距離は
小さくなるか、または変化しない
n 

最も距離が近いデータを採用してるから、遠くなることはない

n 

クラスタAとBが融合してクラスタCができた場合、他のクラスタ
Xとの距離

n 

大きなクラスタができる傾向がある
n 

n 

???

あるクラスタから同じ距離に二つのクラスタがある場合、どちら
を選んでも結果は同じ
n 

???
+

10.3.2 超距離	
 
n 

単連結法と完全連結法との間にいきなり出てきた、、、だと!?

n 

「二つのデータxiとxjが融合する直前のクラスタ間の距離」

n 

例題10.1にもどる
n 
n 
n 

n 

BとEの超距離を考える
クラスタBCとDEがあるとする
このクラスタ間の距離は、ユークリッド距離で単連結法だとd(C, E)で2√2になる

そういう訳で
n 
n 

「融合する直前」というより単に「融合前」
     でxiとxjが属するクラスタが融合する前のクラスタ間の距離を表現する
+

10.3.3 完全連結法	
 
n 

単連結法の逆

n 

クラスタ間でもっとも類似度の低いデータ間の距離をクラスタ間
の距離に

n 

性質も逆
n 

略
+

10.3.4 群平均法	
 
n 

二つのクラスタ間のすべてのデータ間の距離の平均

n 

式
n 

NA, NB:クラスタA, Bのデータ件数
+

10.3.5 ウォード法	
 
n 

クラスタを融合したときのクラスタ内変動の増加分で距離を定義

n 

この距離が小さなクラスタから融合する
n 

データ間の距離計算にはユークリッド距離(って書いてあるけど、他
じゃ駄目なの?)

n 

式

n 

階層法の中で最も精度が高い
Have a nice
clustering!!

はじパタ 10章 クラスタリング 前半