はじめに:教師あり学習とは?
教師あり学習(Supervised Learning)は、AI(人工知能)がデータから学ぶ「機械学習」という技術の代表的な手法の一つです。 名前にある「教師」とは、あらかじめ用意された「正解ラベル付きのデータ」のことを指します。 人間が先生として「この写真に写っているのは猫ですよ」と教えるように、AIに正解を教えながら学習させるイメージです。
この学習プロセスを経ることで、AIはデータの背景にあるパターンやルールを学び、これまで見たことのない新しいデータ(未知のデータ)に対しても、正解を予測できるようになります。 例えば、たくさんの「猫」とラベル付けされた画像を学習したAIは、新しい猫の写真を見せられたときに「これは猫だ」と正しく判断できるようになります。
教師あり学習の仕組み
教師あり学習は、大きく分けて「学習」と「予測」の2つのステップで成り立っています。
- 学習フェーズ
まず、「入力データ」と、それに対応する「正解ラベル」がペアになったデータセット(訓練データ)を大量に用意します。 AIモデルはこの訓練データを繰り返し学習し、入力データと正解ラベルの関係性(パターン)を学び取ります。 - 予測フェーズ
学習が完了したモデルに、今度は正解ラベルが付いていない新しい入力データを渡します。 モデルは、学習フェーズで学んだパターンを元に、その新しいデータが何であるかを予測し、結果を出力します。
この手法の成功の鍵は、学習データの「質」と「量」にあります。 データに間違いがあったり、データ量が少なすぎたりすると、AIは物事を正しく学習できず、予測の精度が低くなってしまいます。
教師あり学習の主な種類:「分類」と「回帰」
教師あり学習で行うタスクは、主に「分類(Classification)」と「回帰(Regression)」の2種類に大別されます。 どちらも未来を予測するという点では共通していますが、予測するものの性質が異なります。
種類 | 目的 | 予測するものの例 | 具体例 |
---|---|---|---|
分類 (Classification) | データを、あらかじめ決められたカテゴリ(クラス)のどれに属するかを予測する。 | 「はい/いいえ」、「犬/猫」、「迷惑メール/通常メール」など、離散的な値。 |
|
回帰 (Regression) | データに基づいて、連続的な数値を予測する。 | 株価、気温、売上高、家の価格など、連続した数値。 |
|
代表的なアルゴリズム
教師あり学習には、問題を解くための様々なアルゴリズム(計算方法)が存在します。 以下に代表的なものをいくつか紹介します。
- 線形回帰 (Linear Regression): 主に回帰問題で使われ、データ間の関係を直線的な式で表現します。
- ロジスティック回帰 (Logistic Regression): 名前に「回帰」とありますが、主に分類問題で使われます。 ある事象が発生する確率を予測し、2つのクラスに分類する際によく利用されます。
- サポートベクターマシン (SVM): 分類と回帰の両方に使えますが、特に分類問題で高い性能を発揮することが多いアルゴリズムです。
- 決定木 (Decision Tree): データを木のような構造で分析し、分類や回帰を行います。 結果に至る理由が分かりやすいのが特徴です。
- ランダムフォレスト (Random Forest): 複数の決定木を組み合わせて、より高い予測精度を目指すアルゴリズムです。分類と回帰の両方に使われます。
- ニューラルネットワーク (Neural Network): 人間の脳の神経回路を模したモデルで、画像認識や自然言語処理など、より複雑な問題で高い性能を発揮します。
Python (scikit-learn)での簡単なコード例
Pythonには、機械学習を簡単に行うためのライブラリ scikit-learn があります。 ここでは、線形回帰を使って簡単な予測モデルを作成する例を示します。
# 必要なライブラリをインポート
from sklearn.linear_model import LinearRegression
import numpy as np
# 1. 教師データ(訓練データ)を用意
# 入力データX (例: 部屋の面積)
X_train = np.array([,,,,])
# 正解ラベルy (例: 家賃)
y_train = np.array()
# 2. モデルを準備して学習させる
# 線形回帰モデルのインスタンスを作成
model = LinearRegression()
# モデルに訓練データを渡して学習させる (fitメソッド)
model.fit(X_train, y_train)
# 3. 新しいデータで予測する
# 新しい部屋の面積 (例: 55平米)
X_new = np.array([])
# 学習済みモデルで家賃を予測する (predictメソッド)
predicted_y = model.predict(X_new)
# 予測結果の表示
print(f"55平米の部屋の予測家賃: {predicted_y:.1f}万円")
# 出力例: 55平米の部屋の予測家賃: 13.0万円
まとめ
教師あり学習は、正解ラベル付きのデータを使ってAIを賢くする、非常に強力で広く使われている機械学習の手法です。 主なタスクとして、データをカテゴリ分けする「分類」と、数値を予測する「回帰」があります。
迷惑メールの判定から株価の予測まで、私たちの身の回りにある多くのAI技術が、この教師あり学習を基盤として作られています。 AIや機械学習を学び始める上で、まず理解しておきたい基本中の基本と言えるでしょう。