Articles

AUC-機械学習におけるROC曲線を明確に説明

AUC-ROC曲線-スターパフォーマー!あなたは機械学習モデルを構築しました-それでは、次は何ですか? あなたはそれを評価し、それがどれほど良い(または悪い)かを検証する必要があるので、それを実装するかどうかを決定することができます。 それがAUC-ROC曲線の出番です。名前は一口かもしれませんが、「Receiver Characteristic Operator」(ROC)の「曲線の下の面積」(AUC)を計算していると言っているだけです。 混乱? 私はあなたを感じる! 私はあなたの靴にされています。 しかし、心配しないで、私たちはこれらの用語が何を意味するのかを詳細に見て、すべてがケーキになるでしょう!今のところ、AUC-ROC曲線が機械学習分類器の性能を視覚化するのに役立つことを知っています。 これはバイナリ分類問題に対してのみ機能しますが、マルチクラス分類問題も評価するためにどのように拡張できるかを最後に見ていきます。

AUC-ROC曲線の背後にある重要なトピックであるため、感度や特異性などのトピックもカバーします。

この記事で使用するいくつかの重要な用語を紹介するので、混同行列の記事を読むことをお勧めします。

目次

  • 感度と特異度とは何ですか?AUC-ROC曲線とは何ですか?
  • 予測の確率
  • AUC-ROC曲線とは何ですか?
  • AUC-ROC曲線はどのように機能しますか?
  • PythonのAUC-ROC
  • マルチクラス分類のAUC-ROC

感度と特異度とは何ですか?

これは混乱行列のように見えるものです:

混同行列

混同行列から、前の記事では説明しなかったいくつかの重要なメトリックを導出することができます。 ここでそれらについて話しましょう。

感度/真陽性率/リコール

感度式

感度は、正のクラスのどの割合が正しく分類されたかを示します。

感度は、正のクラスのどの割合が正しく分類されたかを示します。簡単な例は、実際の病気の人々のどの割合がモデルによって正しく検出されたかを判断することです。

偽陰性率

偽陰性率

偽陰性率(FNR)は、分類器によって誤って分類された正のクラスの割合を示します。

正のクラスを正しく分類したいので、より高いTPRとより低いFNRが望ましい。

特異性/真の負の率

特異性の式

特異性は、負のクラスのどの割合が正しく分類されたかを示します。感度と同じ例を取ると、特異性は、モデルによって正しく識別された健康な人々の割合を決定することを意味する。

偽陽性率

偽陽性率

FPRは、分類子によって誤って分類された負のクラスの割合を示します。

負のクラスを正しく分類したいので、より高いTNRとより低いFPRが望ましいです。

これらの指標のうち、感度と特異性はおそらく最も重要であり、これらが評価指標を構築するためにどのように使用されるかについては、後で見 しかし、その前に、予測の確率がターゲットクラスを直接予測するよりも優れている理由を理解しましょう。機械学習分類モデルを使用して、データポイントの実際のクラスを直接予測したり、異なるクラスに属する確率を予測したりできます。

予測の確率

後者は、結果をより詳細に制御します。 分類器の結果を解釈するために、独自のしきい値を決定することができます。 これは、完全に新しいモデルを構築するよりも賢明な場合があります!

データポイントの正のクラスを分類するための異なるしきい値を設定すると、誤ってモデルの感度と特異性が変更されます。 そして、これらのしきい値のうちの1つは、偽陰性または偽陽性の数を減らすことを目指しているかどうかに応じて、他のしきい値よりも良い結果を

以下の表を見てください。

以下の表を見てください。:

AUC-ROC曲線の例

メトリックは、しきい値の変化とともに変化します。 異なる混乱行列を生成し、前のセクションで説明したさまざまなメトリックを比較することができます。 しかし、それは賢明なことではありません。 代わりに、これらの指標のいくつかの間にプロットを生成して、どのしきい値がより良い結果を与えているかを簡単に視覚化できるようにします。AUC-ROC曲線はちょうどその問題を解決します!

AUC-ROC曲線とは何ですか?

受信者演算子特性(ROC)曲線は、バイナリ分類問題の評価メトリックです。 これは、さまざまなしきい値でFPRに対してTPRをプロットし、本質的に”信号”と”ノイズ”を分離する確率曲線です。 曲線の下の面積(AUC)は、分類器がクラスを区別する能力の尺度であり、ROC曲線の要約として使用されます。

AUCが高いほど、正のクラスと負のクラスを区別する際のモデルのパフォーマンスが向上します。P>

AUC ROC curve

AUC=1の場合、分類子はすべての正と負のクラスポイントを正しく完全に区別することができます。 ただし、AUCが0の場合、分類器はすべての陰性を陽性として予測し、すべての陽性を陰性として予測します。P>

AUC ROC曲線

0のとき。5<AUC<1、分類子が正のクラス値と負のクラス値を区別できる可能性が高いです。 これは、分類器が偽陰性および偽陽性よりも多くの真陽性および真陰性を検出できるためです。AUC=0.5の場合、分類器は正と負のクラスポイントを区別できません。

