이 경우 roc_auc_score()
의 두 번째 인수는 예측 확률이 clf.predict_proba(X_test)
인 형식이어야합니다. 이 임계 값은이 예측 확률의 기준에서이 함수 내에서 계산됩니다.
import numpy as np
from sklearn.metrics import roc_auc_score
y_true = np.array([0, 0, 1, 1])
y_scores = np.array([0.1, 0.4, 0.35, 0.8])
roc_auc_score(y_true, y_scores)
0.75
가 roc_auc_score
가이 도움이 roc_curve
그 자체를보고있을 caluclated 방법을 이해하려면 : documentation이에 대한 예제가있다. 이것은 sklearn.metrics.roc_curve()
함수로 할 수 있습니다. 예는 documentation 찍은 :
import numpy as np
from sklearn import metrics
y = np.array([1, 1, 2, 2])
scores = np.array([0.1, 0.4, 0.35, 0.8])
fpr, tpr, thresholds = metrics.roc_curve(y, scores, pos_label=2)
fpr
array([ 0. , 0.5, 0.5, 1. ])
tpr
array([ 0.5, 0.5, 1. , 1. ])
thresholds
array([ 0.8 , 0.4 , 0.35, 0.1 ])
합니다 (y
은 여전히 2 포지티브 클래스 인과 이진 분류 후자 예에서 상이한 있는데도.)
가
로서 후자의 예에서 알 수있는 다른 임계 값은 제공된 scores
에서 으로 취합니다.
ROC Curve은 y 축과 플롯의 x 축에 위양성률 fpr
에 참 긍정적 인 평가 tpr
를 넣어 생성 될 것이다.
다음과 같이'clf.predict_proba (X_test)'대신'y_pred = clf.predict (X_test)'를 사용했다면 어떻게 되나요? [link] (https://stackoverflow.com/questions/31159157)/another-result-with-roc-auc-score-and-auc) 나는 여전히 가능하다고 생각한다. – Ophilia
'clf.predict' 출력을 사용할 수 있다는 것이 옳은데, 이것은 몇 가지 의미가 있으며 계산할 수 없다. 원하는 양. 이진 분류가 주어지면'clt.predict'는 0 또는 1을 포함하는 배열을 반환합니다. 이 값은 점수 (일반적으로 0에서 1까지의 범위)로 해석 될 수도 있습니다. 'clf.predict_proba' – LuckyJosh
... (0 또는 1뿐만 아니라)에 의해 반환 된 점수의 차이점은 두 가지 가능한 임계 값을 가지고 있다는 것입니다. 1) 광석 이상으로 점수가 1 점인 모든 것을 긍정적 인 계급으로 가정한다. 2) 점수가 0 이상인 모든 것을 취합니다. – LuckyJosh