二項分類

完了

回帰などの分類は、"教師あり" 機械学習手法です。そのため、モデルのトレーニング、検証、評価の同じ反復プロセスに従います。 回帰モデルのように数値を計算するのではなく、分類モデルのトレーニングに使用されるアルゴリズムは、クラス割り当ての "確率" 値を計算し、モデルのパフォーマンスを評価するために使用される評価メトリックは、予測されたクラスを実際のクラスと比較します。

"二項分類" アルゴリズムは、1 つのクラスに対して考えられる 2 つのラベルのうちの 1 つを予測するモデルをトレーニングするために使用されます。 基本的には、true または false を予測します。 実際のほとんどのシナリオでは、モデルのトレーニングと検証に使用されるデータ観測値は、複数の特徴量 (x) の値と y 値 (1 または 0) で構成されます。

例 - 二項分類

二項分類のしくみを理解するために、1 つの特徴 (x) を使用してラベル y が 1 か 0 かを予測するシンプルな例を見てみましょう。 この例では、患者の血糖値を使用して、患者が糖尿病かどうかを予測します。 モデルのトレーニングに使用するデータは次のとおりです。

Diagram of a syringe. Diagram of a diabetic and non-diabetic person.
血糖値 (x) 糖尿病かどうか (y)
67 0
103 1
114 1
72 0
116 1
65 0

二項分類モデルのトレーニング

モデルをトレーニングするには、アルゴリズムを使用して、クラス ラベルが true (患者が糖尿病である) である "確率" を計算する関数にトレーニング データを渡します。 確率は 0.0 から 1.0 の値として測定され、考えられる "すべて" のクラスの "合計" 確率が 1.0 になります。 たとえば、患者が糖尿病である確率が 0.7 の場合、対応する (患者が糖尿病でない) 確率は 0.3 です。

二項分類に使用できるアルゴリズムは多数あります。たとえば "ロジスティック回帰" は、次のように、0.0 から 1.0 の値を持つ "シグモイド" 関数 (S 字型) を派生させます。

Diagram of a logistic function.

Note

機械学習における "ロジスティック回帰" は、その名前に反し、回帰ではなく分類に使用されます。 重要な点は、生成される関数の "ロジスティック" な性質です。これは、下限値と上限値 (二項分類に使用する場合は 0.0 と 1.0) の間に S 字型の曲線を描きます。

このアルゴリズムによって生成される関数は、指定された x の値に対して y が true (y=1) になる確率を示します。 数学的には、次のような関数で表現できます。

f(x) = P(y=1 | x)

トレーニング データの 6 つの観測値のうち 3 つでは、y が確実に true であることがわかります。そのため、これらの観測値で y=1 である確率は 1.0 です。他の 3 つの観測値では、y が確実に false であることがわかっているので、y=1 である確率は 0.0 です。 S 字曲線は確率分布を示すため、線上に x の値をプロットすると、対応する確率 (y1 である確率) が識別されます。

この図には、この関数に基づくモデルが true (1) または false (0) を予測する "しきい値" を示す横線があります。 しきい値は、y (P(y) = 0.5) の中間ポイントにあります。 このポイントまたはそれより上に値がある場合、モデルは true (1) を予測します。このポイントより下に値がある場合は、false (0) を予測します。 たとえば、患者の血糖値が 90 の場合、関数によって示される確率値は 0.9 になります。 0.9 はしきい値 0.5 より高いので、モデルは true (1) を予測します。つまり、患者は糖尿病であると予測されます。

二項分類モデルの評価

回帰と同様に、二項分類モデルをトレーニングする場合は、トレーニング済みモデルの検証に使用するデータのランダムなサブセットを残しておきます。 糖尿病の分類器を検証するために、次のデータを残しておいたとします。

血糖値 (x) 糖尿病かどうか (y)
66 0
107 1
112 1
71 0
87 1
89 1

前に派生したロジスティック関数を x 値に適用すると、次のプロットが生成されます。

Diagram of predicted labels on a sigmoid curve.

関数によって計算された確率がしきい値を上回っているか下回っているかに基づいて、モデルは観測値ごとに 1 または 0 の予測ラベルを生成します。 次に示すように、"予測" クラス ラベル(ŷ) と "実際" のクラス ラベル (y) を比較できます。

血糖値 (x) 実際の糖尿病診断 (y) 予測の糖尿病診断 (ŷ)
66 0 0
107 1 1
112 1 1
71 0 0
87 1 0
89 1 1

二項分類の評価メトリック

二項分類モデルの評価メトリックを計算する最初の手順では、通常、考えられるクラス ラベルごとに正しい予測の数と正しくない予測の数を示す行列を作成します。

