0 年 6 月 日 ( 月 ) 問題解決技法入門 クラスタ分析 堀田敬介
クラスタ分析 Cotets クラスタ分析. クラスタ分析概要. 類似度の測定. クラスタ化の方法の決定 ( 類似度更新法 ) クラスタ分析 階層的方法 の実施. Excelで計算したクラスタ分析,Rによるクラスタ分析 5. クラスター分析実施上の注意点 クラスタ分析 非階層的方法 6. 非階層的クラスター分析 K-meas 法 7. Rによるクラスター分析 K-meas 法
. クラスタ分析概要 クラスタ分析とは? どれとどれが似てる? ( 同じクラスター?) 複数の対象 ( もの, 変数など ) を, その属性によって類似度 (similaity) をはかり, 均質な集団 (cluste) に分類する方法の総称
. クラスタ分析概要 クラスタ分析の種類 階層的方法 樹形図 ( デンドログラム ) を作成 目的により高さを決めてクラスタリング 非階層的方法 予めクラスタ数を決め (o 決まっていて ), 似てない クラスタリングを行う類似度似てる 例 : つのクラスタに分類
. クラスタ分析概要 例 : 階層的方法 ( 対象の属性が つの場合 ) 属性 6 x 5 A F C どうやってクラスタ間の近さ を決めるのか G B D E どうやって類似度を測るのか 例 )C と E の類似度? 例 ) クラスタ (G,B) とクラスタ (D) の近さ? 0 5 6 7 x 属性
. クラスタ分析概要 どうやって類似度を測るか? 6 6 x x 5 5 5 5 5 6 5 6
. 類似度の測定 距離 間隔尺度 ユークリッド距離ユークリッド平方距離重み付きユークリッド距離マンハッタン距離ミンコフスキー距離マハラノビス汎距離 類似度は尺度により距離や相関で測る ( 距離 : 近いほうが類似 ) ( 相関 : 高いほうが類似 ) 距離 名義尺度 [0, ] 類似比 一致係数 Russel-Rao 係数 Roges-Taimoto 係数 Hama 係数 ファイ係数 相関 間隔尺度 Peaso の積率相関係数 ベクトル内積 変量間類似度 名義尺度 平均平方根一致係数 グッドマン クラスカルの λ 相関 順序尺度 Seama の順位相関係数 Kedall の順位相関係数 クラスタ分析ノート.df
. 類似度の測定 データと尺度 比率尺度 比率尺度 間隔尺度 間隔尺度 間隔尺度 順序尺度 順序尺度 順序尺度 順序尺度 名義尺度名義尺度名義尺度名義尺度名義尺度名義尺度名義尺度 学籍番号 氏名 性別 生年月日 身長 体重 問題発見技法成績 文教太郎 男 987.5.6 75cm 69kg B 湘南花子 女 988.. 6cm 8kg AA 量的データ ( 数値データ ) 質的データ ( カテゴリデータ ) 厳密 比率尺度 間隔尺度 順序尺度 名義尺度 曖昧 単なる分類, 区別ができる例 ) 名前, 性別 比に意味がある ( 絶対原点が存在する ) 例 ) 身長 80cm の A さんは息子 (00cm) の.8 倍背が高い 差に意味がある例 ) 温度気温 0 より 0 の方が 0 高い 順序関係がある ( 順序に意味がある ) 例 ) 成績評価 (A > B > C > D)
. 類似度の測定 個体間類似度 ユークリッド距離 (cf. l - ノルム ) マンハッタン距離 (cf. l - ノルム ) ミンコフスキー距離 (cf. l - ノルム ) (cf. l - ノルム ) マハラノビス汎距離 ユークリッド平方距離 クラスター分析でよく使われる ( 注 : 各ノルムとは 変量の差ベクトルに対するノルム ) x 0 G l l ( C, D) 5 ( 7) ( ) ( C, D) 7 7 ( C, D).98 7 l l l ( C, D) max{ 7, } ( C, D) 5 ( 7) ( ) B D A F 7 (,) 5 5.98 C E 7 (7,) x
. 類似度の測定 個体間類似度 ユークリッド距離 (cf. l - ノルム ) マンハッタン距離 (cf. l - ノルム ) ミンコフスキー距離 (cf. l - ノルム ) (cf. l - ノルム ) x マハラノビス汎距離 変量版 x=( x, x ) D 多変量版 x=( x,, x m ) D ( x u B A 左側の対象内での,A-B 間距離と右側の対象内での A-B 間距離が異なる!( ユークリッド距離などでは同じ ) u uu x ) T ( x x ) x x B A u, u は x, x の標準化変量で, u x, u x x μ,μ はそれぞれ x, x の平均 σ,σ はそれぞれ x, x の標準偏差 ρ は x, x の相関係数 Σ は x, x の分散共分散行列
. 類似度の測定 どうやって類似度を測るか? 例 : ユークリッド平方距離 6 6 x x 5 5 5 5 5 6 7 5 8 6 5 8 0 6 5 9 5 8 6 5 6
. 類似度の測定どうやって類似度を更新するか? 6 6 x x 5 5 5 5 5 6 7 5 8 6 5 8 0 6 5 9 5 8 6 5 6
. 類似度の測定どうやって類似度を更新するか?, 6 6 x x 5,5 5 5 5 6,7 5,8 6 5,8 0 6, 5,5 9,,8 6 5 6
. クラスタ化の方法 新たなクラスタ生成時の類似度の更新方法 クラスタ, クラスタ が一つのクラスタ t になる場合, 他のクラスタ との類似度をどう更新する? t s s s t? s. 最短距離法. 最長距離法. 群平均法. 重心法 5. 中央値法 6. ウォード法 (s : クラスタ, の類似度 ) 最短 か 最長 か何らかの 平均
. クラスタ化の方法. 最短距離法 (eaest eighbo method) 単連結法 (sigle likage method) s t = mi{s, s } s s あるクラスタにおいて, クラスタ内の各対象が, そのクラスタ外の任意の対象よりも, そのクラスタ内の少なくとも つの対象とより近接している. 類似度は, 対象間の類似度の大小関係だけで決まる. よって, 類似度 ( 距離 ) は順序尺度ならばよい. t s
. クラスタ化の方法. 最短距離法 s t = mi{s, s } t 5
. クラスタ化の方法. 最長距離法 (futhest eighbo method) 完全連結法 (comlete likage method) s t = max{s, s } s s あるクラスタにおいて, クラスタ内の全ての対象が, そのクラスタ外の任意の対象との距離よりも常に近接している. t 類似度は, 対象間の類似度の大小関係だけで決まる. よって, 類似度 ( 距離 ) は順序尺度ならばよい. s t
. クラスタ化の方法. 最長距離法 s t = max{s, s } t 5 5
. クラスタ化の方法. 群平均法 (gou aveage method) s t s : クラスタ に含まれる対象数 : クラスタ に含まれる対象数 s s s 類似度は, 間隔尺度ならば OK t s t s s
. クラスタ化の方法. 群平均法 s t s s t 5 5
. クラスタ化の方法. 重心法 (cetoid method) st s s ( ) : クラスタ に含まれる対象数 : クラスタ に含まれる対象数 導出過程より, 類似度 S t はユークリッド平方距離の時のみ妥当. cf. ファイル クラスタ分析ノート.df x x t x t x t s x t x s s t s x はベクトル
. クラスタ化の方法. 重心法 5 t s s s s ) ( t ) ( 5
. クラスタ化の方法 5. 中央値法 (media method) st s s s ( 重心法の簡易版, 重心の代わりに中央値を取る重心法で :=, := に相当 ) s s 導出過程より, 類似度 S t はユークリッド平方距離の時のみ妥当. cf. ファイル クラスタ分析ノート.df t t s t x x t : x x t x x x はベクトル
. クラスタ化の方法 5. 中央値法 s t s s t s 5 5
. クラスタ化の方法 6. ウォード法 (Wad method) s t s s s : クラスタ に含まれる対象数 : クラスタ に含まれる対象数 : クラスタ に含まれる対象数 s s 導出過程より, 類似度 S t はユークリッド平方距離の時のみ妥当. cf. ファイル クラスタ分析ノート.df t s t
. クラスタ化の方法 6. ウォード法 5 5 t t s s s s
. クラスタ化の方法どうやって類似度を更新するか? : 6 6 x x 5:5 5 5 5 6:7 5 :8 6 5:8 0 6 : 5:5 9: :8 6 5 6
: x x 5:5 5 5.7 5 0. 6 8. 0 6 : 5:5 8..7 6 5 6. クラスタ化の方法どうやって類似度を更新するか? 7 6 8 8 5 9 8
. クラスタ化の方法 どうやって類似度を更新するか? x x 5 5.7 5 0. 6 8. 0 6 8..7
. クラスタ化の方法 どうやって類似度を更新するか? x x 5:5.7 5 0.:8. :0 6:6 8..7
x x 6.7 5 0.5 5. 7. 8..7. クラスタ化の方法どうやって類似度を更新するか? 5 5 8. 0. 0 6 6
. クラスタ化の方法 どうやって類似度を更新するか? x x 6.7 5 0.5 5. 7. 8..7
. クラスタ化の方法 どうやって類似度を更新するか? x x 6.7 5: 0.5 5.:7. 8.:.7
x x 6.7 0.5 5.5. クラスタ化の方法どうやって類似度を更新するか? 5 7. 5..7 8.
. クラスタ化の方法 6 どうやって類似度を更新するか? x x 6.7 0.5 5.5
. クラスタ化の方法 6 どうやって類似度を更新するか? x x 6.7 0.5 5.5
x x 6 7 8.5. クラスタ化の方法どうやって類似度を更新するか? 6 6 0.5.7 6 5
. クラスタ化の方法.5 どうやって類似度を更新するか? x x 7 8.5
. クラスタ化の方法.5 どうやって類似度を更新するか? x x 7 8.5
. クラスタ化の方法.5 どうやって類似度を更新するか? x x 7..5 7 8.5
. クラスタ化の方法 7. どうやって類似度を更新するか? x x 7.
. クラスタ分析の実施 Excel を用いて計算するクラスタ分析 : 例 対象 :5 人の学生 対象の属性 :7 つ 属性 属性 属性 属性 属性 5 属性 6 属性 7 太郎 7 次郎 6 5 8 9 5 5 三郎 5 5 9 7 四郎 5 8 7 9 五郎 8 6 0 距離 : ユークリッド平方距離 l ( Tao, Jio) ( 6) ( 5) ( 5 ) クラスタ間の類似度更新方法 : 群平均法 s t s s t s t s s t s s s
. クラスタ分析の実施 Excel で計算によるクラスタ分析 : 例 属性 属性 属性 属性 属性 5 属性 6 属性 7 太郎 7 次郎 6 5 8 9 5 5 三郎 5 5 9 7 四郎 5 8 7 9 五郎 8 6 0 類似度の測定 : ユークリッド平方距離による 太郎 次郎 三郎 四郎 次郎 97 三郎 86 509 四郎 0 66 75 五郎 89 8 69 類似度の更新 : 群平均法による l ( Tao, Jio) 97 ( 6) ( 5 ) t 次郎 s t 97 0 四郎太郎太郎次 & 四三郎 次 & 四 00 三郎 86 9 五郎 89 6 69 st s s s s t s
. クラスタ分析の実施 Excel で計算によるクラスタ分析 : 例 太郎次 & 四三郎 次 & 四 00 三郎 86 9 五郎 89 6 69 類似度の更新 : 群平均法による 太 &( 次 & 四 ) 三郎 三郎 56.67 五郎 05 69 太 &( 次 & 四 ) 三郎 三郎 56.67 五郎 05 69 類似度の更新 : 群平均法による t 次 & 四 05 s t 太郎 00 s t 86 9 s s t 55.5 s s 三郎 s 五 &( 太 &( 次 & 四 )) 三郎 55.5 66 五郎太郎次郎四郎三郎樹形図 ( デンドログラム )
. クラスタ分析の実施 R によるクラスタ分析 :. 起動画面とデータファイル R 起動時画面 データを csv ファイルで用意 (Excel や edito で作成 ) ファイル data-seiseki.csv 算数 理科 国語 英語 社会 太郎 90 00 70 90 0 次郎 80 60 70 70 0 三郎 00 0 0 70 80 四郎 60 0 0 80 80 花子 0 60 80 90 90 寒子 50 60 0 0 60 湘子 90 00 90 80 70
. クラスタ分析の実施 R によるクラスタ分析 :. クラスタ分析の実施例 csv ファイルを読み込み, 変数 seiseki に格納 変数 seiseki の中身確認 クラスタ化 :wad 法類似度 :mahatta 距離を確認! 対象の数 :7 対象間の類似度を mahatta 距離で測定し, 変数 seiseki.d に格納 変数 seiseki.d の中身確認 wad 法でクラスタ分析を実施し, 変数 seiseki.hc に格納 結果を樹形図で表示 注 )wad 法を用いる場合, 距離はユークリッド平方距離を使うのが妥当
. クラスタ分析の実施 R によるクラスタ分析 :. 結果 cf. 元データ 算数理科国語英語社会 太郎 90 00 70 90 0 次郎 80 60 70 70 0 三郎 00 0 0 70 80 四郎 60 0 0 80 80 花子 0 60 80 90 90 寒子 50 60 0 0 60 湘子 90 00 90 80 70
. クラスタ分析の実施 R によるクラスタ分析 :. 手法選択について 距離の測定 : 関数 dist( ) 書式 :dist( data, method ) method の部分に距離の測定方法を指定 euclidea ユークリッド距離 (l ノルム ) ex) dist( data ) 指定無しだとこれ mahatta マンハッタン距離 (l ノルム ) ex) dist( data, mahatta ) mikowski ミンコフスキー距離 (l ノルム ) ex) dist( data, mikowski, = ) maximum l ノルム ex) dist( data, maximum ) 注 ) ユークリッド平方距離は, ユークリッド距離の計算後, 乗する クラスタ化の方法 : 関数 hclust( ) 書式 :hclust( data.d, method ) method の部分にクラスタ化の方法を指定 sigle 最短距離法 ex) hclust( data.d, sigle ) comlete 最長距離法 ex) hclust( data.d, comlete ) aveage 群平均法 ex) hclust( data.d, aveage ) cetoid 重心法 ex) hclust( data.d^, cetoid ) media 中央値法 ex) hclust( data.d, media ) wad ウォード法 ex) hclust( data.d^, wad ) 注 ) この つの手法では ユークリッド平方距離 を用いる (data.d がユークリッド距離の計算結果でその 乗を使用 )
. クラスタ分析の実施 R commade によるクラスタ分析 名前 国語英語数学理科社会 太郎 57 7 6 7 7 次郎 77 8 58 7 9 三郎 5 50 5 四郎 9 5 56 6 56 茅ヶ子 57 56 7 59 58 寒子 55 80 69 8 5 藤子 77 65 69 79 塚子 59 55 67 56 68 鎌子 6 5 5 56 60 元データ [*.csv] 左上のような *.csv ファイルのデータ読込例
アクティブデータセット の ケース名の設定 法
階層的クラスター分析の実施手順例
5. クラスター分析実施上の注意点 クラスター分析の長所 探索的手法なので, データ構造を事前に知らなくてよいあらゆる種類のデータに適用可能 : 数値 カテゴリー適用が簡単 クラスター分析の短所 どんな属性値を選んだらいいのか? どの類似度 ( 距離 ) 測定法を選んだらいいのか? どのクラスタ化更新法を選んだらいいのか? データのスケーリング 結果の解釈が困難な可能性がある 迷ったらとりあえず ユークリッド平方距離 で 迷ったらとりあえず ウォード法 で
6. 非階層的クラスタ分析 K-meas 法 事前にクラスタ数を K としてクラスタリングを行う 例 : つのクラスタ (K=) に分類したい! としよう
6. 非階層的クラスタ分析 K-meas 法 Ste0:K を決める (ex. K:=) Ste:K 個の種を置く Ste: 何らかの距離により, もっとも近い種に含まれるよう境界線で分ける. (ex. Euclidea distace) (cf. Voooi diagams) x 6 5 G B A F C E D 0 5 6 7 x
6. 非階層的クラスタ分析 K-meas 法 Ste0:K を決める (ex. K:=) Ste: K 個の種を置く Ste: 何らかの距離により, もっとも近い種に含まれるよう境界線で分ける. (ex. Euclidea distace) (cf. Voooi diagams) Ste: 各クラスタごとに何らかの距離により, 重心を計算し, 新たな種とする. x 6 5 G B A D F C E 0 5 6 7 x
6. 非階層的クラスタ分析 K-meas 法 Ste0:K を決める (ex. K:=) Ste: K 個の種を置く x 6 5 A F Ste: 何らかの距離により, もっとも近い種に含まれるよう境界線で分ける. (ex. Euclidea distace) (cf. Voooi diagams) B C Ste: 各クラスタごとに何らかの距離により, 重心を計算し, 新たな種とする. G D E Ste- をクラスタが更新されなくなるまで繰り返す 0 5 6 7 x
6. 非階層的クラスタ分析 K-meas 法 Ste0:K を決める (ex. K:=) Ste: K 個の種を置く x 6 5 A F Ste: 何らかの距離により, もっとも近い種に含まれるよう境界線で分ける. (ex. Euclidea distace) (cf. Voooi diagams) B C Ste: 各クラスタごとに何らかの距離により, 重心を計算し, 新たな種とする. G D E Ste- をクラスタが更新されなくなるまで繰り返す 0 5 6 7 x
6. 非階層的クラスタ分析 K-meas 法 Ste0:K を決める (ex. K:=) Ste: K 個の種を置く x 6 5 A F Ste: 何らかの距離により, もっとも近い種に含まれるよう境界線で分ける. (ex. Euclidea distace) (cf. Voooi diagams) B C Ste: 各クラスタごとに何らかの距離により, 重心を計算し, 新たな種とする. G D E Ste- をクラスタが更新されなくなるまで繰り返す 0 5 6 7 x
7. クラスタ分析の実施 R によるクラスタ分析 :.K-meas 法による結果 K-meas 法でクラスタ数を として分析を実施し, 変数 seiseki.km に格納 結果 : cluste: 花子 cluste: 三郎, 四郎, 寒子 cluste: 太郎, 次郎, 湘子 cf. 元データ 算数理科国語英語社会 太郎 90 00 70 90 0 次郎 80 60 70 70 0 三郎 00 0 0 70 80 四郎 60 0 0 80 80 花子 0 60 80 90 90 寒子 50 60 0 0 60 湘子 90 00 90 80 70
R commade による非階層的クラスター分析 (K-meas 法 ) の実施手順例
演習 類似度をマンハッタン距離で測定し, クラスタ間の類似度更新に最短距離法を用いてクラスタ分析をしよう! x 6 D E 5 F C A G B 0 5 6 7 x
参考文献 田中豊 脇本和昌 多変量統計解析法 現代数学社 (98) 河口至商 多変量解析入門 Ⅱ 森北出版 (978,005) 青木繁伸 Rによる統計解析 オーム社 (009) 荒木孝治 R と R コマンダーではじめる多変量解析 日科技連 (007) 金明哲 Rによるデータサイエンス 森北出版 (007) 新納浩幸 Rで学ぶクラスタ解析 オーム社 (007)