予測精度を測る指標たち
AIを知りたい
先生、「正解率」「適合率」「再現率」「F値」の違いが良く分かりません。教えてください。
AIエンジニア
そうだね、少し難しいね。病気の検査で考えてみよう。例えば、実際に病気の人を「病気」と予測するのは「真陽性」、健康な人を「健康」と予測するのは「真陰性」だよ。逆に、健康な人を「病気」と予測するのは「偽陽性」、病気の人を「健康」と予測するのは「偽陰性」だ。
AIを知りたい
なんとなくイメージが湧いてきました。これらの数をどのように使えば「正解率」「適合率」「再現率」「F値」が計算できるのでしょうか?
AIエンジニア
「正解率」は全体の予測の中で正しく予測できた割合だから(真陽性 + 真陰性)/ 全体の数 だね。「適合率」は「病気」と予測した人の中で実際に病気だった人の割合だから 真陽性 / (真陽性 + 偽陽性)だよ。「再現率」は実際に病気の人の中で「病気」と予測できた人の割合だから 真陽性 / (真陽性 + 偽陰性)になる。「F値」は適合率と再現率のバランスを表す値なので、適合率と再現率が高ければF値も高くなるんだ。
正解率・適合率・再現率・F 値とは。
二つの種類に分けられる予測において、人工知能の性能を測る言葉について説明します。まず「正解率」とは、人工知能が出したすべての答えのうち、実際に正解だった答えの割合です。次に「適合率」とは、人工知能が「正しい」と判断したものの中で、実際に正しかったものの割合です。そして「再現率」とは、実際に正しかったものの中で、人工知能が「正しい」と判断できたものの割合です。最後に「F値」とは、「適合率」と「再現率」を組み合わせて計算した値で、両方のバランスを測るためのものです。
指標たちの紹介
機械学習の予測モデルの良し悪しを見極めることは、モデルを選ぶ時や、より良いモデルを作る上でとても大切です。特に、結果が「はい」か「いいえ」の二択になるような問題では、正解率、適合率、再現率、F値といったものがよく使われます。これらの尺度はそれぞれモデルの性能を様々な角度から見ており、目的に合わせてどれを使うかを決めることが重要です。この尺度たちをしっかり理解することで、モデルの評価を適切に行い、より正確な予測モデルを作ることができます。
正解率は、全体の予測のうちどれくらい正解したかを表す最も基本的な尺度です。例えば、100個のデータのうち80個を正しく予測できた場合、正解率は80%となります。しかし、正解率はデータの偏りに影響されやすいという欠点があります。例えば、「はい」のデータが90個、「いいえ」のデータが10個というような場合、「はい」とだけ予測するモデルでも90%の正解率が出てしまいます。このような場合、正解率だけでモデルの性能を判断するのは危険です。
適合率は、「はい」と予測したデータのうち、実際に「はい」だったデータの割合を表します。これは「はい」と予測した結果の信頼性を示す尺度と言えます。一方、再現率は、実際に「はい」であるデータのうち、どれくらいを「はい」と予測できたかを表します。これは、見落としなく「はい」のデータを捉えられているかを示す尺度です。例えば、病気の診断においては、病気の人を見逃さないことが重要なので、再現率を重視する必要があります。逆に、スパムメールの検出では、普通のメールをスパムと誤判定しないことが重要なので、適合率を重視する必要があります。
F値は、適合率と再現率の調和平均で、両方の尺度をバランスよく考慮した指標です。適合率と再現率のどちらか一方だけが極端に高い場合、F値は低くなります。そのため、F値が高いモデルは、適合率と再現率のバランスが良いモデルと言えます。これらの指標を理解し、目的に合わせて適切な指標を用いることで、より良いモデルの評価と選択を行うことができます。
尺度 | 説明 | 長所 | 短所 | 用途例 |
---|---|---|---|---|
正解率 | 全体の予測のうち正解した割合 | 理解しやすい、基本的な指標 | データの偏りに影響されやすい | データの偏りが少ない場合のモデル評価 |
適合率 | 「はい」と予測したデータのうち、実際に「はい」だった割合 | 予測の信頼性を示す | 「はい」を見逃す可能性がある | スパムメール検出など、誤判定を避けたい場合 |
再現率 | 実際に「はい」であるデータのうち、「はい」と予測できた割合 | 見落としが少ないかを示す | 誤判定が増える可能性がある | 病気の診断など、見落としを避けたい場合 |
F値 | 適合率と再現率の調和平均 | 適合率と再現率をバランスよく考慮 | どちらか一方だけが極端に高い場合、値が低くなる | 適合率と再現率のバランスを取りたい場合 |
正解率とは
正解率とは、機械学習モデルの性能を測る指標の一つで、予測がどれだけ当たっているかを示す割合のことです。全体の中で、正しく予測できた割合を百分率で表します。例えば、百件のデータについて予測を行い、八十件が当たっていた場合、正解率は八十パーセントになります。
この指標は、モデルの性能を分かりやすく示すため、広く使われています。全体を眺め、どのくらい予測が正確かをすぐに理解できるため、モデルの良し悪しを大まかに把握するのに役立ちます。
しかし、正解率だけでモデルの性能を判断するのは危険な場合もあります。というのも、データの偏り、つまり特定の種類のデータが多い場合に、その偏りに合わせた予測をするモデルが高正解率を出してしまうことがあるからです。例えば、ある病気の診断で、その病気になる人が全体の百人に一人しかいないとします。この時、常に「病気ではない」と予測するモデルを作ると、九十九パーセントの正解率を達成します。しかし、このモデルは実際に病気の人を一人も見つけることができないため、医療診断としては全く役に立ちません。
このように、データに偏りがある場合は、正解率が高いだけでは良いモデルとは言えません。病気の人の数を少ないと予測するモデルは、一見正解率は低くても、病気の人を見つけるという点では優れている可能性があります。つまり、データの特性や目的を理解した上で、正解率以外の指標も合わせて見て、モデルを総合的に評価することが重要です。他の指標としては、適合率、再現率、F値などがあり、これらを組み合わせて使うことで、より正確なモデル評価ができます。状況に応じて適切な指標を選び、多角的に評価することで、本当に役立つモデルを作ることができます。
項目 | 内容 |
---|---|
定義 | 予測がどれだけ当たっているかを示す割合。正しく予測できた割合を百分率で表す。 |
例 | 100件中80件正解の場合、正解率は80%。 |
利点 | モデルの性能を分かりやすく示し、良し悪しを大まかに把握できる。 |
欠点 | データの偏りに影響されやすい。偏りに合わせた予測をするモデルが高正解率を出してしまう可能性がある。 |
欠点の具体例 | 希少な病気の診断で「常に病気ではない」と予測するモデルは高正解率を示すが、実際には役に立たない。 |
注意点 | データの特性や目的を理解し、正解率以外の指標(適合率、再現率、F値など)も合わせて見て、モデルを総合的に評価する必要がある。 |
適合率とは
適合率とは、機械学習モデルの性能を測る重要な指標の一つです。具体的には、モデルが「正しい」と判断したものの中で、実際に正しかったものの割合を表します。
例として迷惑メールの判定を考えてみましょう。日々私たちの元に届くメールの中には、迷惑メールが混ざっています。迷惑メールを自動で見分けて、受信箱から排除してくれる機能は大変便利です。この時、迷惑メール判定システムは、全てのメールを「迷惑メール」と「普通のメール」に分類します。この分類作業において、適合率は重要な役割を果たします。
適合率が高いということは、システムが「迷惑メール」と判断したメールの中で、本当に迷惑メールだった割合が高いことを示します。つまり、普通のメールを誤って迷惑メールだと判断する可能性が低いということです。もし、重要な仕事のメールを迷惑メールと間違えて削除してしまったら、大きな損失に繋がる可能性があります。そのため、迷惑メール判定システムでは、普通のメールを誤って迷惑メールと判断してしまうことを極力避けたいという目的があります。このような場合、高い適合率が求められます。
一方で、適合率のみに注目すると、別の問題が発生する可能性があります。例えば、非常に慎重に迷惑メールを判定するシステムを考えてみましょう。このシステムは、確実に迷惑メールだと判断できるものだけを迷惑メールと判定し、少しでも判断に迷うメールは全て普通のメールとして扱います。このシステムの適合率は非常に高い数値を示すでしょう。しかし、多くの迷惑メールが普通のメールとして受信箱に届いてしまうため、迷惑メール対策としては不十分です。このように、適合率だけを高くすれば良いという訳ではなく、他の指標も合わせて考慮する必要があるのです。
まとめると、適合率は、モデルが正と判断したもののうち、実際に正しかったものの割合を表す指標で、偽陽性を抑える必要がある場合に特に重要となります。しかし、適合率だけに注目せず、他の指標と合わせて総合的に判断することが重要です。
指標 | 定義 | 利点 | 欠点 | 例 |
---|---|---|---|---|
適合率 (Precision) | モデルが「正しい」と判断したものの中で、実際に正しかったものの割合 | 偽陽性を抑えることができる | 適合率のみに注目すると、偽陰性が増える可能性がある | 迷惑メール判定システムにおいて、システムが「迷惑メール」と判断したメールの中で、実際に迷惑メールだった割合 |
再現率とは
再現率とは、本来あるべきものを見つける能力を示す指標です。具体的には、実際に正解であるデータ全体の中で、機械学習モデルが正しく正解と判断できたデータの割合を指します。
例として、病気の診断を考えてみましょう。ある病気の検査で、実際にその病気を患っている人々全体を把握できたとします。この中で、検査によって正しく病気だと診断できた人の割合が再現率です。つまり、再現率が高いほど、病気の人を見逃す可能性が低くなるのです。
再現率は、偽陰性を抑える上で特に重要な指標となります。偽陰性とは、実際には正解であるにも関わらず、誤って不正解と判断されてしまうことを指します。病気の診断の場合、偽陰性は、実際には病気に罹患しているにも関わらず、健康と誤診されることを意味します。このような誤りは、適切な治療の開始を遅らせ、病状の悪化につながる可能性があるため、極力避けなければなりません。
一方で、再現率だけを重視すると、別の問題が生じる可能性があります。偽陽性の増加です。偽陽性とは、実際には不正解であるにも関わらず、誤って正解と判断されてしまうことを指します。病気の診断の例では、健康な人が病気と誤診されることを意味します。偽陽性は、不要な検査や治療、そして精神的な負担につながる可能性があります。
このように、再現率は偽陰性を抑える上で重要な指標ですが、偽陽性を増加させる可能性も孕んでいます。そのため、偽陽性の割合を示す適合率と併せて考慮することが大切です。状況に応じて、再現率と適合率のバランスを取りながら、最適なモデルを構築していく必要があります。
指標 | 意味 | 例(病気診断) | メリット | デメリット |
---|---|---|---|---|
再現率 | 実際に正解であるデータ全体の中で、モデルが正しく正解と判断できたデータの割合 | 実際に病気を患っている人全体の中で、検査によって正しく病気だと診断できた人の割合 | 偽陰性(実際には病気なのに、健康と誤診)を低減 | 偽陽性(実際には健康なのに、病気と誤診)が増加する可能性 |
F値とは
「F値」とは、機械学習モデルの性能を測るための重要な指標の一つです。モデルの良し悪しを判断する際に、ただ一つだけを見るのではなく、複数の指標を組み合わせて考えることが大切です。このF値も、複数の要素を踏まえた総合的な評価指標となっています。具体的には、「適合率」と「再現率」と呼ばれる二つの指標を組み合わせて計算されます。
適合率とは、モデルが「正しい」と判断したものの中で、実際にどれだけ正しかったのかを表す割合です。宝探しに例えると、掘り当てた宝物のうち、本物の宝物の割合です。一方、再現率は、実際に存在する宝物のうち、モデルがどれだけ見つけられたのかを表す割合です。つまり、埋まっている宝物のうち、どれだけ掘り当てることができたかを示しています。
適合率と再現率は、往々にして一方が高くなるともう一方が低くなる、いわばシーソーのような関係にあります。例えば、宝探しでとにかくたくさん掘り当てようとする(再現率向上)と、偽物もたくさん掘り出してしまい、本物の宝物の割合は下がります(適合率低下)。逆に、確実に本物の宝物だけを掘り当てようとする(適合率向上)と、慎重になりすぎて掘り出す数が減り、見つけられる宝物の数は少なくなります(再現率低下)。
このように、どちらか一方だけを高くするのは簡単ですが、両方を同時に高くするのは難しいです。そこで、F値は適合率と再現率のバランスを考慮した指標として用いられます。F値が高いほど、適合率と再現率のバランスが良く、モデルの性能が高いと言えるのです。
特に、データに偏りがある場合、F値は重要な役割を果たします。例えば、宝探しのエリアに本物の宝物が非常に少ない場合、適当に掘っても偽物ばかり掘り当ててしまい、再現率は高くても適合率は低くなってしまいます。このような状況では、F値を用いることで、偏りの影響を受けにくい、より正確なモデル評価を行うことができます。
指標の使い分け
機械学習モデルの良し悪しを測るには、様々な指標を使い分けることが大切です。それぞれの指標は異なる側面を評価するため、状況に応じて適切な指標を選ぶ必要があります。そうでないと、モデルの真の実力を正しく捉えられない可能性があります。
例えば、病気の診断のように、健康な人を誤って病気と診断する「偽陽性」をなるべく減らしたい場合は、適合率という指標を重視します。適合率は、陽性と予測されたものの中で実際に陽性だったものの割合を表します。診断で言えば、病気と診断された人の中で実際に病気だった人の割合です。この値が高いほど、誤った診断が少なくなります。
一方で、癌の発見のように、病気の人を見逃す「偽陰性」を最小限に抑えたい場合は、再現率を重視するべきです。再現率は、実際に陽性であるものの中で、陽性と予測できたものの割合です。診断で言えば、実際に病気の人の中で、病気と診断できた人の割合です。この値が高いほど、病気の人を見逃す可能性が低くなります。
単純な正解率は、全体のデータの中で正しく予測できた割合を表します。しかし、データに偏りがある場合、例えば、病気の人が全体の1%しかいないような場合、全員を健康と予測しても99%の正解率が出てしまいます。これは、一見高い数値に見えますが、病気の発見という目的には全く役に立ちません。このようなデータの偏りを考慮に入れるには、F値という指標が有効です。F値は、適合率と再現率の調和平均であり、両方の指標をバランス良く評価します。
このように、目的に合わせて適切な指標を選ぶことで、モデルの評価と改善をより効果的に行うことができます。それぞれの指標の特徴を理解し、データの特性や目指す目標を考慮しながら、どの指標を用いるかを慎重に判断することで、より精度の高い予測モデルを作ることが可能になります。
指標 | 説明 | 重視する状況 | 計算方法 |
---|---|---|---|
適合率 (Precision) | 陽性と予測されたものの中で実際に陽性だったものの割合 | 偽陽性を減らしたい場合 (例: 病気の診断) | 陽性と予測し実際に陽性だった数 / 陽性と予測された数 |
再現率 (Recall) | 実際に陽性であるものの中で、陽性と予測できたものの割合 | 偽陰性を減らしたい場合 (例: 癌の発見) | 陽性と予測し実際に陽性だった数 / 実際に陽性だった数 |
正解率 (Accuracy) | 全体のデータの中で正しく予測できた割合 | データに偏りがなく、全体的な正答率を重視する場合 | 正しく予測できた数 / 全データ数 |
F値 (F-measure) | 適合率と再現率の調和平均 | 適合率と再現率のバランスを取りたい場合 | 2 * (適合率 * 再現率) / (適合率 + 再現率) |