混同行列と評価指標についてわかりやすく解説!Pythonでの実装も!

目次
ウマたん当サイト【スタビジ】の本記事では、混同行列について解説してきます。混同行列は分類問題で用いられており、Accuracyに限らないモデルの性能を評価することができます。今回は混同行列の定義を解説しつつ、これらの関係性について分かりやすく解説していきます!
こんにちは!
データサイエンティストのウマたん(@statistics1012)です!
今回は混同行列について解説していきます。混同行列とは2値分類問題や多値分類問題で用いられる行列であり、混同行列から様々な評価指標を計算することができるため、分類問題には必須な要素です。
そもそも分類問題でもAccuracy(精度)のみで評価してはいけないのか?と思う方もいるでしょう。場合によりますが、Accuracyのみだとモデルの評価を間違った方向にしてしまう可能性があります。この問題についても解説していきます!
この記事では、そんな混同行列の定義と評価指標について解説していきながらPythonで実装していきます!
混同行列について解説!

それでは早速、混同行列と評価指標について一気に解説していきます!
まず混同行列とは「元の教師ラベルと予測結果の2つを表した行列」と定義されています。
教師ラベルは元からサンプルについているラベル(正常・異常)を指します.そして予測結果はデータから推定されたラベル(正常・異常)を指します.したがって混同行列は2×2の行列を示していることが分かりますね!

ロボたんこれでPositive、Negativeそれぞれで予測して正解したもの、予測して間違えたものの数が分かるんだね!
ウマたんその通り!これらの値を使って評価指標を説明していくよ!
評価指標について解説!

次に評価指標を解説していきます!混同行列における評価指標は大まかに4つあると考えてください。
1. Accuracy(精度)
Accuracy(精度)とは「全データのうち、どれだけ予測が合っていたか」を示しています!一般的に用いられている指標としてはこちらが挙げられますね!
2. Recall(再現率)
Recall(再現率)は「Positiveな実データのうち、どれだけPositiveと予測できたか」を示しています!「どれだけPositiveな実データを「再現」してるか」と覚えると良いでしょう!
3. Precision(適合率)
Precision(適合率)は「Positiveと予測できたデータのうち、実際にPositiveなデータはどれだけあるか」を示しています!「Positiveと予測したデータがどれだけPositiveなデータと適合しているか」と覚えると良いでしょう!
4. F値
F値とは「Recallとprecisionの調和平均」を示しています!RecallとPrecisionはトレードオフの関係性にあります。つまりRecallが上がるとPrecisionは下がり、逆も然りです!したがってRecallとPrecisionを偏らせないで評価したい場合はF値を使います!
評価指標に関しては以下の記事でも詳しく解説していますのでチェックしてみてください!
機械学習の分類・予測精度における評価指標を徹底解説!当サイト【スタビジ】の本記事では、機械学習を実装する上での評価指標について徹底的にまとめていきます!回帰タスクや分類タスクにおける評価指標について見ていきましょう。評価フェーズや評価における注意点についても解説していきます。
そもそも何故、混同行列が必要なのか?

ロボたんそもそも「どれだけ正解を出しているか」といったAccuracyだけで評価していいものじゃないの?
ウマたん実はAccuracyだけでは、モデルの性能を評価していない可能性があるんだ。この問題について見ていこう!
例えば犬10匹と猫100匹を分類する問題を考えてみましょう!データを収集し、モデルに学習させたところ、次のようになったと考えます。犬は10匹猫と予測されましたが、猫は100匹猫と予測できました!

さて、この予測モデルをAccuracyで評価してみましょう!
素晴らしい予測精度が出ました!予測精度が約90%なので、このモデルはきっと良いモデルです…とはならないのです。
このモデルは猫の予測には役に立つでしょうが、犬の予測には全く役に立たないことが分かりますね.何故なら犬をきちんと予測した数は0なのですから!
実際に犬を正解とした場合のRecallとPrecisionを計算すると、TP=0なのでどちらも0になります!これはデータが偏っていることを示していることが考えられますね!
このようにPositive, Negativeの数が偏っている場合にAccracyで評価してしまうと、間違った方向に結論付ける危険性があります!したがって問題に適した評価指標を使うことが重要です!
また「犬を犬と予測した数」を5になったとしましょう!そうするとRecall、Precisionはとなり、犬に対する予測精度がある程度改善されていることが確認できました!
混同行列をPythonで実装!

