수신자 조작 특성(Receiver Operating Characteristic, ROC) 곡선 차트를 생성합니다.Args:
y_true: 타깃 변수에 대한 실제 클래스 레이블(ground truth)입니다. shape은 (num_samples,)이어야 합니다.
y_probas: 각 클래스에 대한 예측 확률 또는 결정 점수입니다. shape은 (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입니다.
CustomChart: W&B에 로그할 수 있는 커스텀 차트 객체입니다. 차트를 로그하려면 wandb.log()에 전달하면 됩니다.
Raises:
wandb.Error: numpy, pandas 또는 scikit-learn을 찾을 수 없는 경우 발생합니다.
Example:
import numpy as npimport wandb# 세 가지 질병에 대한 의료 진단 분류 문제 시뮬레이션n_samples = 200n_classes = 3# 실제 레이블: 각 샘플에 "Diabetes", "Hypertension", 또는 "Heart Disease" 할당disease_labels = ["Diabetes", "Hypertension", "Heart Disease"]# 0: Diabetes, 1: Hypertension, 2: Heart Diseasey_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 실행을 초기화하고 질병 분류를 위한 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})