Ich versuche, die ROC-Kurve aus einer modifizierten Version des CIFAR-10-Beispiels von Tensorflow plotten. Es ist jetzt zwei Klassen statt 10.Wie zeichne ich eine ROC-Kurve mit Tensorflow und scikit-learn?
Der Ausgang des Netzes Logits und die Form genannt:
[[-2,57313061 2,57966399] [0,04221377 -,04033273] [-1,42880082 1,43337202] [ -2,7692945 2,78173304] [-2,48195744 2,49331546] [2,0941515 -2,10268974] [-3,51670194 3,53267646] [-2,74760485 2,75617766] ...]
Vor allem was stellen diese Logits eigentlich? Die letzte Schicht im Netzwerk ist ein "softmax linear" der Form WX + b.
Das Modell ist in der Lage genau zu berechnen durch
top_k_op = tf.nn.in_top_k(logits, labels, 1)
Dann ruft, sobald der Graph initialisiert wurde:
predictions = sess.run([top_k_op])
predictions_int = np.array(predictions).astype(int)
true_count += np.sum(predictions)
...
precision = true_count/total_sample_count
Dies funktioniert gut.
Aber wie kann ich jetzt eine ROC-Kurve plotten?
Ich habe die Funktion "sklearn.metrics.roc_curve()" (http://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html#sklearn.metrics.roc_curve) versucht, aber ich weiß nicht, was ich als meinen "y_score" -Parameter verwenden soll.
Jede Hilfe wäre willkommen!
siehe hier [link] (http://stackoverflow.com/questions/35811446/classification-accuracy-after-recall-and-precision/37275638#37275638) für einen Code, der die ROC-Kurve berechnet und plottet. –