階層的クラスタリングの世界へようこそ!
教師なし学習の旅の中で、前回はK-means法(K平均法)について学びました。K-means法は非常に強力ですが、大きな「悩み」が一つあります。それは、分析を始める前に「いくつのクラスタ(K)に分けるか」をコンピュータに正確に教えなければならないという点です!もしその数が分からないときはどうすればいいのでしょうか?あるいは、大きなグループの中に小さなグループがどのように入れ子になっているのかを知りたいときはどうでしょうか?
そこで輝きを放つのが階層的クラスタリングです。この章では、分析が終わった後でクラスタ数を選べるような、データの「ツリー(樹状図)」の作り方を学びます。この手法は、データポイント同士がどのように関係しているかを視覚的なマップとして明確に示してくれるため、アクチュアリーからも非常に好まれています。さあ、一緒に深掘りしていきましょう!
1. 基本的な考え方:凝集型クラスタリング
階層的クラスタリングで最も一般的なのは凝集型(Agglomerative)クラスタリングです。難しい言葉に聞こえるかもしれませんが、単に「下から上へ(ボトムアップ)」積み上げていくという意味です。
同窓会を想像してみてください。最初は全員が他人同士です。まず、一番似ている二人が話し始めます。次に、次に似ている二人(あるいはグループ)が加わります。最終的には、全員が一つの巨大なグループになります。
アルゴリズムの手順(ステップ・バイ・ステップ):
1. \(n\) 個の観測データからスタートします。それぞれの観測データを独立した一つのクラスタとして扱います(最初は \(n\) 個のクラスタがある状態です)。
2. 全てのクラスタのペア間の非類似度(距離)を計算します。
3. 最も似ている(距離が最小の)二つのクラスタを見つけ、それらを統合して新しい一つのクラスタにします。これでクラスタは \(n-1\) 個になります。
4. 全ての観測データが一つの巨大なクラスタに統合されるまで、ステップ2と3を繰り返します。
ワンポイント:階層的クラスタリングでは、単にグループ化するだけでなく、クラスタがマージされる順番と距離を記録していきます。この履歴こそが、この手法を特別なものにしている理由です。
2. デンドログラム:あなたの視覚的マップ
階層的クラスタリングの出力は、デンドログラム(樹状図)と呼ばれる美しい木のような図です。これは結果を解釈するための最も重要なツールです。
デンドログラムの読み方:
- 下部にある葉(リーフ)は、個々の観測データを示しています。
- 木を上に辿っていくと、葉が結合して枝(ブランチ)になります。
- 統合された箇所の垂直方向の高さ(二つの枝を結ぶ水平線)は、その二つのクラスタがどれほど異なっているかを表しています。統合の位置が高いほど、元のグループ同士は似ていなかったことを意味します。
- 重要なルール:葉同士が水平方向にどれだけ近いかで類似度を判断してはいけません。必ず、それらが共通の枝を共有する最初の垂直方向の高さを見る必要があります。
クラスタ数の選択
K-means法と異なり、最初に \(K\) を決める必要はありません。その代わりに、デンドログラムを見て、水平線を引いて木をどこで「切る」かを決めます。その切断線がいくつの垂直線と交差するかによって、作成されるクラスタの数が決まります。
例え話:デンドログラムが本物の木だと想像してください。ある高さで幹を切り落とすと、地面に落ちる別々の枝の数が、そのままクラスタの数になります!
要点:一つのデンドログラムは、1から \(n\) まで、あらゆる数のクラスタを表すことができます。あなたのビジネス課題にとって最も理にかなう「切断」の高さを選ぶだけでいいのです。
3. 結合法(リンケージ):グループ間の距離をどう測るか?
二つの点同士の距離(通常はユークリッド距離)の測り方は分かりますが、一つの点とグループの距離、あるいはグループ同士の距離はどう測ればよいのでしょうか?これを結合法(リンケージ)と呼びます。
SRMのカリキュラムでよく出てくる4つの主要な結合法を紹介します:
1. 完全連結法(最長距離法):クラスタ間の距離を、最も遠い二点間の距離とします。これにより、しっかりと分離されたコンパクトなクラスタができやすくなります。
2. 単連結法(最短距離法):最も近い二点間の距離をクラスタ間の距離とします。注意:これは「連鎖(チェイニング)」を引き起こしやすく、きれいな円形ではなく細長い線のようなクラスタになりがちです。
3. 群平均法:クラスタAの点とクラスタBの点の全ての組み合わせの距離の平均を取ります。「中間の性質」を持つため、非常に人気があります。
4. 重心法:二つのクラスタの重心(幾何学的な中心点)の間の距離を測定します。注意:「反転(インバージョン)」という奇妙な現象が起こることがあり、以前の統合よりも低い位置で統合が発生してしまい、デンドログラムが読みにくくなることがあります。
復習ボックス:
- 完全連結法&群平均法:一般的に推奨され、バランスの取れた木を作りやすいです。
- 単連結法:細長いクラスタを作ってしまうことがあります。
- 重心法:一部の分野で使われますが、見にくい「反転」が起こる可能性があります。
4. 非類似度尺度の選択
ユークリッド距離(直線距離)がデフォルトですが、唯一の手段ではありません。時には相関ベースの距離が使われることもあります。
使い分けの基準:
- 値の大きさ(例:総売上高)が重要なら、ユークリッド距離を使ってください。
- データが動くパターンや形状(例:一方は10ドル、もう一方は100ドルであっても、株価が同時に上がったり下がったりするかどうか)が重要なら、相関ベースの距離を使ってください。
知っていましたか?ここで重要なのはデータのスケーリングです!もし変数が「年収(数千ドル単位)」と「年齢(年単位)」であれば、数値の桁が大きい「年収」が距離の計算を支配してしまいます。通常は、クラスタリングの前に平均0、標準偏差1になるように変数を標準化します。
5. 階層的クラスタリングとK-means法の比較
学生から「どちらがいいのですか?」とよく質問されますが、答えは「場合による!」です。
K-means法が適しているのは:
- データセットが非常に大きい場合(通常、計算が速いです)。
- 必要なクラスタ数が明確な場合。
階層的クラスタリングが適しているのは:
- 根底にある構造や入れ子状の関係を確認したい場合。
- 最初から特定の \(K\) を決めたくない場合。
- ステークホルダーに説明するための視覚的な図(デンドログラム)が必要な場合。
よくある落とし穴:階層的クラスタリングは見た目が複雑だからといって「より正確」だと決めつけないでください。データに本来グループが存在しない場合、どちらの手法を使っても「間違った」結果になり得ます!
6. まとめと最後のアドバイス
階層的クラスタリングは、柔軟で視覚的なデータ整理方法です。試験のために以下のポイントを覚えておきましょう:
- 基本は凝集型(ボトムアップ)です。
- デンドログラムは可視化のための主要なツールです。
- デンドログラム上の高さは非類似度を表します。
- 結合法(完全、平均、単、重心)によってクラスタ間の距離の測り方が変わります。
- 全ての変数が等しく寄与するように、通常はデータの標準化が必要です。
結合法の内容が少し抽象的だと感じても大丈夫です!「完全連結法」は一番遠い相手を探し、「単連結法」は一番近い相手を探すと覚えておけば十分です。多くの場面では、きれいな木を作る「完全連結法」や「群平均法」が好まれます。
あなたなら大丈夫!階層的クラスタリングは、散らかった部屋を片付けるときに、似たものをまとめ、そのグループをさらに大きな箱に入れ、最終的に全てが一つにまとまるまで整理していくプロセスと同じです。そのイメージを持っていれば、この章はすぐにマスターできますよ!