それでは実際に混同行列と評価指標をPythonで実装しましょう!
混同行列はsklearn.metricsのconfusion_matrix関数、各評価指標はsklearn.metricsから実装できます!このときヒートマップを使って混同行列を表すと見やすいと思います!
import numpy as np
import seaborn as sns
from sklearn.metrics import confusion_matrix, accuracy_score, recall_score, precision_score,f1_score
y_true = [0,0,0,0,0,
0,1,0,1,0,
1,0,1,0,1,
1,1,1,1,1]
y_pred = [0, 1, 0, 1, 0,
1, 1, 1, 1, 1,
0, 1, 0, 1, 0,
1, 0, 1, 0, 1]
cm = confusion_matrix(y_true,y_pred)
sns.heatmap(cm)
print("Accuracy:",accuracy_score(y_true,y_pred))
print("Recall:",recall_score(y_true,y_pred))
print("Presicion:",precision_score(y_true,y_pred))
print("F-measure:",f1_score(y_true,y_pred))

ウマたん今回の結果はあまりよくないモデルであることを示しているね…、でもPositive、Negative両方とも半分くらいは予測が当たっていることが分かるね!
混同行列と評価指標 まとめ

ここまでご覧いただきありがとうございました!
本記事では混同行列と分類問題の評価指標についてまとめました!
分類問題では混同行列に基づいてROC曲線・AUCといった指標を用いることがあります。この指標もモデルを評価するうえで非常に重要な概念となりますので、ぜひスタビジで学びましょう!
このようなデータサイエンスの力を身に付けるためにはスタビジの記事やスクールを活用すると良いでしょう。
そして僕の経験を詰め込んだデータサイエンス特化のスクール「スタアカ(スタビジアカデミー)」を運営していますので,興味のある方はぜひチェックしてみてください!
AIデータサイエンス特化スクール「スタアカ」

| 【価格】 | ライトプラン:1,280円/月(全コースが受講し放題) プレミアムプラン:129,800円(通常149,800円・買い切り) |
|---|---|
| 【オススメ度】 | |
| 【サポート体制】 | |
| 【受講形式】 | オンライン形式 |
| 【学習範囲】 | 統計学・機械学習・ディープラーニングを網羅的に学ぶ 生成AI(LLM・RAG・プロンプトエンジニアリング)を学ぶ SQLとPythonを組み合わせて実データを使った様々なワークを行う 実践的なビジネスフレームワークを学ぶ マーケティングの実行プラン策定 |
データサイエンティストとしての自分の経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「スタアカ」!!
当メディアが運営するスクールです。
月額1,280円のライトプランで、統計学から機械学習・生成AIまで全コースが受講し放題です!
プレミアムプランでは、24時間以内の質問対応と現役データサイエンティストとの1on1(30分×4回)を実施します!
カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください!
他のスクールのカリキュラムはPythonでの機械学習実装だけに焦点が当たっているものが多く、実務に即した内容になっていないものが多いです。
そんな課題感に対して、実務で使うことの多いSQLや機械学習のビジネス導入プロセスの理解などもあわせて学べるボリューム満点のコースになっています!
Pythonが初めての人でも学べるようなカリキュラムにしておりますので是非チェックしてみてください!
ウォルマートのデータを使って商品の予測分析をしたり、実務で使うことの多いGoogleプロダクトのBigQueryを使って投球分析をしたり、データサイエンティストに必要なビジネス・マーケティングの基礎を学んでマーケティングプランを作ってもらったりする盛りだくさんの内容になってます!
データサイエンスに関する記事はこちら!
【初心者必見】統計学入門に必要な知識と独学勉強方法を簡単に学ぼう!当ブログ【スタビジ】の本記事では、統計学入門に必要な知識をカンタンにまとめ、それらをどのように効率的に独学で勉強していけばよいかをお話ししていきます。統計学は難しいイメージが少しありますが、学び方をしっかり考えれば大丈夫!
【データサイエンティスト厳選18冊】データサイエンスを学ぶ上でオススメな本・教材!当ブログ【スタビジ】の本記事では、データサイエンスを学ぶ上でオススメできる本を厳選して紹介していきます。ここではデータサイエンティストになるために習得するスキルをデータサイエンスと称しております。いくつかの観点に切り分けて見ていきます。
データサイエンスを勉強できるスクールやサイトは、ぜひこちらを参考にしてみてください!
【徹底比較】データサイエンティストになるための学習ができるスクール9選!当サイト【スタビジ】の本記事では、データサイエンティストへの学習ができるスクールを紹介していきます。スクールに通ったからと言ってデータサイエンティストになれるわけではありませんが、データサイエンティストへの基本を着実に固めることは可能です…読んだ内容を、スタアカの「Python基礎」コースで身につける
データサイエンス・AIを、動画と課題で体系的に学べるオンラインスクール。最初のレッスンは無料で見られます。




