なぜroc_aucはsklearnで奇妙な結果を生みますか?

EMF:

私は私が私を取得するために、次のコードを使用してバイナリ分類問題を持ってweighted avarege precisionweighted avarege recallweighted avarege f-measureroc_auc

df = pd.read_csv(input_path+input_file)

X = df[features]
y = df[["gold_standard"]]

clf = RandomForestClassifier(random_state = 42, class_weight="balanced")
k_fold = StratifiedKFold(n_splits=10, shuffle=True, random_state=0)
scores = cross_validate(clf, X, y, cv=k_fold, scoring = ('accuracy', 'precision_weighted', 'recall_weighted', 'f1_weighted', 'roc_auc'))

print("accuracy")
print(np.mean(scores['test_accuracy'].tolist()))
print("precision_weighted")
print(np.mean(scores['test_precision_weighted'].tolist()))
print("recall_weighted")
print(np.mean(scores['test_recall_weighted'].tolist()))
print("f1_weighted")
print(np.mean(scores['test_f1_weighted'].tolist()))
print("roc_auc")
print(np.mean(scores['test_roc_auc'].tolist()))

私は2つの異なる機能の設定と同じデータセットのために、以下の結果を得ました。

Feature setting 1 ('accuracy', 'precision_weighted', 'recall_weighted', 'f1_weighted', 'roc_auc'):  
0.6920, 0.6888, 0.6920, 0.6752, 0.7120

Feature setting 2 ('accuracy', 'precision_weighted', 'recall_weighted', 'f1_weighted', 'roc_auc'):
0.6806  0.6754  0.6806  0.6643  0.7233

だから、私たちがいることを見ることができるfeature setting 1私たちは「精度」の良い結果を得る、「precision_weighted」、「recall_weighted」、に比べて「f1_weighted」feature setting 2

それはroc_auc "に来るときしかし、feature setting 2より良いですfeature setting 1私は他のすべてのメトリックが良いとしたbecuaseこの奇妙ましたfeature setting 1

一方で、私は私が使用していますので、この問題が発生したと思われるweightedのスコアをprecision, recall and f-measureしていないとroc_aucそれが行うことが可能ですweighted roc_aucsklearnでバイナリ分類のために?

この奇妙なroc_auc結果のための本当の問題は何ですか?

私は、必要に応じてより詳細な情報を提供して幸せです。

desertnaut:

AUCを持つすべてのこれらの他の指標を比較すると、オレンジにリンゴを比較するようなものであるので、それは、奇妙ではありません。

ここでは、全体のプロセスの高レベルの説明は次のとおりです。

  • (ここではRFのような)確率的分類は、確率出力を生成pして[0, 1]
  • (ハードクラスの予測を得るために0/1)、我々が適用されますしきい値これらの確率にします。(ここでのように)明示的に設定されていない場合は、このしきい値は、暗黙的にすなわちあれば、0.5であると解釈されp>0.5、その後class=1、他の、class=0
  • 正確さ、精度、リコール、およびF1-スコアのようなメトリックは、ハードクラスの予測に対して計算されている0/1、すなわち、後にしきい値が適用されています。
  • 対照的に、AUC測定バイナリ分類器の性能はにわたって平均すべての可能なしきい値の範囲を特定の閾値のためではない、と。

だから、それは確かに起こることができ、そしてそれは確かに新しい実務家の間で混乱を招くことができます。

で私の答えの第二部、この同様の問題は、より多くの詳細については役に立つかもしれません。引用:

少なくとも私の経験によると、ほとんどのMLの専門家は、それが何からのAUCスコア対策の何か別のことを考えて、実際に一般的な(そして不幸な)使用されてもよい、ちょうど、-高-より良いメトリック、他の精度などのようなものです:ありませんが、自然に自分自身を表現するようなパズルにつながります。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=369325&siteId=1