プログラミングの用語一覧へ
このページの目次
プログラミング中級図解あり

教師あり学習とは?

最終更新:2026/08/18

3秒でわかる

入力と正解のペアを大量に見せて、未知の入力にも正解を出せる規則を機械に学ばせる方法。スパム判定や需要予測など、答えのあるタスクの土台です。

30秒図解

教師あり学習は入力と正解ラベルで学習し、test_size 0.2で分けた未見データを評価する
教師あり学習は入力と正解ラベルから判断基準を学びます。学習用と評価用を分け、モデルが見ていないデータで正解率などを確かめます。

もう少し詳しく

どういうものか

教師あり学習は、機械学習の学び方の 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))

学習に使ったデータで精度を測っても意味がないため、必ず分けて評価します。

つまずきやすいところ

  • 訓練データで評価してしまう — 丸暗記したモデルが満点を取り、本番で崩れます。分けたテストデータでのみ判断します

  • 正解率だけを見る — 全体の 1% しかスパムがないデータなら、全部「通常」と答えるモデルでも 99% です。適合率と再現率を併せて見ます

  • ラベルの質を軽視する — 人がつけた正解が揺れていると、その揺れをそのまま学習します。モデルの工夫よりラベルの整備が効く場面は多いです

  • 未来の情報を混ぜる — 予測時点では知り得ない列を特徴量に入れると、検証では高精度なのに本番で使い物になりません
  • 似た用語との違い

    方式正解ラベル代表的なタスク
    教師あり学習ある分類、回帰
    教師なし学習ないクラスタリング、次元削減
    強化学習報酬という形で遅れて届くゲーム操作、制御


    覚え方

    答案と模範解答をセットで渡すのが教師あり、答えのない資料を渡して似たもの同士にまとめさせるのが教師なしです。

    次に学ぶ

    回帰とは?

    知識のつながり

    サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

    現在地教師あり学習プログラミング

    LEARN BY DOING

    この用語を、教材で使ってみる

    直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

    この用語を扱うコース

    コース

    はじめての生成AI

    76レッスン
    コース

    生成AI資格対策(生成AIパスポート+G検定)

    49レッスン
    コース

    データ分析入門 Python(pandas)

    57レッスン
    AI活用コースの全編を見る