이 페이지는 Cloud Translation API를 통해 번역되었습니다.
Switch to English

tf.keras.metrics.AUC

TensorFlow 1 개 버전 GitHub의에서 소스보기

리만 합을 통해 대략 AUC를 (면적 곡선 아래) 계산.

: 상속 Metric

전자 필기장에서 사용

튜토리얼에서 사용

이 통계는 네 로컬 변수 생성 true_positives , true_negatives , false_positivesfalse_negatives AUC를 계산하기 위해 사용된다. AUC에 곡선 이산화 위해 임계 직선 이격 세트 재현율과 정확도 값 계산 쌍으로 사용된다. 홍보 곡선 아래의 면적은 회수하여 밀도 값의 높이를 이용하여 계산되는 동안 ROC 곡선 하의 면적 따라서 위양성율 의해 회수 값의 높이를 이용하여 계산된다.

이 값은, 궁극적으로 반환된다 auc (상기 변수를 이용하여 계산) 리콜 값 대 정밀도 이산화 곡선 아래의 면적을 계산 멱등 동작. num_thresholds 변수 컨트롤보다 밀접하게 진정한 AUC를 근사 임계 값의 큰 숫자 이산화 정도. 근사의 품질에 따라 크게 달라질 수 있습니다 num_thresholds . thresholds 수동 균등 예측 분할 임계치를 지정할 수있는 파라미터.

최상의 결과를 predictions 범위 [0, 1]에서 거의 균일하게 분포되지 이러한 경우가 아니라면, AUC 근사치의 품질이 저하 될 수있다 주위 0 또는 1을 정점으로한다. 설정 summation_method AUC의 낮거나 상한 추정치를 제공하여 근사치의 오류를 정량화 할 수 있습니다 '전공' 'minoring'하거나.

경우 sample_weight 없습니다 None , 무게는 1.의 기본값 sample_weight 값을 마스크 0.

num_thresholds (선택 사항) ROC 곡선 이산화 때 임계 값의 수는 사용하는 200 기본값. 값은 1>이어야합니다.
curve (선택)을 지정이 곡선의 이름 'ROC'[기본] 또는 정밀 리콜 곡선 'PR'이 계산된다.
summation_method (선택 사항)을 지정 리만 합 방법을 사용합니다. '보간'(기본값)에 대한 중간 점 가산 방식을 적용 ROC . PR-AUC, 보간 (참 / 거짓의) 긍정적이지만 정밀도되지 비율의 경우 (참조 데이비스 & 자세한 내용은 Goadrich 2006); 'minoring는 "간격 및 간격을 감소시키기위한 오른쪽 합산을 증가 좌 합산 적용; '전공'반대한다.
name 메트릭 인스턴스 (선택 사항) 문자열 이름.
dtype 메트릭 결과 (선택) 데이터 타입.
thresholds 부동 소수점 값 (선택 사항)에서 곡선을 이산화위한 임계 값으로 사용한다. 설정하면 num_thresholds 무시됩니다 매개 변수입니다. 값은 [0, 1]에 있어야한다. 끝점 임계 정확히 0 또는 1과 동일한 자동으로 정확하게 예측을 취급이 포함된다 작은 양의 값 (ε) -epsilon {1 개 + (ε)}와 동일.
multi_label AUC는 각각의 라벨에 대해 개별적으로 계산하고 라벨 걸쳐 평균화 상기 부울, 다중 레벨 데이터 등으로 처리되어야하는지 여부를 나타내는 데이터를 연산하기 전에 AUC 단일 라벨로 평평해야하거나 (false이면) 경우. 다중 레벨 데이터 AUC 전달 될 때 후자의 경우, 각 라벨 예측 쌍은 개별 데이터 포인트로 간주된다. 멀티 클래스 데이터를 False로 설정해야합니다.
label_weights 다중 레벨 데이터의 AUC의 계산에 사용되지 않은 네가티브 가중치 (선택적)에서, 배열 또는 텐서. 때 multi_label True 인 그들이 멀티 라벨 AUC를 생산하는 평균 때, 가중치는 개별 라벨의 AUC에 적용됩니다. 이 거짓이되면, 그들은 데이터를 평평에 혼란 행렬을 계산에 개별 라벨 예측을 가중하는 데 사용됩니다. 참고이 label_weights 반면은 평탄화 전에 라벨 인덱스에만 의존 예는 라벨의 값에 따라 그 class_weights 가중치 달리 class_weights 있음; 그러므로 label_weights 멀티 클래스 데이터를 사용할 수 없습니다.

