機械学習へようこそ:教師なし学習編!

こんにちは!CS2のカリキュラムの中でも、最も現代的でワクワクする分野の一つへようこそ。これまでの学習では、特定の予測結果(例えば、保険契約者が保険金請求を行うかどうかなど)を導き出すモデルを見てきたかもしれません。それが「教師あり学習」です。

この章では、教師なし学習について見ていきます。これは「探偵のような仕事」だと考えてください。手元には大量のデータがあるものの、具体的な「ラベル」や「正解(ターゲット)」はありません。私たちの目的は、隠れたパターンを見つけ出し、似たもの同士をグループ化し、複雑な情報をシンプルにすることです。これは「ビッグデータ」を扱う現代の保険数理人にとって非常に重要なツールです。

最初は少し抽象的だと感じるかもしれませんが、大丈夫です。たくさんの例え話を使って、シンプルに分解しながら解説していきます!


1. 教師なし学習の理解

教師なし学習では、コンピュータにデータ(\( (X) \)`)は与えますが、出力ラベル(\( (Y) \)`)は与えません。コンピュータはデータの中を探索し、潜在構造(隠れたパターン)を見つけ出します。

なぜこれを使うのでしょうか?
1. 次元削減: 100個ある変数を、重要な3〜4個にまで単純化する。
2. クラスタリング: 似た動きをする顧客やリスクをグループ化する。
3. 異常検知: 「当てはまらない」データポイントを見つけ出す。これは不正や異常なリスクの兆候かもしれません。


2. 主成分分析 (PCA: Principal Component Analysis)

ある人を説明しようとしている場面を想像してください。身長、体重、腕の長さ、足の長さ、靴のサイズなどをリストアップできますよね。かなりの数の変数です!しかし、これらのほとんどは「身体の大きさ」に関連しています。PCAを使うと、これらの関連する変数を「総合的なサイズ」という1つの「主成分」にまとめることができます。

PCAとは何か?

PCAは、次元削減に使用される手法です。相関関係のある多数の変数を、主成分 (PCs) と呼ばれる少数の無相関な変数へと変換します。

仕組み(ステップ・バイ・ステップ):

1. データの標準化: PCAは測定スケール(例:メートル vs センチメートル)の影響を受けやすいため、通常は各変数の平均が0、分散が1になるように事前にスケーリングします。
2. 第1主成分 (\( PC_1 \)) の抽出: 元の変数の線形結合であり、データ内の可能な限り最大の分散を捉えるものです。
3. 第2主成分 (\( PC_2 \)) の抽出: 第1主成分に対して直交(90度の関係)し、次に大きな分散を捉える線形結合です。
4. 繰り返し: 元の変数の数と同じ数だけ主成分が得られるまで繰り返します。

背後にある数学

主成分は次のように表現されます:
\( PC_1 = \phi_{1,1}X_1 + \phi_{2,1}X_2 + ... + \phi_{p,1}X_p \)
ここで:
- \( X \) は元の変数です。
- \( \phi \) (ファイ) は負荷量(ローディング)です。これらは、各主成分に対して元の変数がどれだけの影響力を持っているかを示します。

クイック復習:PCAの主な特徴
  • 第1主成分は常に最も多くの分散を説明します。
  • 各主成分は、それより前の成分と無相関です。
  • 通常、全体の変動の80%〜90%程度を説明できる最初の数個の主成分のみを保持します。

よくある間違い: データのスケーリングを忘れること!もしある変数が「数百万単位」で、別の変数が「小数単位」で測定されていたら、PCAは「数百万単位」の変数だけが重要だと誤解してしまいます。

重要なポイント: PCAは、情報を(分散として)可能な限り保持しながら、多くの変数を少数の「スーパー変数」に凝縮することでデータを単純化します。


3. K-means法(K平均法)

PCAが変数を扱うのに対し、クラスタリングは観測値(データ内の各行)を対象にします。K-means法は、データを \( K \) 個の重複しないグループに分割しようとする手法です。

