Sto provando a tracciare la curva ROC da una versione modificata dell'esempio CIFAR-10 fornita da tensorflow. È ora 2 classi anziché 10.Come tracciare una curva ROC con Tensorflow e scikit-learn?
L'uscita della rete sono chiamati logit e assume la forma:
[[-2,57313061 2,57,966399 millions] [,04,221377 millions -,04033273] [-1,42880082 1,43,337202 millions] [ -2,7692945 2,78,173304 millions] [-2,48195744 2,49,331546 millions] [2,0941,515 mila -2,10268974] [-3,51670194 3,53,267646 millions] [-2,74760485 2,75,617766 millions] ...]
Prima di tutto, che cosa questi logit in realtà rappresentano? Il livello finale nella rete è un "softmax lineare" del modulo WX + b.
Il modello è in grado di calcolare la precisione chiamando
top_k_op = tf.nn.in_top_k(logits, labels, 1)
Poi una volta che il grafico è stato inizializzato:
predictions = sess.run([top_k_op])
predictions_int = np.array(predictions).astype(int)
true_count += np.sum(predictions)
...
precision = true_count/total_sample_count
Questo funziona bene.
Ma ora come posso tracciare una curva ROC da questo?
Ho provato la funzione "sklearn.metrics.roc_curve()" (http://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html#sklearn.metrics.roc_curve) ma non so cosa usare come parametro "y_score".
Qualsiasi aiuto sarebbe apprezzato!
vedere qui [collegamento] (http://stackoverflow.com/questions/35811446/classification-accuracy-after-recall-and-precision/37275638#37275638) per un codice che calcola e traccia la curva ROC. –