ENGINEER BLOG ENGINEER BLOG
  • 公開日
  • 最終更新日

機械学習の混同行列とは ~適合率や再現率など周辺知識もあわせて整理~

この記事を共有する

目次

はじめに

皆さんこんにちは!パーソル&サーバーワークスの榎本です。
最近機械学習を勉強中なのですが、理解に苦戦した「混同行列」とその周辺知識についてなるべくシンプルかつわかりやすく共有いたします!

本記事の目的

混同行列とその周辺知識について理解できること

混同行列とは

予測値を実際の過去 (既知の) 値と比較するように結果を整理したもの
→モデルの予測が、実際の値とどれだけ合っていたかを整理したもの

混同行列の構成要素

混同行列は以下4つで構成されています。
最初は偽陽性と偽陰性が混ざることもありましたが、
「間違って陽性」と判断したものが「偽陽性」、「間違って陰性」と判断したものが「偽陰性」
というように漢字の意味とあわせて理解できました。

  • 真陽性(True Positive): 機械学習モデルが陽性と判断したもののうち、実際にも陽性だったもの
  • 真陰性(True Negative): 機械学習モデルが陰性と判断したもののうち、実際にも陰性だったもの
  • 偽陽性(False Positive): 機械学習モデルが間違って陽性と判断したもの
    (機械学習モデルが陽性と判断したが、実際は陰性だったもの)
  • 偽陰性(False Negative): 機械学習モデルが間違って陰性と判断したもの
    (機械学習モデルが陰性と判断したが、実際は陽性だったもの)

ちなみにAWSの機械学習サービスであるSageMaker Canvasでは以下のように混同行列を表示することができます。

1_混同行列.png

周辺知識

混同行列をベースに、以下のような割合を出すことができます。
私は特に適合率や再現率について日本語の説明を見ただけでは理解が追い付かず、かなり苦戦をしました。。
個人的にはそれぞれの値を出すための式を見たときにようやく理解が進んだので、皆さんにも共有いたします!

正解率(Accuracy)

全体のうち、機械学習モデルが正しく判断できたものの割合

すべてのデータの中から、正しいものを選ぶことができた割合(正解することができた割合)なので比較的イメージが湧きやすいと思います!
例えば○×クイズで、5問中4問正解できたら、正解率は80%のようなイメージです!

2_正解率.png

適合率/精度(Precision)

機械学習モデルが陽性と判断したもののうち、実際に陽性だったものの割合

ここから少し難しくなってきます。。
例えばインフルエンザが陽性か陰性かを判断する機械学習モデルがいたとします。
機械学習モデルが、「インフルエンザ陽性です!」と判断したもののうち、あとで正確な検査をして実際に陽性だった人の割合が、適合率です!
(機械学習モデルが「インフルエンザ陽性です!」と判断したのですが、実際に検査をしたら陰性だった人が分母に含まれています)
インフルエンザ陽性を高い精度で判断できる機械学習モデルにしたい際に重視します。
誤検知(実際は陰性なのに、間違って陽性と判断してしまうこと)を減らしたい、すなわち機械学習モデルの精度を上げたい際に重視するのが適合率です!

3_適合率.png

再現率(Recall)

実際に陽性のものに対して、機械学習モデルが陽性と判断できたものの割合

同じくインフルエンザの例で考えてみましょう。
今回は機械学習モデルが「あなたはインフルエンザ陽性です!」「あなたはインフルエンザ陰性です!」と判断したもののうち、あとで正確な検査をして実際に陽性だった人の割合のことを再現率といいます!(難しくなってきましたね。。)
ユースケースでも考えてみましょう!
再現率は、見逃しを防ぎたいときによく使われます!なぜかというと、今回のケースでいうと機械学習モデルに「あなたはインフルエンザ陰性です!」と判断されたにも関わらず、実際は陽性だった方が含まれているからです。
陽性の見逃しはリスクに繋がるので、見逃しを防ぎたい際は再現率が重要です。

4_再現率.png

特異率(Specificity)

実際に陰性のものに対して、機械学習モデルが陰性と判断できたものの割合

こちらは再現率の逆になります。
「あなたはインフルエンザ陽性です」「あなたはインフルエンザ陰性です」と判断したもののうち、あとで正確な検査をして実際に陰性だった人の割合を特異率といいます。

5_特異率.png

F1スコア/F1値(F-score/F-measure)

適合率と再現率の調和平均

上記で説明した適合率と再現率のバランスをとったものです。
適合率と再現率はトレードオフの関係にあるので、どちらかを重視するとどちらかの値が下がってしまいます。
そこで、両方のバランスをとり、総合的によいモデルを作りたいときに重視します。

6_F値.png

まとめ

機械学習は初めて聞く用語も多く、最初は覚えるのに苦戦するかもしれません。
ただ一つひとつの仕組みを理解したり、実際にAWSの機械学習サービス(SageMakerなど)をハンズオンで試してみると、理解が進むと思います!
私も継続して勉強し、皆さんにわかりやすく情報発信できればと思っておりますので、引き続きよろしくお願いいたします!

参考

https://aws.amazon.com/jp/blogs/news/is-your-model-good-a-deep-dive-into-amazon-sagemaker-canvas-advanced-metrics/

https://qiita.com/emiki/items/9f138e5b42948e77d541

この記事は私が書きました

榎本 将希

記事一覧

2024 Japan AWS All Certifications Engineers   サッカー観戦とサウナが好きです!   機械学習を勉強中です!

榎本 将希

この記事を共有する

クラウドのご相談

CONTACT

クラウド導入や運用でお悩みの方は、お気軽にご相談ください。
専門家がサポートします。

サービス資料ダウンロード

DOWNLOAD

ビジネスをクラウドで加速させる準備はできていますか?
今すぐサービス資料をダウンロードして、詳細をご確認ください。