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는 클래스 수입니다. probs를 제공한 경우 preds는 제공하면 안 됩니다.
y_true: 실제 레이블 시퀀스입니다.
preds: 예측된 클래스 레이블 시퀀스입니다. preds를 제공한 경우 probs는 제공하면 안 됩니다.
class_names: 클래스 이름 시퀀스입니다. 제공하지 않으면 클래스 이름은 “Class_1”, “Class_2” 등으로 지정됩니다.
title: 혼동 행렬 차트의 제목입니다.
split_table: 테이블을 W&B UI의 별도 섹션으로 분리할지 여부입니다. True이면 테이블이 “Custom Chart Tables”라는 이름의 섹션에 표시됩니다. 기본값은 False입니다.
반환값:
CustomChart: W&B에 로깅할 수 있는 맞춤형 차트 객체입니다. 차트를 로깅하려면 wandb.log()에 전달하세요.
예외:
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개 샘플 x 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%로 예측을 시뮬레이션합니다.