메인 콘텐츠로 건너뛰기
GitHub 소스

function roc_curve

roc_curve(
    y_true: 'Sequence[numbers.Number]',
    y_probas: 'Sequence[Sequence[float]] | None' = None,
    labels: 'list[str] | None' = None,
    classes_to_plot: 'list[numbers.Number] | None' = None,
    title: 'str' = 'ROC Curve',
    split_table: 'bool' = False
) → CustomChart
Receiver Operating Characteristic (ROC) 커브 차트를 구성합니다. Args:
  • y_true: 타깃 변수에 대한 실제 클래스 레이블(ground truth). 형태는 (num_samples,)이어야 합니다.
  • y_probas: 각 클래스에 대한 예측 확률 또는 결정 점수. 형태는 (num_samples, num_classes)이어야 합니다.
  • labels: y_true의 클래스 인덱스에 대응하는 사람이 이해할 수 있는 레이블. 예를 들어 labels=['dog', 'cat']인 경우, 플롯에서 클래스 0은 ‘dog’, 클래스 1은 ‘cat’으로 표시됩니다. None이면 y_true의 원시 클래스 인덱스를 사용합니다. 기본값은 None입니다.
  • classes_to_plot: ROC 커브에 포함할 고유 클래스 레이블의 부분집합. None이면 y_true의 모든 클래스를 그림에 포함합니다. 기본값은 None입니다.
  • title: ROC 커브 플롯의 제목. 기본값은 “ROC Curve”입니다.
  • split_table: 테이블을 W&B UI의 별도 섹션으로 분리할지 여부. True이면 테이블은 “Custom Chart Tables”라는 섹션에 표시됩니다. 기본값은 False입니다.
Returns:
  • CustomChart: W&B에 로그할 수 있는 커스텀 차트 객체. 차트를 로그하려면 wandb.log()에 전달합니다.
Raises:
  • wandb.Error: numpy, pandas 또는 scikit-learn을 찾을 수 없는 경우.
Example:
import numpy as np
import wandb

# 세 가지 질병에 대한 의료 진단 분류 문제 시뮬레이션
n_samples = 200
n_classes = 3

# 실제 레이블: 각 샘플에 "Diabetes", "Hypertension", 또는 "Heart Disease" 할당
disease_labels = ["Diabetes", "Hypertension", "Heart Disease"]
# 0: Diabetes, 1: Hypertension, 2: Heart Disease
y_true = np.random.choice([0, 1, 2], size=n_samples)

# 예측 확률: 각 샘플에 대해 합이 1이 되도록 예측값 시뮬레이션
y_probas = np.random.dirichlet(np.ones(n_classes), size=n_samples)

# 플롯할 클래스 지정 (세 가지 질병 모두 플롯)
classes_to_plot = [0, 1, 2]

# W&B run을 초기화하고 질병 분류를 위한 ROC 커브 플롯 로깅
with wandb.init(project="medical_diagnosis") as run:
    roc_plot = wandb.plot.roc_curve(
         y_true=y_true,
         y_probas=y_probas,
         labels=disease_labels,
         classes_to_plot=classes_to_plot,
         title="ROC Curve for Disease Classification",
    )
    run.log({"roc-curve": roc_plot})