केरस सटीकता की गणना कैसे करता है?


26

केरेस कक्षावार संभावनाओं से सटीकता की गणना कैसे करता है? उदाहरण के लिए, उदाहरण के लिए, हमारे पास परीक्षण सेट में 100 नमूने हैं जो दो वर्गों में से एक के हो सकते हैं। हमारे पास कक्षावार संभावितों की एक सूची भी है। दोनों वर्गों में से किसी एक को नमूना देने के लिए केरस किस सीमा तक उपयोग करता है?


क्या आप मॉडल का उपयोग कर रहे हैं?
हेमा वर्षा

हां, मैं model.ev मूल्यांकन का उपयोग कर रहा हूं। अधिक विशेष रूप से, model.ev Assess_generator।
रघुराम


जवाबों:


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)))

जिसका अर्थ है "कितनी बार भविष्यवाणियों में एक ही स्थान पर अधिकतम सही मान हैं"

टॉप-के श्रेणीगत सटीकता के लिए एक विकल्प भी है, जो ऊपर एक के समान है, लेकिन गणना करता है कि टॉप-के भविष्यवाणियों के भीतर लक्ष्य वर्ग कितनी बार है।


जवाब के लिए धन्यवाद। क्या द्विआधारी वर्गीकरण के लिए भी इसका मतलब है, लेबल को एक गर्म एन्कोडेड होने की आवश्यकता है?
रघुराम

@ रघुराम नहीं, द्विआधारी वर्गीकरण के लिए आपको केवल कक्षा के रूप में 0 या 1 की आवश्यकता है, किसी एक को गर्म करने की आवश्यकता नहीं है। चूँकि K.mean (K.equal (y_true, K.round (y_pred))) प्रत्येक मामले के लिए 2 फ़्लोट मानों से मेल खाएगा, इसलिए इसे 0 या 1 होना चाहिए, न कि [0,1], [1,0]।
दिव्यांशु कालरा

स्पष्ट सटीकता के लिए, का उपयोग करें categorical_accuracy
शीतल शाह

1
बहु-वर्ग की समस्या के लिए (दो से अधिक वर्गों के साथ), क्या "सटीकता" बनाम "श्रेणीबद्ध_सुरक्षा" का उपयोग करने के बीच कोई अंतर है
क्वेटज़लकोटल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.