Confusion Matrix
混同行列 (confusion matrix) が分類パフォーマンスを評価する仕組みを学びましょう。TP、FP、TN、およびFNを理解して、より高い精度を目指してUltralytics YOLO26モデルを最適化します。
混同行列(コンフュージョンマトリックス)は、出力が2つ以上のクラスになり得る機械学習の分類問題におけるパフォーマンス測定ツールです。これは予測値と実測値の4つの異なる組み合わせを示す表であり、モデル評価におけるデータビジュアライゼーションの基礎要素となります。データセットが不均衡な場合に誤解を招くおそれのある単純な精度(アキュラシー)とは異なり、混同行列はコンピュータビジョン (CV)モデルがどこで間違えているのかを詳細に内訳して示します。予測値とグランドトゥルースラベルを比較することで、開発者はシステムが特定の2つのクラスを混同しているのか、それともオブジェクトの検出に完全に失敗しているのかを判断できます。
行列の主要コンポーネント#
バイナリ分類の場合、行列自体は通常4つの象限に分割されますが、Ultralytics YOLO26で処理されるようなマルチクラスの問題では拡張されます。これら4つのコンポーネントは、モデルが予測した内容と画像内に実際に存在する内容の交点を表します。
- 真陽性 (TP): モデルが正例クラスを正しく予測します。たとえば、オブジェクト検出タスクにおいて、モデルは実際にフレーム内にいる人物の周囲のバウンディングボックスを正常に描画します。
- 真陰性 (TN): モデルが負例クラスを正しく予測します。これは異常検知のようなシナリオにおいて極めて重要であり、システムは製造された部品に欠陥がないことを正しく識別します。
- 偽陽性 (FP): モデルが正例クラスを誤って予測します。「第一種過誤」と呼ばれることが多く、これはセキュリティカメラが影を侵入者としてフラグ付けするなど、存在しないオブジェクトをシステムが検出したときに発生します。
- 偽陰性 (FN): モデルが負例クラスを誤って予測します。「第二種過誤」として知られており、これはモデルが存在するオブジェクトの検出に失敗し、本質的にターゲットを「見逃す」場合に発生します。
派生メトリクスとその意義#
混同行列内の生データは、モデルのパフォーマンスを記述する高度な指標を計算するために使用されます。これらの派生指標を理解することは、ニューラルネットワークを最適化するために不可欠です。
- 適合率 (Precision): TP / (TP + FP)として計算されるこの指標は、正例の予測がどれほど正確であるかを明らかにします。適合率が高いほど、誤警報が少なくなります。
- 再現率 (感度): TP / (TP + FN)として計算され、すべての正例インスタンスを見つけ出すモデルの能力を測定します。オブジェクトの見逃しが重大な結果を招く場合、高い再現率が極めて重要です。
- F1スコア: 適合率と再現率の調和平均です。両者のトレードオフのバランスをとる単一のスコアを提供し、さまざまなYOLO26モデルを比較するのに役立ちます。
実社会での応用#
混同行列によって定義されるエラーの特定のコストは、業界ごとにモデルがどのように調整されるかを決定づけます。
**医療分野におけるAI**の領域では、混同行列は安全性の問題です。腫瘍を検出するために医療画像解析用のモデルをトレーニングする場合、偽陰性(腫瘍の見逃し)は偽陽性(医師の確認のために良性の斑点にフラグを立てること)よりもはるかに悪質です。したがって、潜在的な健康リスクを見落とさないようにするため、この行列ではエンジニアは適合率よりも再現率を優先します。
逆に、**製造業の品質管理**においては効率性が鍵となります。組立ラインの部品を分類するシステムが多すぎる偽陽性(良品を欠陥品としてフラグ付けすること)を生成する場合、それは不要な無駄を引き起こし、生産を遅らせます。ここでは、混同行列がエンジニアによるモデルの調整を支援し、適合率を最大化して、拒否されたものが真に欠陥品であることを確実にすることで、自動化された機械学習ワークフローを効率化します。
Ultralytics YOLO26 を使用した混同行列の生成#
近代的なフレームワークを使用する場合、この行列の生成は通常、標準的な検証パイプラインの一部となります。以下の例は、YOLO26モデルを検証し、ultralyticsパッケージを使用して混同行列データにアクセスする方法を示しています。
from ultralytics import YOLO
# Load a pre-trained YOLO26 model
model = YOLO("yolo26n.pt")
# Validate the model on the COCO8 dataset
# This automatically generates and plots the confusion matrix
metrics = model.val(data="coco8.yaml")
# Access the confusion matrix object directly
print(metrics.confusion_matrix.matrix)関連する概念との違い#
混同行列を類似の評価用語と区別することが重要です。
- 対 精度 (Accuracy): 精度は単に総予測数に対する正しい予測数の比率です。役立ちはあるものの、不均衡データセットにおいては精度が非常に誤解を招く可能性があります。たとえば、メールの95%がスパムではない場合、すべてのメールに対して「スパムではない」と予測するモデルの精度は95%になりますが、役には立ちません。混同行列は、スパムクラスの真陽性がゼロであることを示すことで、この欠陥を明らかにします。
- 対 ROC曲線: 混同行列は、単一の特定の信頼度閾値におけるパフォーマンスのスナップショットを提供します。対照的に、受信者操作特性 (ROC) 曲線は、その閾値を変動させたときに真陽性率と偽陽性率がどのように変化するかを視覚化します。Ultralyticsプラットフォームなどのツールを使用すると、ユーザーは両方のビジュアライゼーションを探索して、展開に最適な動作点を選択できます。






