Keras doğruluğu nasıl hesaplar?


26

Keras, sınıfsal olasılıklardan kesinliği nasıl hesaplar? Örneğin, test setinde iki sınıftan birine ait olan 100 örneğimiz var. Ayrıca sınıfsal olasılıkların bir listesine de sahibiz. Keras, bu iki sınıftan birine örnek vermek için hangi eşiği kullanıyor?


model.evaluate kullanarak keras kullanıyor musunuz?
Hima Varsha

Evet, model.evaluate kullanıyorum. Daha spesifik olarak, model.evaluate_generator.
Raghuram


Muhtemelen ilişkili @ SO: Keras doğruluğunu nasıl değerlendiriyor? )
52'de desertnaut

Yanıtlar:


24

İkili sınıflandırma için, doğruluk ölçütü için kod şudur:

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

bu, 0.5'in sınıfları ayırt etmek için eşik olduğunu göstermektedir. y_true bu durumda elbette 1- nokta olmalıdır.

Kategorik sınıflandırma için biraz farklı:

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

bu, “öngörülerin gerçek değerlerle aynı noktada maksimum sıklığa sahip olduğu” anlamına gelir

Ayrıca, yukarıdakine benzer olan top-k kategorik doğruluğu için bir seçenek vardır, ancak hedef sınıfın en-k tahminleri içinde ne sıklıkta olduğunu hesaplar.


Cevap için teşekkür ederim. Bu, ikili sınıflandırma için bile, etiketlerin bir sıcak kodlanmış olması gerektiği anlamına mı geliyor?
Raghuram

@Raghuram Hayır, ikili sınıflandırma için sadece sınıf olarak 0 veya 1'e, bir sıcak kodlamaya gerek yoktur. K.mean (K.equal (y_true, K.round (y_pred)))) her durum için 2 değişkenlik değeriyle eşleşeceğinden, 0 veya 1 olmalı ve [0,1], [1,0] değil.
Divyanshu Kalra

Kategorik doğruluk için kullanın categorical_accuracy.
Shital Shah

1
çok sınıflı bir problem için (ikiden fazla sınıfa sahip), "doğruluk" ile "categorical_accuracy" kullanımı arasında bir fark var mı
Quetzalcoatl
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.