私はテンソルフローによって提供されたCIFAR-10サンプルの修正版からROC曲線をプロットしようとしています。 [Tensorflowとscikit-learnでROC曲線をプロットする方法は?
[[-2.57313061 2.57966399] [0.04221377 -0.04033273] [-1.42880082 1.43337202]:これは、代わりに10
のネットワークの出力がlogitsと呼ばれている2つのクラスのために、今だと形を取ります-2.7692945 2.78173304] [-2.48195744 2.49331546] [2.0941515 -2.10268974] [-3.51670194 3.53267646] [-2.74760485 2.75617766] ...]
まず、これらのlogitsは実際には何を表しているのですか?ネットワークの最終層は、WX + b形の「ソフトマックス・リニア」です。
predictions = sess.run([top_k_op])
predictions_int = np.array(predictions).astype(int)
true_count += np.sum(predictions)
...
precision = true_count/total_sample_count
これは正常に動作します:
モデルはグラフが初期化された後、次に
top_k_op = tf.nn.in_top_k(logits, labels, 1)
を呼び出すことで、精度を計算することができます。
しかし、ここからどのようにしてROC曲線をプロットできますか?
私は "sklearn.metrics.roc_curve()"関数(http://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html#sklearn.metrics.roc_curve)を試していましたが、私は "y_score"パラメータとして何を使うべきか分かりません。
助けていただけたら幸いです!
ROC曲線を計算してプロットするコードについては、こちらをご覧ください(リンク先はhttp://stackoverflow.com/questions/35811446/classification-accuracy-after-recall-and-precision/37275638#37275638)。 –