SlideShare a Scribd company logo
1 of 68
Download to read offline
パターン認識
Rで学ぶデータサイエンス
第3章
2013/07/16
at リクルート(CodeIQ)
@kenchan0130_aki
学生ニート
働いたら負け
自然言語処理
得意になりたい言語:Ruby
俺だよ俺
@kenchan0130_aki
学生ニート
働いたら負け
自然言語処理
得意になりたい言語:Ruby 女の子と仲良くなれそう
俺だよ俺
@kenchan0130_aki
学生ニート
働いたら負け
自然言語処理
得意になりたい言語:Ruby 女の子と仲良くなれそう
俺だよ俺
Seleniumでスクレイピング楽しすぎワロタ\(^o^)/
パターン認識
第3章 階層的クラスタリング
第2章 k-平均法
第1章 判別能力の評価
第4章 混合正規分布モデル
第5章 判別分析
第6章 ロジスティック回帰
第7章 密度推定
第8章 k-近傍法
第9章 学習ベクトル量子化
第10章 決定木
第11章 サポートベクターマシン
第12章 正規化とパス追跡
アルゴリズム
第13章 ミニマックス確率マシン
第14章 集団学習
第15章 2値判別から多値判別へ
パターン認識
第3章 階層的クラスタリング
第2章 k-平均法
第1章 判別能力の評価
第4章 混合正規分布モデル
第5章 判別分析
第6章 ロジスティック回帰
第7章 密度推定
第8章 k-近傍法
第9章 学習ベクトル量子化
第10章 決定木
第11章 サポートベクターマシン
第12章 正規化とパス追跡
アルゴリズム
第13章 ミニマックス確率マシン
第14章 集団学習
第15章 2値判別から多値判別へ
クラスタ分析って?クラスタ分析って?
• あるデータ間(2つのベクトル間)の距離を,
何かしら定義します.
クラスタ分析
• あるデータ間(2つのベクトル間)の距離を,
何かしら定義します.
• その距離の近さでデータを分類する手法です.
クラスタ分析
• あるデータ間(2つのベクトル間)の距離を,
何かしら定義します.
• その距離の近さでデータを分類する手法です.
• つまり, データの類似度に従ってグループ分けするこ
とが目的です.
クラスタ分析
• 大きくクラスタ分析は以下の2つに分類されます.
クラスタ分析
• 大きくクラスタ分析は以下の2つに分類されます.
クラスタ分析
1) 階層的クラスタリング
クラスタリングしたいすべてのデータに対して距離を求め,
距離が短い順にデータをまとめる方法です.
• 大きくクラスタ分析は以下の2つに分類されます.
クラスタ分析
1) 階層的クラスタリング
クラスタリングしたいすべてのデータに対して距離を求め,
距離が短い順にデータをまとめる方法です.
2) 非階層的クラスタリング
分割結果が得られるようにデータを分類しなおすことを繰返し
て, 最終的な分割結果を得る手法です.
• 帰属度を考慮する場合以下の2つに分けられます.
クラスタ分析
• 帰属度を考慮する場合以下の2つに分けられます.
クラスタ分析
1) ソフトクラスタリング
データが複数のクラスタに属することを許すクラスタリング手法
です.
データが各クラスタに属する度合いが出力となります.
ex. 混合分布モデル, pLSI, NMF
• 帰属度を考慮する場合以下の2つに分けられます.
クラスタ分析
1) ソフトクラスタリング
データが複数のクラスタに属することを許すクラスタリング手法
です.
データが各クラスタに属する度合いが出力となります.
ex. 混合分布モデル, pLSI, NMF
2) ハードクラスタリング
データがある1つのクラスタに属する形で出力されるクラスタリ
ング手法です.
一般的にクラスタリングというとこちらを示すことが多いです.
階層的クラスタリングのお話
• クラスタリングしたいすべてのデータに対して距
離を求め, 距離が短い順にデータをまとめる方法
です.
階層的クラスタリング
• クラスタリングしたいすべてのデータに対して距
離を求め, 距離が短い順にデータをまとめる方法
です.
• 距離の求め方で色々名前が付いています.
階層的クラスタリング
• クラスタリングしたいすべてのデータに対して距
離を求め, 距離が短い順にデータをまとめる方法
です.
• 距離の求め方で色々名前が付いています.
• 全てに対して分析をかけるので, データの数が多
いとその分時間がかかってしまいます.
階層的クラスタリング
距離のお話距離のお話
∼データ間の場合∼∼データ間の場合∼
データ間の距離
• ユークリッド距離
一般的な平方距離.
各成分の差の2乗和の平方根.
各ベクトル成分は
データ間の距離
• ミンコフスキー距離
ユークリッド距離をq乗に一般化した距離.
各成分の差のq乗和のq乗根.
各ベクトル成分は
データ間の距離
• 最大距離
各成分の差の中での最大値.
各ベクトル成分は
データ間の距離
• マンハッタン距離
格子状に引かれた路に沿って移動するときの距離.
各成分の差の絶対値の和.
各ベクトル成分は
データ間の距離
• キャンベラ距離
原点付近での違い強調するように各座標軸における位置を考慮して
マンハッタン距離を修正した距離.
各成分の絶対値の和に対する成分の差の絶対値の比の合計.
各ベクトル成分は
データ間の距離
• バイナリ距離
質的変数を対象とした距離.
各成分を0と1の2値とし, 少なくともどちらか一方が1である成分数
に対する一方のみである成分数の比率.
各ベクトル成分は
• データの性質に応じて適宜使い分ける必要があります.
データ間の距離
• データの性質に応じて適宜使い分ける必要があります.
• 単位の取り方で分析結果が異なることがあるため, デー
タを正規化すると良い場合があります.
データ間の距離
距離のお話距離のお話
∼クラスタ間の場合∼∼クラスタ間の場合∼
クラスタ間の距離
• 最短距離法
2つのクラスタに属するデータのうち, 最も近いデータ間の距離をク
ラスタ間の距離とする方法.
いくつかのデータからなるクラスタ
結合後の距離は以下の式で表されます.
クラスタ間の距離
• 最長距離法
2つのクラスタに属するデータのうち, 最も遠いデータ間の距離をク
ラスタ間の距離とする方法.
いくつかのデータからなるクラスタ
結合後の距離は以下の式で表されます.
クラスタ間の距離
• 群平均法
2つのクラスタに属するデータ間のすべての組合せの距離を求め, そ
の平均値をクラスタ間の距離とする方法.
いくつかのデータからなるクラスタ
結合後の距離は以下の式で表されます.
クラスタ間の距離
• McQuitty法
2つのクラスタを統合した場合に, 他のクラスタからの距離を単純平
均で算出する方法.
いくつかのデータからなるクラスタ
クラスタ間の距離
• 重心法
各クラスタに含まれるデータの重心を用いてクラスタの距離を定義
する方法.
いくつかのデータからなるクラスタ
結合後は以下の関係が成り立ちます.
クラスタ間の距離
• メディアン法
重心法と同様にクラスタを中心に用いて距離を定義し,
クラスタ結合時に新たな重心を元の重心の中点に取る方法.
いくつかのデータからなるクラスタ
クラスタ間の距離
• ウォード法
新しいデータがクラスタに加わるとき, 最も広がりが小さく抑えられ
るクラスタにそのデータを加えてクラスタを形成する方法.
いくつかのデータからなるクラスタ
結合後は以下の関係が成り立ちます.
• 最短距離法や最長距離法は外れ値などの影響を受けや
すいです.
クラスタ間の距離
• 最短距離法や最長距離法は外れ値などの影響を受けや
すいです.
• 1度だけ全ての2点間の距離を計算すればよいため, 計算
時間が短くて済みます.
クラスタ間の距離
• 最短距離法や最長距離法は外れ値などの影響を受けや
すいです.
• 1度だけ全ての2点間の距離を計算すればよいため, 計算
時間が短くて済みます.
• 群平均法やウォード法は鎖効果が起こりにくいです.
クラスタ間の距離
• 最短距離法や最長距離法は外れ値などの影響を受けや
すいです.
• 1度だけ全ての2点間の距離を計算すればよいため, 計算
時間が短くて済みます.
• 群平均法やウォード法は鎖効果が起こりにくいです.
• クラスタを作るたびに距離を計算し直すため, 多量のデ
ータに対して計算時間が増えることになります.
クラスタ間の距離
クラスタ間の距離
巨大なクラスターが生じることを「鎖効果」といいます
で、codeはー?で、codeはー?
• データ間の距離を計算にはdist関数を用います.
Rでの実装例
• データ間の距離を計算にはdist関数を用います.
• methodオプションで, どの距離を使用するか選択で
きます.
Rでの実装例
• データ間の距離を計算にはdist関数を用います.
• methodオプションで, どの距離を使用するか選択で
きます.
• デフォルトではユークリッド距離が選択されています.
Rでの実装例
• データ間の距離を計算にはdist関数を用います.
• methodオプションで, どの距離を使用するか選択で
きます.
• デフォルトではユークリッド距離が選択されています.
Rでの実装例
- euclidean : ユークリッド距離
- maximum : 最大距離
- manhatttan : マンハッタン距離
- canberra : キャンベラ距離
- binary : バイナリ距離
- minkowski : ミンコフスキー距離
• データ間の距離を計算にはdist関数を用います.
• methodオプションで, どの距離を使用するか選択で
きます.
• デフォルトではユークリッド距離が選択されています.
Rでの実装例
- euclidean : ユークリッド距離
- maximum : 最大距離
- manhatttan : マンハッタン距離
- canberra : キャンベラ距離
- binary : バイナリ距離
- minkowski : ミンコフスキー距離
• クラスタ間の距離を計算にはhclust関数を用います.
Rでの実装例
• クラスタ間の距離を計算にはhclust関数を用います.
• methodオプションで, どの距離を使用するか選択で
きます.
Rでの実装例
• クラスタ間の距離を計算にはhclust関数を用います.
• methodオプションで, どの距離を使用するか選択で
きます.
• デフォルトでは最長距離法が選択されています.
Rでの実装例
• クラスタ間の距離を計算にはhclust関数を用います.
• methodオプションで, どの距離を使用するか選択で
きます.
• デフォルトでは最長距離法が選択されています.
Rでの実装例
- ward : ウォード法
- single : 最短距離法
- complete : 最長距離法
- average : 群平均法
- mcquitty : McQuitty法
- median : メディアン法
- centroid : 重心法
• クラスタ間の距離を計算にはhclust関数を用います.
• methodオプションで, どの距離を使用するか選択で
きます.
• デフォルトでは最長距離法が選択されています.
Rでの実装例
- ward : ウォード法
- single : 最短距離法
- complete : 最長距離法
- average : 群平均法
- mcquitty : McQuitty法
- median : メディアン法
- centroid : 重心法
Rでの実装例
Rでの実装例
距離の違いによる樹形図の相違
hOdhOdhOdhodhodhodhYdhYdhYdhedhedhedhadhadhadhadhudhudhudhudhUdhUdhUdhUdhUdhIdhIdhIdhidhidhEdhEdhAdhAdhAdhAd
02468
euclidean and complete
hclust (*, "complete")
dist(x)
Height
hIdhIdhIdhidhidhEdhEdhAdhAdhAdhAdhOdhOdhOdhodhodhodhYdhYdhYdhedhedhedhadhadhadhadhudhudhudhudhUdhUdhUdhUdhUd
051525
euclidean and ward
hclust (*, "ward")
dist(x)
Height
hAdhAdhAdhAdhidhidhIdhIdhIdhEdhEdhOdhOdhOdhodhodhodhYdhadhYdhYdhedhedhedhadhadhadhudhudhudhudhUdhUdhUdhUdhUd
0510152025
manhattan and complete
hclust (*, "complete")
dist(x, method = "manhattan")
Height
hEdhEdhAdhAdhAdhAdhIdhIdhIdhidhidhOdhOdhOdhodhodhodhYdhYdhYdhedhedhedhadhadhadhadhudhudhudhudhUdhUdhUdhUdhUd
020406080
manhattan and ward
hclust (*, "ward")
dist(x, method = "manhattan")
Height
• ユークリッド距離を用いた最長距離法では, 他と比べ
て鎖効果が多少強い樹形図が描かれています.
Rでの実装例
• 樹系図をいくつかのグループに分割する方法として,
rect.hclust関数があります.
• 指定した分割数の長方形が描画されます.
• 必要な部分木のみを取得することもできます.
Rでの実装例
Rでの実装例
Rでの実装例
樹形図の分割(左)とその部分木(右)
hOdhOdhodhudhIdhIdhEdhEdhidhidhudhIdhidhudhudhIdhIdhidhidhOdhYdhYdhAdhadhAdhEdhEdhEdhedhedhedhudhedhedhadhedhUdhadhodhodhodhUdhUdhodhodhYdhYdhudhudhudhOdhYdhOdhOdhYdhYdhedhedhedhUdhUdhUdhodhodhodhidhUdhUdhYdhYdhYdhAdhYdhEdhadhAdhAdhEdhEdhIdhEdhEdhudhudhYdhYdhedhedhedhidhidhIdhIdhidhIdhedhedhedhedhad
020406080100120140
Cluster Dendrogram
hclust (*, "ward")
dist(x, method = "manhattan")
Height
hUd
hUd
hUd
hod
hod
hod
hid
hUd
hUd
0246810121416
Cluster Dendrogram
hclust (*, "ward")
dist(x[grp[[7]], ], method = "manhattan")
Height
今日のまとめ今日のまとめ
まとめ
• 階層的クラスタリングは, 全てのデータに対して距離を
計算するものでした.
まとめ
• 階層的クラスタリングは, 全てのデータに対して距離を
計算するものでした.
• 距離の計算方法によって計算量が変わります.
まとめ
• 階層的クラスタリングは, 全てのデータに対して距離を
計算するものでした.
• 距離の計算方法によって計算量が変わります.
• データに分布を仮定したりしないので, 数学的にあまり
面倒な議論をしないでもOK.
まとめ
• 階層的クラスタリングは, 全てのデータに対して距離を
計算するものでした.
• 距離の計算方法によって計算量が変わります.
• データに分布を仮定したりしないので, 数学的にあまり
面倒な議論をしないでもOK.
• クラスタに分けたあとのクラスタ毎の意味付け頑張って
下さい^^ (←これが一番大変だと思います. )
まとめ
• 階層的クラスタリングは, 全てのデータに対して距離を
計算するものでした.
• 距離の計算方法によって計算量が変わります.
• データに分布を仮定したりしないので, 数学的にあまり
面倒な議論をしないでもOK.
• クラスタに分けたあとのクラスタ毎の意味付け頑張って
下さい^^ (←これが一番大変だと思います. )
• Rにはクラスタリングのための機能を提供する, cluster
パッケージがあるので是非使ってみて下さい!
Have a nice clustering!!

