Documentation Index
Fetch the complete documentation index at: https://wb-21fd5541-john-wbdocs-2044-rename-serverless-products.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
関数 confusion_matrix
confusion_matrix(
probs: 'Sequence[Sequence[float]] | None' = None,
y_true: 'Sequence[T] | None' = None,
preds: 'Sequence[T] | None' = None,
class_names: 'Sequence[str] | None' = None,
title: 'str' = 'Confusion Matrix Curve',
split_table: 'bool' = False
) → CustomChart
確率または予測のシーケンスから混同行列を作成します。
引数:
probs: 各クラスに対する予測確率のシーケンス。シーケンスの形状は (N, K) である必要があります。ここで、N はサンプル数、K はクラス数です。これを指定する場合、preds は指定しないでください。
y_true: 真のラベルのシーケンス。
preds: 予測クラスラベルのシーケンス。これを指定する場合、probs は指定しないでください。
class_names: クラス名のシーケンス。指定しない場合、クラス名は “Class_1”、“Class_2” などになります。
title: 混同行列チャートのタイトル。
split_table: 表を W&B UI の別セクションに分けるかどうか。True の場合、表は “Custom Chart Tables” という名前のセクションに表示されます。デフォルトは False です。
戻り値:
CustomChart: W&B にログできるカスタムチャートオブジェクト。チャートをログするには、これを wandb.log() に渡します。
Raises:
ValueError: probs と preds の両方が指定された場合、または予測数と真のラベル数が一致しない場合に発生します。また、予測された一意のクラス数がクラス名の数を超える場合や、一意の真のラベル数がクラス名の数を超える場合にも発生します。
wandb.Error: numpy がインストールされていない場合に発生します。
例:
野生動物分類でランダムな確率を使って混同行列をログする例:
import numpy as np
import wandb
# 野生動物のクラス名を定義する
wildlife_class_names = ["Lion", "Tiger", "Elephant", "Zebra"]
# ランダムな正解ラベルを生成する(10サンプルに対して0〜3)
wildlife_y_true = np.random.randint(0, 4, size=10)
# 各クラスのランダムな確率を生成する(10サンプル × 4クラス)
wildlife_probs = np.random.rand(10, 4)
wildlife_probs = np.exp(wildlife_probs) / np.sum(
np.exp(wildlife_probs),
axis=1,
keepdims=True,
)
# W&B runを初期化して混同行列をログする
with wandb.init(project="wildlife_classification") as run:
confusion_matrix = wandb.plot.confusion_matrix(
probs=wildlife_probs,
y_true=wildlife_y_true,
class_names=wildlife_class_names,
title="Wildlife Classification Confusion Matrix",
)
run.log({"wildlife_confusion_matrix": confusion_matrix})
この例では、ランダムな確率を用いて混同行列を生成します。
シミュレートしたモデルの予測と 85% の精度で混同行列をログする例:
import numpy as np
import wandb
# 野生動物のクラス名を定義する
wildlife_class_names = ["Lion", "Tiger", "Elephant", "Zebra"]
# 200枚の動物画像の正解ラベルをシミュレートする(不均衡な分布)
wildlife_y_true = np.random.choice(
[0, 1, 2, 3],
size=200,
p=[0.2, 0.3, 0.25, 0.25],
)
# 精度85%でモデルの予測をシミュレートする
wildlife_preds = [
y_t
if np.random.rand() < 0.85
else np.random.choice([x for x in range(4) if x != y_t])
for y_t in wildlife_y_true
]
# W&B の run を初期化して混同行列をログする
with wandb.init(project="wildlife_classification") as run:
confusion_matrix = wandb.plot.confusion_matrix(
preds=wildlife_preds,
y_true=wildlife_y_true,
class_names=wildlife_class_names,
title="Simulated Wildlife Classification Confusion Matrix",
)
run.log({"wildlife_confusion_matrix": confusion_matrix})
この例では、正解率85%となるように予測をシミュレートし、混同行列を生成します。