정밀 회수 곡선 (PR- 곡선의 AUC) 및 평균 정밀 (AP) 영역


27

평균 정밀도 (AP)는 정밀도-회귀 곡선 (PR- 곡선의 AUC) 하의 영역입니까?

편집하다:

다음은 PR AUC와 AP의 차이점에 대한 의견입니다.

AUC는 정밀도의 사다리꼴 보간에 의해 얻어진다. 대체적이고 대체로 거의 동등한 메트릭은 info.ap로 반환되는 평균 정밀도 (AP)입니다. 이것은 새로운 양의 샘플이 리콜 될 때마다 얻은 정밀도의 평균입니다. 정밀도가 일정한 세그먼트에 의해 보간되고 TREC에서 가장 자주 사용되는 정의 인 경우 AUC와 같습니다.

http://www.vlfeat.org/overview/plots-rank.html

또한, AUCaverage_precision_score 결과는 scikit 배우기에 동일하지 않습니다. 이것은 문서에서 우리가 가지고 있기 때문에 이상합니다.

예측 점수에서 계산 평균 정밀도 (AP)이 점수는 정밀도 회수 곡선 아래의 영역에 해당합니다.

코드는 다음과 같습니다.

# Compute Precision-Recall and plot curve
precision, recall, thresholds = precision_recall_curve(y_test, clf.predict_proba(X_test)[:,1])
area = auc(recall, precision)
print "Area Under PR Curve(AP): %0.2f" % area  #should be same as AP?

print 'AP', average_precision_score(y_test, y_pred, average='weighted')
print 'AP', average_precision_score(y_test, y_pred, average='macro')
print 'AP', average_precision_score(y_test, y_pred, average='micro')
print 'AP', average_precision_score(y_test, y_pred, average='samples')

내 분류 자에게는 다음과 같은 것이 있습니다.

Area Under PR Curve(AP): 0.65
AP 0.676101781304
AP 0.676101781304
AP 0.676101781304
AP 0.676101781304

답변:


15

짧은 대답은 YES 입니다. 평균 정밀도는 정밀도-리콜 곡선을 요약하는 데 사용되는 단일 숫자입니다.

여기에 이미지 설명을 입력하십시오

다음을 사용하여 적분 (곡선 아래 면적)을 근사 할 수 있습니다.

여기에 이미지 설명을 입력하십시오

좋은 설명을 보려면 이 링크 를 살펴보십시오 .


이 의견은 어떻습니까? "AUC는 정밀도의 사다리꼴 보간에 의해 얻어진다. 대체적이고 거의 동등한 메트릭은 평균 정밀도 (AP)이며, info.ap로 반환된다. 이것은 새로운 양의 샘플이 리콜 될 때마다 얻어진 정밀도의 평균이다. 정밀도가 일정한 세그먼트에 의해 보간되고 TREC에서 가장 자주 사용되는 정의 인 경우 AUC와 동일합니다. " vlfeat.org/overview/plots-rank.html
mrgloom

1
내가 준 링크에서 설명 된 보간 평균 정밀도를the average of the precision obtained every time a new positive sample is recalled 의미 한다고 생각 합니다 . 일부 저자는 보간 평균 정밀도 라고하는 대체 근사를 선택합니다 . 혼란스럽게도 그들은 여전히 ​​평균 정밀도라고 부릅니다.
Zhubarb 2016 년

몇 가지 간단한 질문 : 1) 왜 좌표 (회수 = 0, 정밀도 = 1)입니까? 전혀 이해가되지 않습니다. 2) 당신이 볼 수 있듯이, 분류 자의 임계 값을 낮추면 더 많은 결과가 반환 될 수 있으며 결과적으로 리콜이 증가하지는 않지만 정밀도는 예를 들어 총 2 개의 긍정적 인 항목으로 다를 수 있습니다. = [False, True, False, False, True], pr 쌍 = [(p = 0, r = 0), (1/2, 1/2), (1/3, 1/2), (1 / 4, 1/2), (2/5, 2/2)], 알 수 있듯이 r = 1 / 2의 경우 3p (예 : 1/2, 1/3, 1/4)가 있습니다. r = 0.8의 그래프에서와 같이 동일한 x 축으로 플롯해도됩니까?
아보카도

2

average_precision_score 함수는 신뢰 또는 확률을 두 번째 매개 변수로 예상합니다.

아래와 같이 사용해야합니다.

average_precision_score(y_test, clf.predict_proba(X_test)[:,1])

그리고 그것은 같은 결과입니다 auc기능 같습니다.


WEKA 소프트웨어 및 scikit-learn의 다른 예는 CLF 점수를 제공하지만 AUC는 제공하지 않습니다. 이 CLF 점수가 실제로 AUC와 관련이 있거나 AUC 일 수 있습니까?
hhh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.