Diagram of a confusion matrix.

この視覚化は "混同行列" と呼ばれ、予測の合計を次のように示します。

  • ŷ=0 かつ y=0:"真陰性" (TN)
  • ŷ=1 および y=0: "偽陽性" (FP)
  • ŷ=0 および y=1: "偽陰性" (FN)
  • ŷ=1 かつ y=1:"真陽性" (TP)

混同行列の配置では、正しい (true) 予測が左上から右下に対角線で示されます。 通常、各セルの予測数を示す色強度が使用されるため、予測精度の高いモデルを一目見ると、濃い色で対角線傾向が示されています。

正確性

混同行列から計算できる最もシンプルなメトリックは、モデルによる正しい予測の割合を示す "正確性" です。 正確性は次のように計算されます。

(TN+TP) ÷ (TN+FN+FP+TP)

糖尿病の例の場合、計算は次のようになります。

(2+3) ÷ (2+1+0+3)

= 5 ÷ 6

= 0.83

検証データでは、糖尿病分類モデルによって 83% の確率で正しい予測が生成されました。

正確性は、最初はモデルを評価するのに適したメトリックのように見えるかもしれませんが、この点を考慮してください。 母集団の 11% が糖尿病であるとします。 常に 0 を予測するモデルを作成できました。このモデルでは、患者の特徴を評価して患者を区別しようとしなくても、89% の正確性を達成します。 実際に必要なのは、陽性のケースに 1、陰性のケースに 0 を予測する際のモデルのパフォーマンスをより深く理解することです。

リコール

リコールは、モデルが正しく識別した陽性のケースの割合を測定するメトリックです。 つまり、糖尿病 "である" 患者の数に対し、モデルが糖尿病であると "予測" した患者は何人かを示します。

リコールの数式は次のとおりです。

TP ÷ (TP+FN)

糖尿病の例:

3 ÷ (3+1)

= 3 ÷ 4

= 0.75

このモデルでは、糖尿病の患者の 75% を、糖尿病であると正しく識別しました。

適合率

"適合率" はリコールと似たメトリックですが、true のラベルが実際に陽性になっている陽性ケースを予測した割合を測定します。 つまり、モデルによって糖尿病であると "予測" された患者の何割が、実際に糖尿病 "である" かを示します。

適合率の数式は次のとおりです。

TP ÷ (TP+FP)

糖尿病の例:

3 ÷ (3+0)

= 3 ÷ 3

= 1.0

モデルによって糖尿病であると予測された患者の 100% が、実際に糖尿病を患っています。

F1 スコア

"F1 スコア" は、リコールと適合率を組み合わせた全体的なメトリックです。 F1 スコアの数式は次のとおりです。

(2 x 適合率 x リコール) ÷ (適合率 + リコール)

糖尿病の例:

(2 x 1.0 x 0.75) ÷ (1.0 + 0.75)

= 1.5 ÷ 1.75

= 0.86

曲線の下の領域 (AUC)

リコールは"真陽性率" (TPR) とも呼ばれ、"偽陽性率" (FPR) と呼ばれる同等のメトリックがあります。FPR はFP÷(FP+TN) で計算されます。 しきい値 0.5 を使用する場合のモデルの TPR は 0.75 であり、FPR の数式を使用して 0÷2 = 0 の値を計算できることは既にわかっています。

もちろん、モデルが true (1) と予測する上記のしきい値を変更すると、陽性と陰性の予測の数に影響します。そのため、TPR と FPR のメトリックを変更します。 これらのメトリックは通常、0.0 から 1.0 までのしきい値ごとに TPR と FPR を比較する "受信者操作特性" (ROC) 曲線をプロットしてモデルを評価するために使用されます。

Diagram of a ROC curve.

完璧なモデルの ROC 曲線は、左側の TPR 軸を直進し、上部の FPR 軸を横切ります。 曲線のプロットエリアは 1x1 を測定するため、この完璧な曲線の下の領域は 1.0 になります (モデルが 100% の確率で正しいことを意味します)。 これに対し、左下から右上への対角線は、バイナリ ラベルをランダムに推測することによって達成される結果を表し、曲線の下の領域 0.5 を生成します。 言い換えると、2 つの考えられるクラス ラベルを指定すると、50% の確率で正しく推測すると合理的に見込むことができます。

糖尿病モデルの場合、上記の曲線が生成され、曲線の下の領域 (AUC) メトリックは 0.875 です。 AUC は 0.5 より高いため、ランダムに推測するよりも、患者が糖尿病を持っているかどうかを予測する方がモデルのパフォーマンスが優れていると結論付けることができます。