3秒でわかる
入力と正解のペアを大量に見せて、未知の入力にも正解を出せる規則を機械に学ばせる方法。スパム判定や需要予測など、答えのあるタスクの土台です。
30秒図解
もう少し詳しく
どういうものか
教師あり学習は、機械学習の学び方の 1 つで、入力データと、それに対する正解(ラベル)の組を大量に与えて訓練する方式です。「このメールはスパム」「このメールは通常」といった正解付きのデータから、入力と正解を結ぶ規則をモデルが推定します。
出力の種類で 2 つに分かれます。カテゴリを当てるのが分類、数値を当てるのが回帰です。スパムか否かは分類、来月の売上金額は回帰です。
なぜ必要か
ルールを人が全部書ききれないからです。スパム判定を if 文で書こうとすると、条件は数千に膨れ、しかも新しい手口が出るたびに書き足すことになります。教師あり学習なら、集めたデータを入れ替えて再訓練すれば規則が更新されます。
生成 AI の文脈でも、この枠組みは前提知識になります。大規模言語モデルの事前学習は「次の単語」を正解とする自己教師あり学習、そのあとの指示追従の調整は人手で作った正解を使う教師あり学習です。
具体例
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
X = features # 入力 (メールの特徴量)
y = labels # 正解 (1 がスパム、0 が通常)
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
model = LogisticRegression()
model.fit(X_train, y_train) # 訓練データで学習
pred = model.predict(X_test) # 見せていないデータで確認
print(accuracy_score(y_test, pred))学習に使ったデータで精度を測っても意味がないため、必ず分けて評価します。
つまずきやすいところ
似た用語との違い
覚え方
答案と模範解答をセットで渡すのが教師あり、答えのない資料を渡して似たもの同士にまとめさせるのが教師なしです。