AUC ROCランダム出力

AUC=0.5の場合、分類器は正と負のクラスポイント 分類子がすべてのデータポイントのランダムクラスまたは定数クラスを予測していることを意味します。したがって、分類器のAUC値が高いほど、正のクラスと負のクラスを区別する能力が向上します。

したがって、分類器のAUC値が高いほど、正のクラスと負のAUC-ROC曲線はどのように機能しますか?

AUC-ROC曲線はどのように機能しますか

ROC曲線では、x軸の値が高いほど、真の陰性よりも偽陽性の数が多いことを示します。 一方、Y軸の値が大きいほど、偽陰性よりも真陽性の数が多いことを示します。 したがって、しきい値の選択は、偽陽性と偽陰性のバランスをとる能力に依存します。

もう少し深く掘り下げて、ROC曲線が異なるしきい値に対してどのように見えるか、特異性と感度がどのように変化するかを理解しましょう。

AUC-ROC曲線

私たちは試してみて、しきい値に対応する各点の混同行列を生成し、私たちの分類器の性能について話すことによって、このグラ これは、すべての正のクラスポイントが正しく分類され、すべての負のクラスポイントが正しく分類されないことを意味します。実際、青い線の任意の点は、真陽性率が偽陽性率に等しい状況に対応しています。

この線の上のすべての点は、正のクラスに属する正しく分類された点の割合が負のクラスに属する誤って分類された点の割合よP>

サンプル混同行列

点Bは点Aと同じ感度を持っていますが、より高い特異性を持っています。 つまり、誤って負のクラスポイントの数は、前のしきい値と比較して低くなります。 これは、このしきい値が前のしきい値よりも優れていることを示しています。

混同行列AUC ROC

点Cと点Dの間では、点Cの感度は同じ特異度に対して点Dよりも高くなります。

混同行列AUC ROC

これは、誤って分類された負のクラスポイントの数が同じである場合、分類器はより多くの正のクラスポイントを予測したことを意味します。 したがって、点Cのしきい値は点Dよりも優れています。

さて、分類器で許容したい誤って分類された点の数に応じて、PUBGで私を倒すことができるかどうかを予測するために、点BまたはCのどちらかを選択します。

“誤った希望は恐怖よりも危険です。”-J.R.R. Tolkein

混同行列

ポイントEは、特異性が最も高くなる場所です。 つまり、モデルによって分類される偽陽性はありません。 モデルは、すべての負のクラスポイントを正しく分類できます! 私たちの問題が私たちのユーザーに完璧な曲の推奨を与えることだった場合、私たちはこの点を選択します。このロジックでは、完全な分類器に対応する点がグラフ上のどこにあるのかを推測できますか?

この論理では、完全な分類器に対応する点がグラ

はい! これは、デカルト平面内の座標(0、1)に対応するROCグラフの左上隅にあります。 ここでは、感度と特異度の両方が最高になり、分類器はすべての正と負のクラスポイントを正しく分類します。ここで、すべてのしきい値の感度と特異度を手動でテストするか、sklearnに仕事をさせることができます。 私たちは間違いなく後者と一緒に行くよ!

sklearn make_classificationメソッドを使用して任意のデータを作成しましょう:Sklearnには、数秒で分類器のROCを計算する非常に強力なメソッドroc_curve()があります! FPR、TPR、およびしきい値を返します。

AUCスコアはsklearnのroc_auc_score()メソッドを使用して計算できます。

0.9761029411764707 0.9233769727403157

以下のライブコーディングウィンドウでこのコードを試してみてください。

matplotlibを使用して二つのアルゴリズムのROC曲線をプロットすることもできます:

バイナリクラスROC曲線

ロジスティック回帰ROC曲線のAUCがKNN ROC曲線のAUCよりも高いことは、プロットから明ら したがって、ロジスティック回帰は、データセット内の正のクラスを分類するより良い仕事をしたと言えます。前に言ったように、AUC-ROC曲線はバイナリ分類問題のためのものです。

Auc-ROC曲線は次のようになります。

Auc-ROC曲線は次のようになりま しかし、One vs All手法を使用することで、マルチクラス分類問題に拡張することができます。したがって、3つのクラス0、1、および2がある場合、クラス0のROCは、0ではない、つまり1および2に対して0を分類するように生成されます。 クラス1のROCは、1ではないものに対して1を分類するように生成されます。

マルチクラス分類モデルのROC曲線は、以下のように決定することができます。

マルチクラスROC

エンドノート

AUC-ROC曲線メトリックスが分類器の性能を測定する際にどれほど強力であるかを理解する上で、この記事が役立つことを願っています。 これは、業界でも、データサイエンスや機械学習のハッカソンでも多く使用されます。 より良いそれに精通して取得!また、私たちのモバイルアプリでこの記事を読むことができますGoogle Playでそれを取得