例え話

硬貨がたくさん入った袋があると想像してください。これらを3つの山に分けたいとします(\( K=3 \)`)。まず、テーブルの上に3つの点を適当に置きます。それぞれの硬貨を、最も近い場所にある点(山)に置きます。次に、それぞれの山の中心を、今集まった硬貨の真ん中へと移動させます。山が動かなくなるまで、これを繰り返すのです!

アルゴリズムの手順:

1. Kを決める: いくつのクラスターに分けたいか(例:\( K=3 \)`)を決めます。
2. 初期化: \( K \) 個の各クラスターに対して、「重心(セントロイド)」をランダムに配置します。
3. 割り当て: 各データポイントを見て、最も近い重心を持つクラスターに割り当てます(通常はユークリッド距離を使います)。
4. 更新: 各クラスターに含まれる全点の平均(中心)を計算し、それを新しい重心とします。
5. 繰り返し: 割り当てが変化しなくなるまで、ステップ3と4を繰り返します。

「K」はどうやって決める?

エルボー法を使います。さまざまな \( K \) の値(1, 2, 3, 4...)でアルゴリズムを実行し、「クラスター内の総変動」をプロットします。\( K \) が増えると、この変動は減少します。グラフ上で「肘(エルボー)」のように曲がる点を探し、それ以上クラスターを増やしてもあまり改善が見込めないポイントを見極めます。

豆知識: K-meansは反復的なアルゴリズムです。ランダムな重心から始めるため、2回実行すると結果が少し異なることがあります。数理人はよく複数回実行して、最良の結果を採用します!

重要なポイント: K-meansは、データポイントとクラスター中心の間の距離を最小化することで、似たデータポイントの「塊」を見つけ出します。


4. 潜在構造と異常検知

ツールがわかったところで、これを使ってどのように「潜在構造」や「異常」を見つけるのでしょうか?

潜在構造の特定

「潜在構造」とは、隠れたグループのことです。
例: 自動車保険契約者のデータがあるとします。K-meansを実行すると、2つの明確なクラスターが見つかりました。一つは「走行距離が長く都市部で運転する人」、もう一つは「走行距離が短く地方で運転する人」。この「運転環境」という構造こそが、データには明示的にラベル付けされていなかった「潜在構造」なのです!

異常検知

異常値は外れ値です。以下の2つのツールで発見できます。
1. クラスタリングによる方法: データポイントがどのクラスターの中心からも非常に遠い場合、それは異常値です。
2. PCAによる方法: PCAを使って2次元に縮小した際に、他のデータの「雲(グループ)」から大きく離れた位置にある点は異常値です。

保険数理の例: 不正検知において、非常に小さく孤立したクラスターに分類されたり、PCAスコアが極めて異質な保険金請求は、手動調査の対象としてフラグが立てられるかもしれません。


5. まとめと比較

最後に、比較表で全体像を整理しておきましょう:

特徴 主成分分析 (PCA) K-means法
主な目的 変数の数を減らす(次元削減)。 観測値をグループ化する(クラスタリング)。
核心概念 分散の最大化。 グループ内の距離の最小化。
出力 線形結合による新しい変数(主成分)。 各データポイントのラベル/グループ。
覚え方 PCA = Pruning(変数を剪定・整理する)。 K-means = Kumping(塊・Clumpingを作る)。
試験に向けた最後のアドバイス:
  • PCA: 主成分(PC)は無相関であることを忘れずに。これは試験で頻出です!
  • K-means: これは教師なし学習手法です。モデルにグループを教えるのではなく、モデルが自分で見つけ出すのです。
  • スケーリング: これらの手法を実行する前には、必ずデータを標準化(スケーリング)すべきだと言及してください。

よく頑張りましたね!これでCS2の教師なし学習の基礎はバッチリです。過去問を解き続けて、これらの概念が試験の数値問題でどのように出題されるか確認してみてください!