2017-01-07 1 views
1

저는 AUC를 계산하고 테스트 세트에서 분류 된 모든 요소에 대해 ROC 곡선을 그려야하는 Keras로 작성된 다중 라벨 분류기를 사용합니다. 나는 그런 경우에 경사를 해석하는 방법을 모르는multilabel 분류의 roc_curve에는 경사가 있습니다.

enter image description here

:

enter image description here

모든 일부 요소가 ROC 곡선이 점을 제외하고 다음과 같이 기울기를 가질 수, 잘 보인다 .

기본적으로 내 워크 플로우는 내가 Keras의 사전 훈련 model를, 인스턴스가, 다음, 그리고 그것은 그대로 내가, 특징 X 및 이진화 된 라벨 yy의 모든 요소가 길이 (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를 사용하므로 확률을 반환합니다.

왜 곡선 곡선이 이렇게 생겼는지 아는 사람이 있습니까? 의 메일 링리스트에 물어

+0

roc_curve 대신 roc_auc_score (여기 : http://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_arn_score.html#sklearn.metrics.roc_auc_score)를보고 싶을 수도 있습니다. 멀티 라벨 설정에 적합하지 않을 수 있습니다. 전자는 멀티 라벨이 지원된다고 구체적으로 말합니다. – StatsSorceress

답변

0

그들이 대답 scikit 배우기 :

기울기는 일반적 의미 당신의 예측에 관계가있다.

이 문제의 경우입니다.

관련 문제