Bagaimana Keras menghitung akurasi?


26

Bagaimana Keras menghitung akurasi dari probabilitas classwise? Katakanlah, misalnya kita memiliki 100 sampel dalam set tes yang dapat dimiliki salah satu dari dua kelas. Kami juga memiliki daftar probabilites yang berkelas. Ambang apa yang digunakan Keras untuk menetapkan sampel ke salah satu dari dua kelas?


apakah Anda menggunakan model.evaluate dalam keras?
Hima Varsha

Ya, saya menggunakan model.evaluate. Lebih khusus lagi, model.evaluate_generator.
Raghuram


Jawaban:


24

Untuk klasifikasi biner, kode untuk metrik akurasi adalah:

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

yang menunjukkan bahwa 0,5 adalah ambang batas untuk membedakan antara kelas. y_true tentu saja harus 1-hot dalam kasus ini.

Ini sedikit berbeda untuk klasifikasi kategori:

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

yang berarti "seberapa sering prediksi memiliki nilai maksimum di tempat yang sama dengan nilai sebenarnya"

Ada juga opsi untuk akurasi kategori top-k, yang mirip dengan yang di atas, tetapi menghitung seberapa sering kelas target dalam prediksi top-k.


Terima kasih atas jawabannya. Apakah itu berarti bahkan untuk klasifikasi biner, label harus berupa kode yang panas?
Raghuram

@Raghuram Tidak, untuk klasifikasi biner Anda hanya perlu 0 atau 1 sebagai kelas, tidak perlu satu lagi menyandikannya. Karena K. berarti (K. sama (y_true, K.round (y_pred)))) akan cocok dengan 2 nilai float untuk setiap kasus, jadi harus 0 atau 1 dan bukan [0,1], [1,0].
Divyanshu Kalra

Untuk akurasi kategori, gunakan categorical_accuracy.
Shital Shah

1
untuk masalah multi-kelas (dengan lebih dari dua kelas), apakah ada perbedaan antara menggunakan "akurasi" vs "ategical_accuracy "
Quetzalcoatl
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.