Làm thế nào để Keras tính toán chính xác?


26

Làm thế nào để Keras tính toán độ chính xác từ xác suất theo lớp? Giả sử, ví dụ chúng ta có 100 mẫu trong tập kiểm tra có thể thuộc về một trong hai lớp. Chúng tôi cũng có một danh sách các xác suất theo lớp. Keras sử dụng ngưỡng nào để gán mẫu cho một trong hai lớp?


bạn đang sử dụng model.evalu in keras?
Hima Varsha

Vâng, tôi đang sử dụng model.evalu. Cụ thể hơn, model.evalu_generator.
Raghuram


Câu trả lời:


24

Đối với phân loại nhị phân, mã cho số liệu chính xác là:

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

trong đó gợi ý rằng 0,5 là ngưỡng để phân biệt giữa các lớp. y_true tất nhiên phải là 1 điểm nóng trong trường hợp này.

Đó là một chút khác nhau để phân loại phân loại:

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

có nghĩa là "tần suất dự đoán có tối đa ở cùng một điểm với giá trị thực"

Ngoài ra còn có một tùy chọn cho độ chính xác phân loại top-k, tương tự như ở trên, nhưng tính toán mức độ thường xuyên của lớp mục tiêu trong các dự đoán top-k.


Cảm ơn bạn đã trả lời. Điều đó có nghĩa là ngay cả đối với phân loại nhị phân, các nhãn cần phải được mã hóa nóng?
Raghuram

@Raghuram Không, để phân loại nhị phân, bạn chỉ cần 0 hoặc 1 là lớp, không cần mã hóa nóng. Vì K.mean (K.equal (y_true, K.round (y_pred))) sẽ khớp 2 giá trị float cho mỗi trường hợp, do đó, nó phải là 0 hoặc 1 chứ không phải [0,1], [1,0].
Divyanshu Kalra

Để phân loại chính xác, sử dụng categorical_accuracy.
Shital Shah

1
đối với một vấn đề đa lớp (có nhiều hơn hai lớp), có sự khác biệt giữa việc sử dụng "độ chính xác" so với "c sortical_accuracy"
Quetzalcoatl
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.