混同行列:分類モデルの評価指標
AIを知りたい
先生、「混同行列」って、何ですか?よく分かりません。
AIエンジニア
そうですね。たとえば、病気かどうかを検査することを考えてみましょう。検査の結果は「病気あり」か「病気なし」の2種類あります。そして、実際に病気かどうかも2種類あります。この組み合わせを考えると、全部で2かける2で4通りのパターンがありますね。この4つのパターンを分かりやすく表にしたものが混同行列です。
AIを知りたい
4つのパターン…ですか?具体的にどのようなものがありますか?
AIエンジニア
はい。検査で「病気あり」と出て、実際に「病気あり」だった場合、これは「真陽性」と言います。検査で「病気なし」と出て、実際に「病気なし」だった場合は「真陰性」です。逆に、検査で「病気あり」と出たのに、実際は「病気なし」だった場合は「偽陽性」、検査で「病気なし」と出たのに、実際は「病気あり」だった場合は「偽陰性」となります。混同行列は、この4つのパターンを整理して表にしたものなんですよ。
混同行列とは。
人工知能に関わる言葉である「混同行列」について説明します。ものごとを分類する問題を扱うとき、予測した結果と実際の結果は4つの組み合わせになります。この4つの組み合わせを表にしたものが混同行列です。
混同行列とは
機械学習を使って分類を行う際、作った模型の良し悪しを測る物差しはいくつかあります。その中でも、混同行列は模型の働きぶりを詳しく知るための大切な道具です。分類とは、例えば迷惑な電子手紙を見分けるように、情報がどの種類に当てはまるかを予想することです。この予想と実際の答えとの組み合わせは、大きく分けて四つの形に分けられます。混同行列は、この四つの形を表形式で分かりやすく示したものです。
具体的には、真陽性(TP)は実際に陽性で、予測も陽性だった数を表します。例えば、本当に迷惑な電子手紙を、模型も迷惑電子手紙だと正しく判断した数です。真陰性(TN)は実際に陰性で、予測も陰性だった数を表します。普通の電子手紙を、模型も普通の電子手紙だと正しく判断した数です。偽陽性(FP)は実際には陰性なのに、陽性だと予測してしまった数を表します。普通の電子手紙を、模型が誤って迷惑電子手紙だと判断した数で、第一種の過誤と呼ばれます。偽陰性(FN)は実際には陽性なのに、陰性だと予測してしまった数を表します。迷惑な電子手紙を、模型が見逃して普通の電子手紙だと判断した数で、第二種の過誤と呼ばれます。
混同行列はこれらの四つの数を表にまとめることで、模型の正確さだけでなく、誤りの種類も明らかにします。例えば偽陽性が多いと、大事な電子手紙を迷惑メールとして処理してしまう可能性が高く、偽陰性が多いと、迷惑な電子手紙が受信箱に届いてしまう可能性が高くなります。このように、混同行列を見ることで、模型の弱点や改善点を把握し、より精度の高い分類を実現するための手がかりを得ることができるのです。どの種類の誤りをより減らすべきかは、扱う問題によって異なります。迷惑電子手紙の例では、偽陰性を減らすことのほうが重要かもしれません。そのため、混同行列は単に模型の正確さを示すだけでなく、目的に合わせて模型を調整する際に役立つ情報も提供してくれるのです。
予測:陽性 | 予測:陰性 | |
---|---|---|
実際:陽性 | 真陽性 (TP) (例: 迷惑メールを正しく識別) |
偽陰性 (FN) (第二種の過誤) (例: 迷惑メールを見逃す) |
実際:陰性 | 偽陽性 (FP) (第一種の過誤) (例: 通常メールを迷惑メールと誤判定) |
真陰性 (TN) (例: 通常メールを正しく識別) |
混同行列の構成要素
混同行列は、機械学習モデルの性能を評価する際に用いられる重要なツールです。これは、実際のデータにおける分類の正誤と、モデルによる予測の正誤を組み合わせた2×2の表で表現されます。この表の各要素は、モデルの性能を理解する上で重要な意味を持ちます。
まず、実際の値が陽性であり、モデルの予測も陽性であった場合、「真陽性」と呼ばれます。これは、モデルが正しく陽性と予測できたケースを示し、モデルの精度を測る上で重要な要素です。例えば、病気の診断において、実際に病気を患っている人を正しく病気と診断できた場合が該当します。
次に、実際の値は陰性であるにも関わらず、モデルが陽性と予測した場合、「偽陽性」と呼ばれます。これは、モデルが誤って陽性と判断したケースを示し、モデルの信頼性を損なう可能性があります。健康診断で、実際には健康であるにも関わらず、誤って病気と診断された場合がこれに当たります。
逆に、実際の値は陽性であるにも関わらず、モデルが陰性と予測した場合、「偽陰性」と呼ばれます。これは、モデルが見逃すべきでない陽性のケースを見落としたことを示し、深刻な結果を招く可能性があります。例えば、病気の診断において、実際に病気を患っている人を見逃した場合が該当します。これは、早期発見や適切な治療の機会を逃すことに繋がり、重大な問題を引き起こす可能性があります。
最後に、実際の値が陰性であり、モデルの予測も陰性であった場合、「真陰性」と呼ばれます。これは、モデルが正しく陰性と予測できたケースを示します。健康診断で、実際にも健康であり、診断結果も健康であった場合が該当します。
混同行列におけるこれらの4つの要素「真陽性」「偽陽性」「偽陰性」「真陰性」を理解することで、モデルの得意・不得意な点を把握し、モデルの改善に繋げることができます。どの要素に注目すべきかは、解決しようとする問題によって異なります。例えば、病気の診断においては偽陰性を最小限に抑えることが重要になります。それぞれの要素の値を元に計算される様々な指標(正確度、精度、再現率など)を用いることで、モデルの性能を多角的に評価できます。
実際の値 | 予測値 | 結果 | 説明 | 例(病気診断) |
---|---|---|---|---|
陽性 | 陽性 | 真陽性(TP) | 正しく陽性と予測 | 実際に病気で、病気と診断 |
陰性 | 偽陰性(FN) | 誤って陰性と予測 | 実際に病気だが、健康と診断 | |
陰性 | 陽性 | 偽陽性(FP) | 誤って陽性と予測 | 健康だが、病気と診断 |
陰性 | 真陰性(TN) | 正しく陰性と予測 | 健康で、健康と診断 |
様々な評価指標との関連性
様々な評価のやり方と、それらの関係について説明します。結果をまとめた表である混同行列は、それ自体が機械学習のモデルの良し悪しを示すだけでなく、他の様々な評価のやり方を算出するための土台としても利用されます。
例えば、「正解率」は、全体の結果の数に対して、どれだけの割合で結果が正しかったかを示すものです。これは、実際に正しくて正と出た数と、実際に負で負と出た数の合計を、全体の結果の数で割ることで計算できます。この正解率は、モデルがどれくらい全体の結果を正しく予測できたかを大まかに表すため、よく使われます。
次に、「適合率」は、正と予測した結果の中で、実際に正であったものの割合を示します。これは、実際に正しくて正と出た数を、正と出た数の合計(実際に正しくて正と出た数と、実際は負なのに正と出た数の合計)で割ることで計算できます。この適合率を見ることで、正と予測した結果の信頼性を評価できます。
また、「再現率」は、実際に正であるもの全体の中で、どれだけの割合を正しく正と予測できたかを示します。これは、実際に正しくて正と出た数を、実際に正である数の合計(実際に正しくて正と出た数と、実際は正なのに負と出た数の合計)で割ることで計算できます。この再現率は、見逃しをどれだけ少なく抑えられたかを表す指標として使われます。
さらに、「F値」と呼ばれるものがあります。これは、適合率と再現率の調和平均です。適合率と再現率は、どちらか一方を高くしようとすると、もう一方が低くなる傾向があります。F値は、これらのバランスを考慮した指標です。
これらの指標は全て、混同行列に示された数から直接計算できるため、混同行列はモデルの評価を行う上で中心的な役割を果たしていると言えます。
評価指標 | 説明 | 計算方法 |
---|---|---|
正解率 | 全体の結果の数に対して、どれだけの割合で結果が正しかったかを示す。 | (実際に正しくて正と出た数 + 実際に負で負と出た数) / 全体の結果の数 |
適合率 | 正と予測した結果の中で、実際に正であったものの割合。 | 実際に正しくて正と出た数 / (実際に正しくて正と出た数 + 実際は負なのに正と出た数) |
再現率 | 実際に正であるもの全体の中で、どれだけの割合を正しく正と予測できたか。 | 実際に正しくて正と出た数 / (実際に正しくて正と出た数 + 実際は正なのに負と出た数) |
F値 | 適合率と再現率の調和平均。これらのバランスを考慮した指標。 | (2 * 適合率 * 再現率) / (適合率 + 再現率) |
実践的な活用例
混同行列は、様々な分野で実際の問題解決に役立てられています。例として、医療の現場を考えてみましょう。医師が患者を診察し、病気の有無を診断する場面を想像してみてください。この時、混同行列は、診断の正確さを測る物差しとして機能します。真陽性は、実際に病気を患っている患者を正しく病気と診断できたケースです。これは、医師の診断が的確であったことを示し、適切な治療に繋がる重要な指標となります。一方、健康な人を誤って病気と診断してしまうことを偽陽性と言います。偽陽性の場合、患者は不必要な検査や治療を受けることになり、肉体的、精神的、経済的な負担を強いられる可能性があります。また、実際に病気を患っている患者を見逃してしまうことを偽陰性と言います。偽陰性は、病気の発見が遅れ、適切な治療の開始が遅れることに繋がり、病状の悪化を招く恐れがあります。最後に、真陰性は、健康な人を正しく健康と診断できたケースです。これは、医師の診断が適切であったことを示すと共に、患者に安心感を与えるという点でも重要です。
医療以外にも、混同行列は様々な分野で活用されています。例えば、商品の販売戦略を立てる際に、顧客の購買行動を予測する場面を考えてみましょう。この場合、混同行列を用いることで、顧客が商品を購入するかしないかを予測するモデルの精度を評価できます。ある商品を購入すると予測された顧客が実際に購入した場合を真陽性、購入しないと予測された顧客が実際には購入した場合を偽陰性、購入すると予測された顧客が実際には購入しなかった場合を偽陽性、購入しないと予測された顧客が実際には購入しなかった場合を真陰性と捉えます。これらの結果を分析することで、販売戦略の改善点が見えてきます。例えば、偽陰性の顧客が多い場合、購入を促すための新たな対策が必要となるでしょう。このように、混同行列は、様々な場面で、物事の正誤を細かく分析し、より良い結果に繋げるための重要な道具となっています。
病気である | 病気でない | |
---|---|---|
病気と診断 | 真陽性 (実際に病気であり、病気と診断された) |
偽陽性 (実際は病気でないが、病気と診断された) |
病気でないと診断 | 偽陰性 (実際に病気であるが、病気でないと診断された) |
真陰性 (実際は病気でない、病気でないと診断された) |
混同行列の限界
混同行列は、機械学習モデルの性能を評価する上で、非常に役立つ道具です。しかし、万能ではありません。いくつかの注意点と限界を理解した上で使う必要があります。まず、混同行列は、主に二つの種類に分類される問題を扱うことを前提としています。例えば、写真の判別で、猫か犬かを判断するような場合です。三種類以上の分類を扱う場合には、もっと複雑な行列が必要になります。たとえば、猫、犬、鳥を分類する場合には、単純な混同行列では表現できません。
次に、データの偏りにも注意が必要です。例えば、病気の診断で、病気の人と健康な人のデータ数が大きく異なる場合です。健康な人のデータが非常に多いと、たとえモデルが病気の人を全て見逃したとしても、全体としての精度は高く見えてしまいます。これは、混同行列がデータの割合に影響を受けやすいからです。このような偏りがある場合は、データの数を調整したり、他の評価方法と合わせて使うなどの工夫が必要です。
さらに、混同行列は、予測の確実さを示してくれません。モデルが「たぶん猫かな?」と自信なさげに判断した場合でも、「猫」と当たっていれば、正解として扱われます。逆に、「これは絶対に犬だ!」と自信満々に判断して間違えた場合でも、外れとして扱われます。つまり、混同行列は、予測の確実さではなく、結果のみを見ているのです。そのため、予測の確実さも考慮したい場合は、別の評価方法も検討する必要があります。
このように、混同行列にはいくつかの限界があります。これらの限界を理解した上で、他の評価方法と組み合わせて使うことで、モデルの性能をより正確に把握し、より良いモデルを作ることができるようになります。
注意点/限界 | 説明 | 対策 |
---|---|---|
分類の種類 | 主に二値分類を前提とする。三種類以上になると複雑な行列が必要。 | 複数クラスの混同行列などを利用 |
データの偏り | データ数の偏りがあると、精度が高く見えてしまう可能性がある。 | データ数を調整、他の評価指標と併用 |
予測の確実性 | 予測の確実性を示さない。結果のみを評価。 | 他の評価指標(確率など)と併用 |