分類モデルの評価技法

機械学習では、母集団データの予測結果を得るために分類モデルを使うことがよくあります。 教師あり学習の2つのセクションの1つである分類は、異なるカテゴリからのデータを扱います。 訓練データセットは、母集団データの未知のラベルを予測するモデルを訓練する。 分類には、ロジスティック回帰、K-nearest neighbor、決定木、ナイーブ・ベイズなどのアルゴリズムがある。 これらのアルゴリズムは、それぞれ独自の実行スタイルと異なる予測技術を持っている。 しかし、最終的には、アルゴリズムの有効性を見出す必要がある。 特定のビジネス問題に最も適したアルゴリズムを見つけるために、いくつかのモデル評価技法がある。 この記事では、さまざまなモデル評価技法について説明します。

おそらく、その名前は、扱うものが混乱した状態から付けられたのでしょう。 仮説検定を覚えているなら、タイプIとタイプIIとして定義した2つのエラーを思い出すかもしれません。 As depicted in Fig.1, type-I error occurs when null hypothesis is rejected which should not be in actual. And type-II error occurs when although alternate hypothesis is true, you are failing to reject null hypothesis.

Fig.1: Type-I and Type-II errors

In figure 1 it is depicted clearly that the choice of confidence interval affects the probabilities of these errors to occur. But the fun is that if you try to reduce either if these errors, that will result the increase of the other one.

So, what is confusion matrix?

Fig.2: Confusion Matrix

Confusion matrix is the image given above. これは、任意のバイナリテストの結果を行列で表現したものです。 たとえば、病気を予測する場合を考えてみましょう。 医療検査を行い、その検査結果をもとに、その人が病気であるかどうかを予測することになります。 つまり、ある人を病気と断定する仮説が受け入れられるかどうかを検証するわけです。 例えば、100人のうち20人が病気を持っていると予測したとします。 実際には15人しか発症しておらず、その15人の中で12人を正しく診断したとします。 この結果を混同行列にすると、次のようになります。

Fig.3: 疾患予測のコンフュージョンマトリックス

そこで、図3を比較しますと、以下のようになります。

  1. True Positive: 12 (陽性者を正しく予測した!)
  2. True Negative: 77 (陰性者を正しく予測した!)
  3. False Positive: 8 (ああ!この人たちは病気を持っていると予測したが、実際は病気でない。 しかし、心配しないでください、これはさらなる医学的分析で修正することができます。 というわけで、これはリスクの低いエラーなのです。 この場合、タイプIIエラーです)。
  4. 偽陰性: 3 (おっと! あなたはこれらの 3 人の貧しい人たちを健康であると予測しました。 しかし、実際には彼らは病気を持っています。 これは危険だ! 気をつけましょう! この場合、I型エラーです)。

さて、これらの結果を得るために従った予測モデルの精度はどのくらいかというと、答えは、正確に予測された人数と総人数の比率である (12+77)/100 = 0.89 となるはずです。

  1. 一番上の行は、病気を持つものとして行った予測の合計数を示しています。 これらの予測のうち、あなたは 12 名を実際にその病気にかかると正しく予測しました。 したがって、12/(12+8) = 0.6 という比率は、病気を持っている人を検出する際のモデルの精度を示す指標となります。 これをモデルの精度(Precision of the model)と呼びます。
  2. さて、最初の列を取りましょう。 この列は、実際にその病気にかかっている人の総数を表しています。 そして、あなたはそのうちの12人について正しく予測したことになります。 したがって、12/(12+3) = 0.8という比率は、実際に病気を持っているすべての人のうち、病気を持っている人を検出するモデルの精度の指標となります。

さて、なぜモデルを評価するために精度やリコールを測定する必要があるのかという疑問があるかもしれません。

その答えは、特定の結果が非常に敏感であるときに、非常に推奨されるからです。 たとえば、銀行で不正なトランザクションを予測するモデルを構築する場合です。 不正なトランザクションがあることは、あまり一般的ではありません。 1000件の取引で、1件の取引が詐欺であるかもしれません。 ですから、このモデルは間違いなく、不正でない取引を非常に正確に予測します。 つまり、この場合、不正取引の予測の精度に関係なく、全体の精度は常に非常に高く、母集団全体における割合は非常に低いので、問題はありません。 しかし、不正な取引を不正でないと予測することは望ましいことではありません。 したがって、この場合、精度の測定はモデルを評価するために重要な役割を果たします。 これは、実際のすべての不正取引のうち、いくつを予測しているかを理解するのに役立ちます。

受信動作特性 (ROC) 曲線

ROC 曲線の下の領域を測定することも、モデルを評価するために非常に有用な方法です。 ROCは真陽性率(TPR)と偽陽性率(FPR)の比率です(図2参照)。 病気検出の例では、TPRは、病気を持つ人の正確な予測数と、実際に病気を持つ人の総数との比率を表す指標です。 FPRは、病気でないと正しく予測された人の数と、実際に病気でなかった人の総数の比です。

Fig.4: ROC曲線(出典:https://www.medcalc.org/manual/roc-curves.php)

青線は、あるモデルのFPRの違いによるTPRの変化を示しています。 曲線下の面積と総面積の比率(ここでは100×100)が大きいほど、モデルの精度が高いことを意味する。

分類モデルについては、ゲインおよびリフト チャート、ジニ係数など、多くの他の評価方法があります。 しかし、混同行列に関する深い知識は、どのような分類モデルも非常に効果的に評価するのに役立ちます。

ハッピーモデリング!

この記事では、読者の助けになるように、混乱行列に関する混乱を解明することを試みました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です