私はAUCを計算し、私のテストセットから分類されたすべての要素のROC曲線をプロットするために、Kerasで書かれたマルチラベル分類器を持っています。マルチラベル分類からのroc_curveは勾配を持っています
すべては、いくつかの要素は次のように傾斜を有するROC曲線を持っていることを除いて、罰金だ:
私はそのような場合にはスロープを解釈する方法がわかりません。それは、Aであるとして
は、基本的には次のように私のワークフローが行く、私はKerasの事前訓練を受けたmodel
、インスタンスを持っている、と私は機能X
と値化ラベルy
を持って、y
内のすべての要素は、長さ1000の配列ですy
の各要素には要素が複数のクラスに属していることを示す多くの1が含まれている可能性があるため、binary_crossentropy
の組み込み損失を使用し、モデル予測の出力はscore probailitiesです。次に、roc曲線を次のようにプロットします。
from sklearn.metrics import roc_curve, auc
#...
for xi, yi in (X_test, y_test):
y_pred = model.predict([xi])[0]
fpr, tpr, _ = roc_curve(yi, y_pred)
plt.plot(fpr, tpr, color='darkorange', lw=0.5)
予測メソッドは、ケラの機能的APIを使用しているので、確率を返します。
rocカーブがこのように見える理由を知っている人はいますか? scikit学習のメーリングリストにお願い
roc_curveの代わりにroc_auc_score(ここではhttp://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_auc_score.html#sklearn.metrics.roc_auc_score)を参照してください。マルチラベル設定には適していない可能性があります。前者はマルチラベルがサポートされていると具体的に言います。 – StatsSorceress