2017-01-07 23 views
1

私はAUCを計算し、私のテストセットから分類されたすべての要素のROC曲線をプロットするために、Kerasで書かれたマルチラベル分類器を持っています。マルチラベル分類からのroc_curveは勾配を持っています

enter image description here

すべては、いくつかの要素は次のように傾斜を有するROC曲線を持っていることを除いて、罰金だ:

enter image description here

私はそのような場合にはスロープを解釈する方法がわかりません。それは、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学習のメーリングリストにお願い

+0

roc_curveの代わりにroc_auc_score(ここではhttp://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_auc_score.html#sklearn.metrics.roc_auc_score)を参照してください。マルチラベル設定には適していない可能性があります。前者はマルチラベルがサポートされていると具体的に言います。 – StatsSorceress

答えて

0

は、彼らは答えた:

スロープは、通常、あなたの予測でつながりがあることを意味します。

これは、この問題の場合です。

関連する問題