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

評価とは?

最終更新:2026/08/18

3秒でわかる

モデルやプロンプトの出力が期待した品質かを、指標とテストデータで数値として測る作業。感想ではなく数字で改善の可否を判断するために行います。

30秒図解

Accuracy Precision Recall F1は別の評価観点で、陽性1パーセントではAccuracy99パーセントでも不十分な図
評価指標は目的に合わせて組み合わせます。陽性が1パーセントなら、すべて陰性と答えるだけでも正解率99パーセントになり得ます。

もう少し詳しく

どういうものか

評価は、システムの出力がどれだけ期待に沿っているかを測る作業です。機械学習では正解付きのテストデータと指標を使い、生成 AI では正解が一意に決まらないため、採点基準を決めたうえで人手や別のモデルに採点させます。

分類なら正解率、適合率、再現率、F1。生成なら、必要な項目が含まれているか、指定した形式を守っているか、事実に反する記述がないか、といった観点を数え上げます。

なぜ必要か

プロンプトを直すたびに数件を目で見て「良くなった気がする」で進めると、直した箇所以外が悪化しても気づけません。人の記憶は前回の出力を正確には覚えていません。

固定のテストセットと指標を用意しておけば、変更の前後を同じ物差しで比べられます。悪化したら戻す、という判断が可能になるだけで、改善の速度は大きく変わります。本番投入の可否を関係者に説明するときも、数字があるかどうかで通り方が違います。

具体例

cases = [ {"input": "領収書の再発行はできますか", "must_include": ["マイページ", "90日"]}, {"input": "解約したい", "must_include": ["設定", "即日"]}, ] def score(answer, case): hit = sum(1 for w in case["must_include"] if w in answer) return hit / len(case["must_include"]) results = [score(chatbot(c["input"]), c) for c in cases] print(f"必須項目の充足率 {sum(results) / len(results):.2f}")
from sklearn.metrics import precision_score, recall_score, f1_score print(precision_score(y_true, y_pred)) # 陽性と答えたうち本当に陽性だった割合 print(recall_score(y_true, y_pred)) # 本当の陽性のうち拾えた割合 print(f1_score(y_true, y_pred)) # 両者の調和平均

つまずきやすいところ

  • テストセットを毎回作り直す — 前回と違うデータで測った数字は比較になりません。固定した集合を使い続け、追加はしても差し替えはしません

  • 正解率だけを見る — 陽性が 1% しかないデータでは、全部を陰性と答えても 99% になります

  • 開発に使ったデータで最終評価する — 調整の過程で見た事例は、モデルにとって未知ではありません

  • 1 回の結果で判断する — 生成モデルの出力は毎回揺れます。同じ入力を数回流して平均を見ます

  • 測れないものを測ろうとする — 「面白さ」を数値化する前に、まず形式の遵守や事実の正しさなど、判定基準が明確な項目から固めます
  • 覚え方

    評価は「体重計」です。乗らずにダイエットの成否は語れません。毎回同じ体重計に、同じ条件で乗ることが前提になります。

    知識のつながり

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

    現在地評価プログラミング

    LEARN BY DOING

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

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

    この用語を扱うコース

    コース

    AIへの指示の出し方:プロンプト入門

    26レッスン
    コース

    RAG入門:AIに知識を与える技術

    18レッスン
    コース

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

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