Keras는 정확도를 어떻게 계산합니까?


26

Keras는 클래스 별 확률에서 정확도를 어떻게 계산합니까? 예를 들어 테스트 세트에 두 개의 클래스 중 하나에 속할 수있는 100 개의 샘플이 있습니다. 우리는 또한 계급의 영아 목록을 가지고 있습니다. Keras는 두 클래스 중 하나에 샘플을 할당하기 위해 어떤 임계 값을 사용합니까?


keras에서 model.evaluate를 사용하고 있습니까?
Hima Varsha

예, model.evaluate를 사용하고 있습니다. 더 구체적으로, model.evaluate_generator.
Raghuram


답변:


24

이진 분류의 경우 정확도 메트릭 코드는 다음과 같습니다.

K.mean(K.equal(y_true, K.round(y_pred)))

0.5는 클래스를 구별하기위한 임계 값임을 나타냅니다. 이 경우 y_true 는 물론 1- hots 여야합니다.

범주 형 분류에서는 약간 다릅니다.

K.mean(K.equal(K.argmax(y_true, axis=-1), K.argmax(y_pred, axis=-1)))

"예측이 실제 값과 동일한 지점에서 최대 값을 갖는 빈도"를 의미합니다.

top-k categorical 정확도에 대한 옵션도 있는데, 위와 비슷하지만 top-k 예측 내에서 대상 클래스가 얼마나 자주 있는지 계산합니다.


응답 해주셔서 감사합니다. 이진 분류의 경우에도 레이블을 하나의 핫 인코딩해야합니까?
Raghuram

@Raghuram 아니요, 이진 분류의 경우 클래스로 0 또는 1이 필요하며 핫 인코딩 할 필요가 없습니다. K.mean (K.equal (y_true, K.round (y_pred)))은 각 경우에 대해 2 개의 부동 소수점 값과 일치하므로 [0,1], [1,0]이 아닌 0 또는 1이어야합니다.
Divyanshu Kalra

범주 정확도를 위해을 사용하십시오 categorical_accuracy.
Shital Shah

1
(클래스가 2 개 이상인) 멀티 클래스 문제의 경우 "정확도"와 "categorical_accuracy"의 차이가
Quetzalcoatl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.