クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

結果の表から正解率を出す

このレッスンのあとで: 結果の表から、正解率を計算できる。

40分のレッスンコマンドなし

正解率99%なのに、一つも見つけない

ある自動車部品メーカーが、カメラで部品の傷を見つけるモデルを試しました。報告書には「正解率99%」とあります。

ただ、この工場の不良品は、100個に1個だけです。すべての部品を「良品」と答えるだけでも、99%になります。

そのモデルは、不良品を一つも見つけていません。このレッスンでは、この数字の読み方を学びます。

このレッスンのゴール

メモ

結果の表から、正解率を計算できる。

キーワード

ことばいみれい
結果の表予測と本当の答えを並べた表です。
正解率予測が当たった割合です。10個中8個で80%
見逃し不良品を、良品と予測することです。
誤検知良品を、不良品と予測することです。
まれなクラスめったに出てこない答えです。不良品

学生が入力するセルは、このプレビューでは空白です。

正解率は、当たった数を全体で割る

テストデータの一件ごとに、予測と本当の答えを並べます。これが結果の表です。

次に、予測が当たった数を数えます。正解率は、当たった数を全体の数で割り、100をかけた値です。

たとえば、10個中8個が当たれば、8 ÷ 10 で 0.8 です。100をかけて、80%になります。

計算例: 部品10個の検査

部品予測本当の答え当たり?
1良品良品当たり
2不良品不良品当たり
3良品良品当たり
4良品不良品外れ(見逃し)
5と6良品良品当たり 2個
7不良品良品外れ(誤検知)
8から10良品良品当たり 3個
合計10個中8個、正解率80%

学生が入力するセルは、このプレビューでは空白です。

やってみよう: 正解率を計算する

コード: python
# 自動車部品の検査結果、10個分です。True は不良品という意味です。
predicted = [False, True, False, False, False, False, True, False, False, False]
actual = [False, True, False, True, False, False, False, False, False, False]

right = 0
for i in range(len(actual)):
    if predicted[i] == actual[i]:
        right = right + 1

print("当たった数:", right, "/", len(actual))
print("正解率:", right * 100 / len(actual), "%")

# predicted の4番目を True に変えて、もう一度実行しましょう。

二つの外れは、損の大きさがちがう

外れには、二つの種類があります。

誤検知は、良品を不良品と判定することです。部品を捨てたり、人が見直したりする手間が増えます。

見逃しは、不良品を良品と判定することです。不良品が客先の工場に届き、車のリコールにつながることもあります。

正解率は、二つの外れを同じ重さで数えます。だから、種類ごとの数も見ます。

四つの結果

予測本当の答え呼び方
不良品不良品当たり(見つけた)
良品良品当たり(問題なし)
不良品良品誤検知
良品不良品見逃し

学生が入力するセルは、このプレビューでは空白です。

よくある誤解

注意

正解率が高ければ、良いモデルだと思われがちです。探したいものがまれなときは、そうとは限りません。不良品が1%なら、全部を良品と答えても99%です。まれなものを探すときは、見逃しの数も必ず確かめましょう。

二つのモデル: 部品1000個、不良品10個

モデル当たった数正解率見つけた不良品
いつも「良品」と答える990個99%10個中0個
学習したモデル970個97%10個中8個

学生が入力するセルは、このプレビューでは空白です。

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。