2017-12-11 5 views
-1

Ich sehe Spam Prediction klassifizieren Nachrichten wie Spam und Ham von anderen Personen gemacht.Wie bekomme ich Präzision und Rückruf statt Genauigkeit in Tensorflow

[source code] https://github.com/nfmcclure/tensorflow_cookbook/blob/master/09_Recurrent_Neural_Networks/02_Implementing_RNN_for_Spam_Prediction/02_implementing_rnn.py

Das Programm erzeugt die folgenden Werte. (Verlust, Genauigkeit)

Veiw Result Screenshot

In diesem Code ist das Ergebnis nur Verlust, Genauigkeit,

Ich denke, Genauigkeit keine Bedeutung hat. Ich brauche Präzision, Recall-Wert (für F1-Messung)

Allerdings funktioniert die My-Code-Analyse nicht richtig, ich kenne Präzision und Recall. Aber ich weiß nicht, wie in diesem Code (Code Einbettung) Precision und Recall zu berechnen.

+0

Ich kann nicht verstehen, was Ihre Frage ist. Bitte versuchen Sie es neu zu formulieren. –

+0

Entschuldigung. Weil ich auf Englisch nicht so gut bin. Danke für deinen Kommentar. Ich habe eine Korrektur vorgenommen, aber ich weiß nicht, ob die Frage verständlich ist. Abschließend möchte ich einen Code, der Precision oder Recall ausgeben kann. –

+1

Ihre Bearbeitung ist gut. -1 entfernt. –

Antwort

4

Ich habe es selbst geschafft, hurray !!

hier ist der Code:

actuals = tf.cast(y_output, tf.int64) 
predictions = tf.argmax(logits_out, 1) 

ones_like_actuals = tf.ones_like(actuals) 
zeros_like_actuals = tf.zeros_like(actuals) 
ones_like_predictions = tf.ones_like(predictions) 
zeros_like_predictions = tf.zeros_like(predictions) 

tp_op = tf.reduce_sum(
    tf.cast(
     tf.logical_and(
     tf.equal(actuals, ones_like_actuals), 
     tf.equal(predictions, ones_like_predictions) 
    ), 
     "float" 
    ) 
) 

tn_op = tf.reduce_sum(
    tf.cast(
     tf.logical_and(
     tf.equal(actuals, zeros_like_actuals), 
     tf.equal(predictions, zeros_like_predictions) 
    ), 
     "float" 
    ) 
) 

fp_op = tf.reduce_sum(
    tf.cast(
     tf.logical_and(
     tf.equal(actuals, zeros_like_actuals), 
     tf.equal(predictions, ones_like_predictions) 
    ), 
     "float" 
    ) 
) 

fn_op = tf.reduce_sum(
    tf.cast(
     tf.logical_and(
     tf.equal(actuals, ones_like_actuals), 
     tf.equal(predictions, zeros_like_predictions) 
    ), 
     "float" 
    ) 
) 

ich Konfusionsmatrix Open Source in Github sah danke @Mistobaan !! https://gist.github.com/Mistobaan/337222ac3acbfc00bdac

+0

Guter Job bei der Beantwortung Ihrer ersten Frage und auch den Code anstatt nur den Link zu veröffentlichen. Sie sollten auch Ihre eigene Antwort akzeptieren (nichts falsch daran - im Gegenteil, [es wird empfohlen] (https://stackoverflow.com/help/self-answer) – desertnaut

Verwandte Themen