機械学習の世界へようこそ!
CFAレベルIIカリキュラムの中でも、最も刺激的で現代的な分野の一つへようこそ!「機械学習」(Machine Learning, ML)と聞くとSF映画のように聞こえるかもしれませんが、実際には皆さんがすでに学習した統計ツールの強力な拡張版にすぎません。この章では、コンピュータがどのようにデータから「学習」し、人間が具体的に指示しなくても予測を行ったりパターンを見つけ出したりするのかを学びます。コンピュータサイエンティストではないからと心配する必要はありません。一つひとつ、わかりやすく噛み砕いて解説していきますね。
1. 機械学習とは一体何か?
本質的に、機械学習とは人工知能(AI)の一分野であり、膨大なデータセットの中からアルゴリズムがパターンを見つけ出すように訓練されるものです。人間が「PERが15倍未満なら買い」といった具体的なルールを書き込むのではなく、コンピュータ自身がデータを見てルールを導き出すのです。
教師あり学習と教師なし学習
カリキュラムでは、MLをデータに「ラベル(正解)」があるかどうかに基づいて、主に2つの「学派」に分けています。
A. 教師あり学習 (Supervised Learning): 先生から学ぶ生徒を想像してください。データセットには入力データ(特徴量)と正解(目的変数)の両方が含まれています。目標は、入力から正しい出力へと導くルールを学習することです。
例: 「企業財務指標」(入力)と「株価リターン」(ターゲット)の過去データを使用して、将来のリターンを予測する。
B. 教師なし学習 (Unsupervised Learning): 一人で図書館を探検する生徒のようなものです。データにはラベルがなく、目的変数もありません。コンピュータはデータ内の構造やグループをただ探し出そうとします。
例: 500銘柄のデータを与え、グループ分けの基準を教えずに、行動パターンに基づいて「似たもの同士」のクラスターに分類させる。
C. 強化学習 (Reinforcement Learning): これは少し異なります。「エージェント」が試行錯誤を繰り返しながら、報酬を最大化することを学びます。犬のしつけで、良い行動にはおやつ(報酬)をあげて悪い行動にはあげない、というプロセスに似ています。
要点まとめ
教師あり: 探している答え(ターゲット)がわかっている。
教師なし: データの中に隠れたパターンや共通点を探しているだけ。
2. 教師あり学習:回帰と分類
教師あり学習は、何を予測したいかによってさらに2つに分類されます。
1. 回帰 (Regression): 目的変数が連続値(数値)である場合に使用します。
例: 住宅価格の予測や、債券の正確なリターンの予測。
2. 分類 (Classification): 目的変数がカテゴリー(ラベル)である場合に使用します。
例: 企業が「デフォルトする」か「デフォルトしない」かを予測する。
押さえておくべき重要なアルゴリズム:
ペナルティ付き回帰(LASSO): 通常の回帰分析では、変数が多すぎると問題が生じます。LASSO(最小絶対収縮選択演算子)は、変数が多すぎる場合にペナルティを課します。重要でない変数の係数をゼロにまで縮小できるため、自動的に「特徴量選択」を行ってくれるのです!
サポートベクターマシン (SVM): 2つのグループ(例:「成功」と「失敗」)の間に、可能な限り幅の広い「境界線」(超平面)を引くものだと考えてください。グループ間のマージンを最大化しようとします。
分類回帰木 (CART): 基本的にはフローチャートです。「負債資本比率 > 1? イエスなら左へ、ノーなら右へ」。人間にとって理解しやすいため、非常に優れた手法です。
ランダムフォレスト: これはアンサンブル手法の一種です。1本の木(予測が間違っているかもしれない)に頼るのではなく、何百本もの木を作成し、その「投票」によって結果を決めます。これは「群衆の知恵」のアプローチですね。
3. 教師なし学習:隠れた構造を見つけ出す
教師なし学習には「正解」がないため、主に2つの目的で使用します。
次元削減 (PCA)
100個も変数があるのに、その多くが似たような情報を示していることがあります。主成分分析 (PCA) は、多くの変数から得られる情報を少数の「主成分」に要約します。
例え: ある人を説明するのに、身長、腕の長さ、脚の長さ、胴体の長さ(4変数)を使うのではなく、「体格」(1変数)として要約するようなものです。
クラスタリング (K-Means)
K平均法(K-Meansクラスタリング)は、データポイントを「K」個のクラスターにグループ化します。ランダムな点から開始し、各グループ内の要素が可能な限り似たものになるまでグループを精緻化していきます。
例え: 大量の洗濯物を、「シャツとは何か」を教わらずに、シャツ、パンツ、靴下の山に分けるような作業です。
キーポイント
PCAはデータを小さく(列を減らす)する。
クラスタリングはデータを整理(行をグループ化)する。
4. ニューラルネットワークとディープラーニング
ニューラルネットワーク (NN) は人間の脳から着想を得ています。これは入力層、隠れ層、出力層で構成されます。ネットワークに隠れ層が多数存在する場合、それをディープラーニングと呼びます。
ニューラルネットワークは非線形関係(複雑なパターン)に対して驚異的な力を発揮しますが、多くの場合「ブラックボックス」と呼ばれます。なぜコンピュータが特定の結論に至ったのか、人間が正確に理解するのが難しいためです。
5. 機械学習のワークフロー
モデルを構築する際、単にボタンを押せばいいわけではありません。特定の工程を踏む必要があります:
1. データ収集: 生の情報を集める。
2. データクリーニング: 欠損値や外れ値への対応。
3. 特徴量エンジニアリング: 新しい変数を作る(日付を「曜日」に変換するなど)。
4. 学習・検証・テスト: ここは学生がよく混乱するポイントです!整理しましょう。
3種類のデータセット
「カンニング」を防ぐために、データを3つの部分に分けます:
1. 学習用データ (Training Set): モデルが実際に見て学習するデータ。
2. 検証用データ (Validation Set): モデルを調整するために使用(ベストな設定を探すための「ツマミ」を回すようなもの)。
3. テスト用データ (Test Set): 「期末試験」。モデルが現実世界でどれだけ機能するかを見るために、最後に一度だけ使用する。
6. 過学習とバイアス・バリアンス・トレードオフ
これは試験において最も重要な概念かもしれません!
過学習 (Overfitting): モデルがデータを学びすぎることで起こります。ランダムなノイズや誤差まで学習してしまい、学習データでは完璧な成績を出すのに、新しいデータには全く対応できなくなります。
例え: 数学の概念を理解する代わりに、練習問題の答えを丸暗記すること。練習問題では100点取れても、本番の試験では失敗してしまいます。
未学習 (Underfitting): モデルが単純すぎてパターンを見つけられない状態。
例え: 複雑な曲線を、直線の定規で描こうとすること。
トレードオフ
\( \text{Total Error} = \text{Bias}^2 + \text{Variance} + \text{Irreducible Error} \)
高バイアス = 未学習: モデルが「頑固すぎる」、または単純すぎる。
高バリアンス = 過学習: モデルが「柔軟すぎる」、または複雑すぎる。
覚え方:
Variance = Very complex(非常に複雑 = 過学習)。
Bias = Basic(基本的 = 未学習)。
7. モデルのパフォーマンス評価
モデルが良いものかどうか、どう判断するのでしょうか?分類問題では、混同行列 (Confusion Matrix) を使います。
主要な指標:
- 適合率 (Precision): モデルが「デフォルト」と予測したもののうち、実際にデフォルトしたのは何件か?(質の重視)。
- 再現率 (Recall): 実際に発生したデフォルトのうち、何件をモデルが捕捉できたか?(網羅性の重視)。
- 正解率 (Accuracy): 全予測に対する正解の割合。
- F1スコア: 適合率と再現率のバランス(調和平均)。
よくある間違い: 「正解率」が常に最高だとは限りません。例えば99%の企業がデフォルトしない場合、「誰一人デフォルトしない」と答えるモデルを作れば正解率は99%になりますが、肝心の1%のデフォルトを見つけられないので、全く使い物になりません!
成功のためのチェックリスト
次に進む前に、以下の質問に答えられるか確認してください:
1. 教師あり学習と教師なし学習の違いを説明できるか?
2. LASSOが係数をゼロにすることで特徴量選択を助けることを知っているか?
3. 過学習がバリアンスの増大とサンプル外パフォーマンスの低下につながることを理解しているか?
4. PCAが変数の削減(次元削減)に使われることを認識しているか?
5. テスト用データはモデルの学習・調整が完全に終わった後にのみ使用することを覚えているか?
新しい用語がたくさんあって大変だと感じるかもしれませんが、大丈夫です。背後にある数学よりも、各手法の「目的」に注目してください。CFAレベルIIの試験では、状況に合わせて適切なツールを選択できるかどうかが強く問われます!