第3章: 教師あり学習
Supervised Learning
教師あり学習とは
教師あり学習
入力 $\mathbf{x}$ と正解(ラベル)$y$ のペアが与えられ、新しい入力に対する出力を予測する関数 $f$ を学習する。
$$\{(\mathbf{x}_1, y_1), (\mathbf{x}_2, y_2), \ldots, (\mathbf{x}_n, y_n)\} \rightarrow f: \mathbf{x} \mapsto y$$「教師」とは?
正解ラベル $y$ が「教師」の役割を果たす。モデルの予測が間違っていれば、正解との差(誤差)をフィードバックして修正する。
回帰問題
回帰(Regression)
出力 $y$ が連続値の場合。数値を予測する問題。
回帰問題の例
- 住宅価格予測:面積、築年数、立地 → 価格(万円)
- 売上予測:広告費、季節、曜日 → 売上(円)
- 気温予測:過去の気象データ → 明日の最高気温(℃)
- 株価予測:過去の値動き → 翌日の終値(円)
分類問題
分類(Classification)
出力 $y$ が離散的なカテゴリの場合。クラスを予測する問題。
分類問題の例
- スパム判定:メールの内容 → スパム/非スパム(2値分類)
- 画像認識:画像 → 猫/犬/鳥/...(多クラス分類)
- 病気診断:検査結果 → 陽性/陰性
- 感情分析:テキスト → ポジティブ/ネガティブ/中立
回帰 vs 分類
| 観点 | 回帰 | 分類 |
|---|---|---|
| 出力 | 連続値(実数) | 離散値(カテゴリ) |
| 例 | 価格、気温 | クラスラベル |
| 評価指標 | MSE, MAE | 正解率, F1スコア |
訓練データとテストデータ
データの分割
手持ちのデータを訓練データとテストデータに分割する。
- 訓練データ:モデルの学習に使用
- テストデータ:汎化性能の評価に使用(学習には使わない)
なぜ分割が必要か?
訓練データでの性能が良くても、未知のデータで性能が悪ければ意味がない。
テストデータは「未知のデータ」のシミュレーションとして使い、汎化性能を評価する。
過学習(Overfitting)とは
モデルが訓練データに特化しすぎて、未知のデータでの性能が低下する現象。訓練データでは高得点でもテストデータでスコアが落ちれば過学習の兆候。訓練/テスト分割は、過学習を検出する最も基本的な手法である。
重要な原則
- テストデータは一度も学習に使ってはいけない
- テストデータで評価するのは最終評価の1回だけ
- 何度も評価したい場合は「検証データ(Validation Data)」を別途用意
- 分割割合は目安。データ数が少なければ訓練 90%・テスト 10% に振るか、交差検証(Cross-Validation)で複数の分割を組み合わせて評価する
まとめ
- 教師あり学習:入力と正解のペアから学習
- 回帰:連続値を予測(価格、気温など)
- 分類:カテゴリを予測(スパム判定、画像認識など)
- データ分割:訓練用とテスト用に分け、汎化性能を評価