저는 AUC를 계산하고 테스트 세트에서 분류 된 모든 요소에 대해 ROC 곡선을 그려야하는 Keras로 작성된 다중 라벨 분류기를 사용합니다. 나는 그런 경우에 경사를 해석하는 방법을 모르는multilabel 분류의 roc_curve에는 경사가 있습니다.
:
모든 일부 요소가 ROC 곡선이 점을 제외하고 다음과 같이 기울기를 가질 수, 잘 보인다 .
기본적으로 내 워크 플로우는 내가 Keras의 사전 훈련 model
를, 인스턴스가, 다음, 그리고 그것은 그대로 내가, 특징 X
및 이진화 된 라벨 y
이 y
의 모든 요소가 길이 (1000)의 배열입니다 가지고 간다 multilabel 분류 문제 y
의 각 요소는 요소가 배수 클래스에 속해 있음을 나타내는 1을 많이 포함 할 수 있으므로 binary_crossentropy
의 내장 손실을 사용했으며 모형 예측 결과는 score probailities입니다. 그런 다음 로크 곡선을 다음과 같이 그립니다.
from sklearn.metrics import roc_curve, auc
#...
for xi, yi in (X_test, y_test):
y_pred = model.predict([xi])[0]
fpr, tpr, _ = roc_curve(yi, y_pred)
plt.plot(fpr, tpr, color='darkorange', lw=0.5)
예측 방법은 keras의 기능적 API를 사용하므로 확률을 반환합니다.
왜 곡선 곡선이 이렇게 생겼는지 아는 사람이 있습니까? 의 메일 링리스트에 물어
roc_curve 대신 roc_auc_score (여기 : http://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_arn_score.html#sklearn.metrics.roc_auc_score)를보고 싶을 수도 있습니다. 멀티 라벨 설정에 적합하지 않을 수 있습니다. 전자는 멀티 라벨이 지원된다고 구체적으로 말합니다. – StatsSorceress