Menu
CoddyTech

混同行列

CoddyのMachine Learningジャーニー「教師あり学習」セクションの一部。レッスン 21/58。

精度は、間違いの種類ではなく、間違いの数を数えます。インフルエンザ検査では、病気の患者を帰宅させてしまうことは、誤警報よりもはるかに深刻です。混同行列は、それぞれの種類を数えます:

100人の患者を対象としたインフルエンザ検査の2行2列の表。行は実際の状態で、健康、次にインフルエンザに罹患。列は判定結果で、健康と判定、次にインフルエンザに罹患と判定。青は正しい判定:真陰性50件、真陽性42件。オレンジは誤判定:偽陽性3件、偽陰性5件

インフルエンザは陽性クラスの1です。誤りは対角線から外れた部分にあります。偽陽性(誤報)と偽陰性(見逃したケース)です。

from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay

cm = confusion_matrix(y_test, pred)  # 正解を先に
print(cm)
print(cm[1, 0])  # 行 1: インフルエンザにかかっている、列 0: 健康と判定した
ConfusionMatrixDisplay.from_predictions(y_test, pred, display_labels=["healthy", "flu"],
                                        ax=ax, colorbar=False)  # カラーバーなし: 件数を見ればわかる

これは次のように出力されます:

[[50  3]
 [ 5 42]]
5

この章では、その見逃し例のセルを小さくすることを扱います。ほとんど誰も見逃さないスクリーニング検査で締めくくります。

challenge icon

チャレンジ

中級

ライフガードには、離岸流が発生する可能性があるとき、朝にアラートが届きます。スターターコードはアラートモデルを訓練し、テスト対象の朝のデータに対する予測をpredに格納します(1は離岸流を意味します)。

  1. 混同行列を作成し、以下のように4つの件数を出力してください。
  2. axにcalmとripのラベルを付けて描画し、表示してください。

別のモデルの場合:

Rips caught: 30
Rips missed: 2
False alarms: 9
Calm days cleared: 59

Coddyがあなたのグラフを説明します。パイプの漏水アラートを題材にした、次のグラフのようになるはずです。

Leak Alertsというタイトルの混同行列。行は正解ラベルで、dry、次にleak。列は予測ラベル。セルの値:dryの行は61と4、leakの行は7と28

自分で試してみよう

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay

# サーフビーチの各朝につき1行:rip の 1 は、その日に離岸流が発生したことを意味する
beach = pd.read_csv("rips.csv")
features = ["wave_height_m", "wave_period_s", "wind_kmh", "tide_change_m"]
X = beach[features]
y = beach["rip"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)

# ライフガードによる離岸流の警報
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)
pred = model.predict(X_test)

fig, ax = plt.subplots()
ax.set_title("Rip Current Alerts")

# 以下にコードを書いてください
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

教師あり学習のすべてのレッスン

自分で練習してみよう: Pythonオンラインコンパイラ