8

के बीच अंतर categorical_accuracy और sparse_categorical_accuracy केरा में क्या अंतर है? documentation for these metrics में कोई संकेत नहीं है, और डॉ Google से पूछकर, मुझे इसके लिए उत्तर नहीं मिला।केरास - categorical_accuracy और sparse_categorical_accuracy

स्रोत कोड पाया जा सकता है here:

def categorical_accuracy(y_true, y_pred): 
    return K.cast(K.equal(K.argmax(y_true, axis=-1), 
          K.argmax(y_pred, axis=-1)), 
        K.floatx()) 


def sparse_categorical_accuracy(y_true, y_pred): 
    return K.cast(K.equal(K.max(y_true, axis=-1), 
          K.cast(K.argmax(y_pred, axis=-1), K.floatx())), 
        K.floatx()) 
+0

शायद यह मदद कर सकता है: https://stackoverflow.com/a/43546939/3374996। लक्ष्य के साथ कुछ करने के लिए। मुझे यकीन नहीं है कि लक्ष्य से उनका मतलब है y_true, y_pred sparse हैं या स्पष्ट सटीकता का आउटपुट स्पैस है। –

उत्तर

5

source

को देखते हुए
def categorical_accuracy(y_true, y_pred): 
    return K.cast(K.equal(K.argmax(y_true, axis=-1), 
          K.argmax(y_pred, axis=-1)), 
        K.floatx()) 


def sparse_categorical_accuracy(y_true, y_pred): 
    return K.cast(K.equal(K.max(y_true, axis=-1), 
          K.cast(K.argmax(y_pred, axis=-1), K.floatx())), 
K.floatx()) 

categorical_accuracy जांच करता है कि अधिक से अधिक सही मूल्य की सूचकांकसूचकांक अधिक से अधिक की भविष्यवाणी की मूल्य की के बराबर है देखने के लिए।

sparse_categorical_accuracy यह देखने के लिए जांच करता है कि अधिकतम वास्तविक मान अधिकतम अनुमानित मान के अनुक्रमणिका के बराबर है या नहीं।

से categorical_accuracy ऊपर मार्सिन का जवाब y_true के लिए एक one-hot इनकोडिंग वेक्टर से मेल खाती है।

10

तो categorical_accuracy में आप एक गर्म इनकोडिंग वेक्टर के रूप में अपने लक्ष्य (y) निर्दिष्ट करने की आवश्यकता (जैसे 3 वर्गों, के मामले में एक सच्चे वर्ग है जब द्वितीय श्रेणी, y(0, 1, 0) होना चाहिए sparse_categorical_accuracy में आप ही सच्चा वर्ग के एक पूर्णांक प्रदान करना चाहिए की जरूरत है। (पिछले उदाहरण से मामले में - यह 1 होगा के रूप में कक्षाएं अनुक्रमण 0 आधारित है)

+0

मेरा उत्तर सहायक था? –

+0

यह मेरे लिए उपयोगी था :) –

संबंधित मुद्दे