Chapter 2.1-2.2: 教師あり学習への招待
機械学習の中核である「教師あり学習」の基本概念を紹介します。
データから未来を予測したい
あなたは毎朝、無意識に「予測」をしています。
傘を持っていくかどうか、電車が混むかどうか、今日のランチで何を食べるか...。これらすべてに共通しているのは「手元にある情報」から「まだ見えていない結果」を推測しようとしていることです。
では、コンピュータにこの「予測」をさせることはできるでしょうか?
人間の直感を超えて、大量のデータから隠れたパターンを見つけ出せるとしたら?
ここで重要なのは、過去のデータには答えが含まれているという事実です。過去に「この入力のとき、こういう出力だった」という記録があれば、新しい入力に対しても同じようなパターンで出力を予測できるかもしれません。
例えば、新しい患者の血液検査データ(入力)を受け取り、過去の患者のデータを参考にして、病気の可能性(出力)を予測する。このように、過去の「答え」を参考にして、新しい問題を解くのです。

このアプローチを教師あり学習(Supervised Learning)と呼びます。
「教師」とは何でしょうか?それは、正解を教えてくれるデータのことです。まるで答え付きの問題集で勉強するように、正解付きのデータでコンピュータを訓練するのです。
入力と出力の世界
教師あり学習では、2種類の変数が登場します。
入力(Input) は、予測に使う情報です。統計学では「予測変数(predictor)」や「独立変数」、機械学習では「特徴量(feature)」とも呼ばれます。
出力(Output) は、予測したい結果です。統計学では「応答変数(response)」や「従属変数」と呼ばれます。
例えば:
- 医療診断:入力 = 血液検査の数値、出力 = 病気の有無
- 画像認識:入力 = 画像のピクセル値、出力 = 画像に写っているもの
- 株価予測:入力 = 過去の株価や経済指標、出力 = 翌日の株価
入力が1つとは限りません。例えば血液検査で5つの数値を測定したら、それをひとまとまりで扱いたいですよね。数学では、複数の数値をまとめて扱うために「ベクトル」という概念を使います。$(数値1, 数値2, 数値3, 数値4, 数値5)$ というように、カッコで囲んで並べます。
記法として、入力を $X$、出力を $Y$ または $G$ で表します。

入力 $X$ は $p$ 個の成分を持つベクトル。$p$ は入力の数(特徴量の数)を表します。例えば血液検査で5項目を測定するなら $p = 5$ です。量的な出力は $Y$、質的な出力は $G$ で表します。
量的変数と質的変数
ここで重要な区別があります。出力変数には2つのタイプがあるのです。
量的変数(Quantitative Variable) は、数値で表され、大小関係や差に意味があります。
- 例:気温(25℃ > 20℃)、血糖値、株価
- 連続的に値が変化し、「23.5℃」のような中間値も取れます
質的変数(Qualitative Variable / Categorical Variable) は、有限個のカテゴリから1つを選ぶものです。
- 例:アイリスの品種(Setosa, Versicolor, Virginica)
- 例:手書き数字(0, 1, 2, ..., 9)
- 中間値はありません。必ずどれか1つのカテゴリに「カチッと」分類されます

この区別はなぜ重要なのでしょうか?
それは、出力が量的か質的かで、問題の性質がまったく異なるからです。量的変数なら「どれくらいの値か」を予測し、質的変数なら「どのカテゴリか」を予測します。
回帰と分類
出力変数のタイプによって、予測問題は2つに分かれます。
回帰(Regression) は、量的な出力を予測する問題です。
- 「明日の気温は何度か?」→ 答えは連続的な数値
分類(Classification) は、質的な出力を予測する問題です。
- 「このメールはスパムか?」→ 答えは「スパム」か「スパムでない」の2択
- 「この画像の数字は何?」→ 答えは0〜9の10択

面白いことに、回帰と分類は表面上は異なる問題に見えますが、実は同じ枠組みで捉えることができます。
どちらも関数近似(Function Approximation)という視点で見られるのです。ここで「関数」とは、入力を受け取って出力を返す「対応ルール」のこと。中学で習った $y = 2x + 3$ も関数です。
つまり、入力 $X$ を受け取り、出力 $Y$(または $G$)を返す関数 $f$ を、データから学習するという点では同じなのです。
$\hat{Y}$(yハット)や $\hat{G}$(gハット)は予測値を表します。分類の場合、$\hat{G}$ は $K$ 個のカテゴリ {\{G_1, G_2, \ldots, G_K\}} のどれかになります。
質的変数のコーディング
ところで、分類問題を数学的に扱うには、「スパム/スパムでない」のような言葉をどうやって数値化すればよいでしょうか?
最もシンプルなのは 2クラスの場合 です。「成功/失敗」「生存/死亡」のような2値は、0と1(または-1と1)でコーディングできます。
では、3クラス以上の場合はどうでしょうか?
ここで登場するのが ダミー変数(Dummy Variables) です。
$K$ 個のクラスがある場合、$K$ 個の数字を並べたベクトルを使います。各クラスに対応する位置だけが1で、他は0です。
例えば、3種類のアイリス(Setosa, Versicolor, Virginica)は:
- Setosa: $(1, 0, 0)$
- Versicolor: $(0, 1, 0)$
- Virginica: $(0, 0, 1)$

このように表現することで、質的変数も数学的に扱えるようになります。
クラス $G_k$ は、$k$ 番目の成分だけが1のベクトル $t_k$ で表現されます。
訓練データの重要性
予測モデルを作るには、訓練データ(Training Data) が必要です。
訓練データとは、入力と出力のペアの集合です。「この入力のとき、正解はこれだった」という記録をたくさん集めたものです。
ここで $\mathcal{T}$(カリグラフィのT、Training の頭文字)は訓練データセット全体を表し、$N$ はデータの数です。各ペア $(x_i, y_i)$ は「$i$ 番目の入力 $x_i$ に対する正解は $y_i$ だった」という1つの事例です。

ここで重要な点があります。訓練データの量と質が、予測モデルの性能を左右するということです。
データが少なすぎると、パターンを十分に学習できません。データに偏りがあると、偏った予測をしてしまいます。
$i=1$ から $N$ まで、$N$ 個の訓練サンプルからなるデータセット。各サンプルは入力 $x_i$ と出力 $y_i$ のペア。
まとめ
ここまでお疲れさまでした。駆け足でしたが、教師あり学習の基本的な枠組みを一通り見てきました。
このチャプターで学んだこと:
- 教師あり学習: 正解付きデータから予測モデルを学習する。「過去の正解を頼りに、未来を予測する方法」
- 入力と出力: 入力(特徴量)から出力(応答)を予測する対応関係を学ぶ
- 量的変数 vs 質的変数: 連続的な数値か、離散的なカテゴリか
- 回帰 vs 分類: 出力のタイプで問題が分かれるが、どちらも「関数を学習する」という点では同じ
- ダミー変数: 質的変数を数値ベクトルに変換する方法
- 訓練データ: モデル学習の材料となる「正解付きの例題集」
ここまでで、教師あり学習の「問題設定」が完了しました。入力と出力、回帰と分類、そして訓練データ。これらの概念は、この先ずっと使い続けます。
次のセクション(2.3以降)では、いよいよ具体的な「解き方」を見ていきます。最小二乗法(データに一番フィットする直線を引く方法)と、k-近傍法(似ているデータから予測する方法)という、2つの基本的なアプローチを紹介します。