分類モデル性能評価–キャップ曲線

のは、分類が何を意味するかを定義することから始めましょう、分類は、利用可能なグループのいずれかに何か 2つのグループ(バイナリ分類)または2つ以上のグループ(マルチクラス分類)がある場合があります。

分類アルゴリズムには次のものが含まれます:(ロジスティック回帰、K-最近傍、サポートベクターマシン、ナイーブベイズ…など)

データサイエンティストにとって、分類モデルがどれほど優れているかを確認することは本当に重要です。 モデルを評価するには、いくつかの有名な方法があります。 混乱行列-Scikit-Learnライブラリの実装を使用して簡単に計算できます。 あなたはそれにあなたの従属変数y^の予測とあなたの従属変数yの実際の値のベクトルを含むベクトルを与える必要がありますiv id=”

scikit-learn混同行列モジュール

今、あなたは、任意のバイナリ分類問題のための2*2行列になりますあなたの混同行列を計算した後、結果の行列は、このようになります

confusion matrix

A confusion matrix consists of 4 values which are very valuable to know for every data scientist:

  1. 偽陽性(FP)—正のクラスインスタンスとして誤って分類されたインスタンス(0,1)=5
  2. 偽陰性(FN)—負のクラスインスタンスとして誤って分類されたイ

データセットのインスタンスの合計(トレーニング+テストインスタンス) = 5+10+50+35 = 100

今、我々は2つの重要な割合を計算することができます:

1-正解率=正しい/合計= (50+35)/ 100 = 85%

2-エラー率=不正確/合計= (5+10)/ 100 = 15%

今、私はそのような分類器を構築した後、それはそのような良い精度を持って祝うべきです…または私はすべきですか?!

見てみましょう、次のシナリオで私に従ってください”あなたは銀行で働き、詐欺と非詐欺の取引を分類するための分類モデルを構築したデータサイエンティストであり、混同行列を計算することにしたので、モデルを評価したいと思っています。:”

混乱行列—不正検出

混乱行列-不正検出
iv id=”混乱行列を分析することによって、精度=9,800/10,000=98%のかなり良い分類子があると言うことができます

しかし、データ科学者は、彼が試してみたいと; アイデアは、分類子がトランザクションのいずれかを不正(正のクラス’1’)として分類するのを止めることです。

分類器の精度=9,850/10,000=98.5%これは、分類器が正常に動作していないにもかかわらず、精度が0.5%増加していることを意味します!それは精度トラップと呼ばれているので、精度を測定するだけでは「分類器はどのくらい良いですか」という質問に答えるには十分ではないと間違いな!’

解決策は、別の測定方法を試すことです。

2。 累積精度プロファイル(キャップ)曲線—それは私たちの機械モデルを支援するためのより堅牢な方法です。 その背後にある直感を理解するには、次のシナリオで私に従わなければなりません:

シナリオ#1—彼らはすべての顧客と顧客の応答の通常10%に彼らのオファーで電子メールを送信し、実際に製品を購入するので、その新製品を促進したい会社のデータサイエンティストの仕事として、彼らはそれがこの時間のためのケースになり、そのシナリオは、ランダムなシナリオと呼ばれていることを想像してみてください。/div>

同じ会社ですが、今回はより体系的な方法でそれを行うことにしました。

  1. 履歴データを検査し、実際にオファーを購入した顧客のグループを取り、それらの情報を抽出しようとします
  2. これらの要因を測定し、購入した製品の数に影響を与えるか、言い換えればロジスティック回帰モデルにデータを適合させるかを発見しようとします。
  3. どの顧客が製品を購入する可能性が高いかを予測します。次に、製品を購入する可能性が高いと予測した人々を特別にターゲットにします。
  4. 次に、製品を購入する可能性が高いと予測した人々を特別
  5. 次に、その曲線”キャップ曲線”で表される対象グループの応答を測定することによって。

私たちは間違いなく改善に気づくことができます;あなたは20,000ターゲット顧客に連絡したとき、あなたは約5,000の肯定的な応答を得ましたシナリオ#1では、同じ数の顧客に連絡することによって、あなたはわずか2,000の肯定的な応答を得ました。div>

だから、ここでのアイデアは、比較することですあなたのモデルをランダムなシナリオにして、あなたの現在のロジスティック回帰モデルと比較するためにサポートベクターマシン(SVM)/カーネルSVMモデDiv>

しかし、結果のグラフを分析するにはどうすればよいですか?p>

モデルが優れているほど、キャップ曲線とランダムなシナリオ直線の間の領域が大きくなります。

仮説的に、何らかの水晶玉がない限り、構築することが不可能なモデルを表す、いわゆる完璧なモデルを描くことができます。 それは10,000の可能な顧客に提供を送るときすべての接触させた人々がプロダクトを買った完全な肯定的な応答を得たことを示す。

このような仮説的なモデルをプロットすることは、モデルのキャップ曲線を評価するための参照として役立ちます。div>

前のグラフを分析するには2つのアプローチがあります:p>

最初—

  1. 完璧なモデル曲線の下の面積を計算します(aP)
  2. 完璧なモデル曲線の下の面積を計算します(aR)
  3. 精度を計算します(AR)=aR/aP;as(AR)~1(より良い50,000)接触した合計軸でモデルキャップカーブまで
  4. その交点から、購入した軸に投影します
  5. このx%値は、モデルがどれほど良いかを表します:li>
  6. if X<60%/(6000)次に、ゴミモデルがあります
  7. If60%<X<70%/(7000)次に、貧しいモデルがあります
  8. if60%<70%/(7000)次に、貧弱なモデルがあります
  9. <70%/(7000)次に、貧しいモデルがあります

  10. if70%<x<80%/(8000)その後、あなたは良いモデルを持っています
  11. if80%<x<90%/(8000)あなたは非常に良いモデルを持っています
  12. if90%<x<100%/(10,000)その後、あなたのモデルは本当であるには良すぎます! 私が意味するのは、これは通常、モデルが訓練されたデータのみを分類するのに適しているが、新しい目に見えないインスタンスでは非常に貧弱であ/div>

コメントを残す

メールアドレスが公開されることはありません。