More Related Content

Similar to はじパタLT3

Learning in a small world
Learning in a small worldLearning in a small world
Learning in a small worldShingo Horiuchi
 
130323 slide all
130323 slide all130323 slide all
130323 slide allikea0064
 
Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析
Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析
Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析hnisiji
 
PRML輪読#5
PRML輪読#5PRML輪読#5
PRML輪読#5matsuolab
 
Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...
Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...
Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...Gou Koutaki
 

Similar to はじパタLT3 (8)

Anomaly detection survey
Anomaly detection surveyAnomaly detection survey
Anomaly detection survey
 
Learning in a small world
Learning in a small worldLearning in a small world
Learning in a small world
 
機械学習
機械学習機械学習
機械学習
 
130323 slide all
130323 slide all130323 slide all
130323 slide all
 
Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析
Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析
Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析
 
PRML輪読#5
PRML輪読#5PRML輪読#5
PRML輪読#5
 
Maeshori missing
Maeshori missingMaeshori missing
Maeshori missing
 
Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...
Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...
Locally Optimized Product Quantization for Approximate Nearest Neighbor Searc...
 

More from Tadayuki Onishi

そろそろSublime Text 2を熱く語ろうと思う
そろそろSublime Text 2を熱く語ろうと思うそろそろSublime Text 2を熱く語ろうと思う
そろそろSublime Text 2を熱く語ろうと思うTadayuki Onishi
 
はじパタLT Section1
はじパタLT Section1はじパタLT Section1
はじパタLT Section1Tadayuki Onishi
 
Data Mining with R algae bloom case
Data Mining with R algae bloom caseData Mining with R algae bloom case
Data Mining with R algae bloom caseTadayuki Onishi
 

More from Tadayuki Onishi (7)

そろそろSublime Text 2を熱く語ろうと思う
そろそろSublime Text 2を熱く語ろうと思うそろそろSublime Text 2を熱く語ろうと思う
そろそろSublime Text 2を熱く語ろうと思う
 
はじパタLT Section1
はじパタLT Section1はじパタLT Section1
はじパタLT Section1
 
アド部6回発表
アド部6回発表アド部6回発表
アド部6回発表
 
アド部5回発表
アド部5回発表アド部5回発表
アド部5回発表
 
garchfit
garchfitgarchfit
garchfit
 
Data Mining with R algae bloom case
Data Mining with R algae bloom caseData Mining with R algae bloom case
Data Mining with R algae bloom case
 
Tokyo r 10_12
Tokyo r 10_12Tokyo r 10_12
Tokyo r 10_12
 

Recently uploaded

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Recently uploaded (9)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

はじパタLT3