독립형 사용 :

m = tf.keras.metrics.AUC(num_thresholds=3)
m.update_state([0, 0, 1, 1], [0, 0.5, 0.3, 0.9])
# threshold values are [0 - 1e-7, 0.5, 1 + 1e-7]
# tp = [2, 1, 0], fp = [2, 0, 0], fn = [0, 1, 2], tn = [0, 2, 2]
# recall = [1, 0.5, 0], fp_rate = [1, 0, 0]
# auc = ((((1+0.5)/2)*(1-0))+ (((0.5+0)/2)*(0-0))) = 0.75
m.result().numpy()
0.75
m.reset_states()
m.update_state([0, 0, 1, 1], [0, 0.5, 0.3, 0.9],
               sample_weight=[1, 0, 0, 1])
m.result().numpy()
1.0

와 사용 compile() API :

 model.compile(optimizer='sgd', loss='mse', metrics=[tf.keras.metrics.AUC()])
 

thresholds AUC의 평가에 사용되는 임계 값.

행동 양식

interpolate_pr_auc

소스보기

보간 공식은 데이비스 & Goadrich 2006 년 4 절에서 영감을.

https://www.biostat.wisc.edu/~page/rocpr.pdf

우리는 다음과 같이 도출 및 용지에없는 밀폐 식을 사용하여 여기에 참고

정밀 = TP / (TP + FP) = TP / P

TP (참된 긍정), FP (위양성) 연속 임계 값 사이의 각각의 간격 [A, B]에서 선형 변화 그들의 합 P = TP + FP (예측 포지티브) 모두 모델링 우리 얻을

정밀 기울기 = DTP / DP = (TP_B - TP_A) / (P_B - P_A) = (TP - TP_A) / (P - P_A) 정밀 = (+ TP_A 기울기 * (P - P_A)) / P

구간 내의 영역 (경사 / total_pos_weight) 배

int_A ^ B} = {Precision.dP int_A B ^ {(TP_A + 기울기 * (P - P_A)) * DP / P} int_A ^ B} = {Precision.dP int_A B ^ {기울기 * DP + 절편 * DP / 피}

여기서 절편 TP_A = - = 기울기 * P_A TP_B - 기울기 * P_B에서 얻어진

int_A ^ B} = {Precision.dP TP_B - TP_A + 절편 * 로그 (P_B / P_A)

요인을 다시 현실로 (경사 / total_pos_weight) 우리가 따로 넣어 것, 우리가 얻을

기울기 * DTP + 절편 * 로그 (P_B / P_A)] / total_pos_weight

어디에서 DTP == TP_B을 - TP_A.

참고 때 P_A == 0 위의 계산을 단순화로

int_A ^ B} = {Precision.dTP int_A B ^ {기울기 * DTP} = 기울기 * (TP_B - TP_A)

이는> 0 참 양성을 갖는 제 버킷 걸쳐 일정한 정밀도 전가 정말 동일하다.

보고
pr_auc 홍보 곡선 아래의 면적의 근사치.

reset_states

소스보기

메트릭 상태 변수를 모두 재설정합니다.

메트릭은 훈련 기간 동안 평가 될 때이 기능은, 신 (新) 시대 / 단계 사이라고합니다.

result

소스보기

계산하여 반환 메트릭 값 텐서를.

계산 결과는 단순히 상기 상태 변수를 이용하여 통계 값을 산출 멱등 동작이다.

update_state

소스보기

혼란 매트릭스 통계를 축적한다.

인수
y_true 지상의 진리 값.
y_pred 예측 값.
sample_weight 각 예제의 옵션 가중치. 1. 기본값은 될 수 Tensor 그 순위 0 중 하나, 또는 같은 순위 y_true , 그리고에 캐스트 가능한해야합니다 y_true .

보고
업데이트 연산.