多クラス分類

完了

多クラス分類 は、観測値が属する複数の可能なクラスのどれに属するかを予測するために使用されます。 教師あり機械学習手法として、回帰や二項分類と同様に反復的なトレーニング、検証、評価プロセスに従います。その過程で、トレーニング済みモデルを検証するためにトレーニングデータのサブセットを取り置きます。

例 - 多クラス分類

多クラス分類アルゴリズムは、複数のクラス ラベルの確率値を計算するために使用され、モデルで特定の観測値に対して 最も可能性の高い クラスを予測できます。

ペンギンの観察例を見てみましょう。ここでは、各ペンギンのフリッパーの長さ (x) が記録されています。 観察ごとに、データにはペンギンの種 (y) が含まれ、次のようにエンコードされます。

  • 0: Adelie
  • 1: Gentoo
  • 2: チンストラップ

このモジュールの前の例と同様に、実際のシナリオには複数の特徴 (x) 値が含まれます。 1 つの機能を使用して、シンプルな状態を維持します。

測定ルーラーの図。 3 羽のペンギンの図。
フリッパーの長さ (x) 種 (y)
167 0
172 0
225 2
197 1
189 1
232 2
158 0

多クラス分類モデルのトレーニング

多クラス分類モデルをトレーニングするには、トレーニング データを、可能な各クラスの確率値を計算する関数に適合させるアルゴリズムを使用する必要があります。 これを行うために使用できるアルゴリズムには、次の 2 種類があります。

  • One-vs-Rest (OvR) アルゴリズム
  • 多項式アルゴリズム

One-vs-Rest (OvR) アルゴリズム

One-vs-Rest アルゴリズムは、各クラスの二項分類関数をトレーニングし、それぞれが観測値がターゲット クラスの例である確率を計算します。 各関数は 、他の クラスと比較して、観測値が特定のクラスである確率を計算します。 ペンギン種分類モデルでは、アルゴリズムは基本的に 3 つの二項分類関数を作成します。

  • f0(x) = P(y=0 | x)
  • f1(x) = P(y=1 | x)
  • f2(x) = P(y=2 | x)

各アルゴリズムは、0.0 ~ 1.0 の確率値を計算するシグモイド関数を生成します。 この種のアルゴリズムを使用してトレーニングされたモデルは、最も高い確率の出力を生成する関数のクラスを予測します。

多項式アルゴリズム

別の方法として、多項式アルゴリズムを使用して、複数値の出力を返す単一の関数を作成します。 出力は、すべての可能なクラスの確率分布を含むベクトル (値の配列) であり、各クラスの確率スコアが加算され、合計で最大 1.0 になります。

f(x) =[P(y=0|x), P(y=1|x), P(y=2|x)]

この種の関数の例として、 softmax 関数があり、次の例のような出力が生成される可能性があります。

[0.2, 0.3, 0.5]

ベクトル内の要素は、クラス 0、1、および 2 の確率をそれぞれ表します。したがって、この場合、最も高い確率を持つクラスは 2 です

使用されるアルゴリズムの種類に関係なく、モデルは結果の関数を使用して、特定の特徴セット (x) の最も可能性の高いクラスを決定し、対応するクラス ラベル (y) を予測します。

多クラス分類モデルの評価

各クラスの二項分類メトリックを計算することで、多クラス分類子を評価できます。 または、すべてのクラスを考慮に入れる集計メトリックを計算することもできます。

多クラス分類子を検証し、次の結果を取得したとします。

フリッパーの長さ (x) 実際の種 (y) 予測される生物種 (ŷ)
165 0 0
171 0 0
205 2 1
195 1 1
183 1 1
221 2 2
214 2 2

多クラス分類器の混同行列は、バイナリー分類器の混同行列と似ていますが、予測(ŷ)と実際のクラスラベル(y)の各組み合わせに対する予測の数を示します。

多クラス混同行列の図。

この混同行列から、個々のクラスのメトリックを次のように決定できます。

クラス トイレットペーパー テネシー FP FN 精度 取り消し 精度 F1 スコア
0 2 5 0 0 1.0 1.0 1.0 1.0
1 2 4 1 0 0.86 1.0 0.67 0.8
2 2 4 0 1 0.86 0.67 1.0 0.8

全体的な精度、再現率、精度のメトリックを計算するには、 TPTNFPFN のメトリックの合計を使用します。

  • 全体的な精度 = (13+6)÷(13+6+1+1) = 0.90
  • 全体的な再現率 = 6÷(6+1) = 0.86
  • 全体的な精度 = 6÷(6+1) = 0.86

全体的な F1 スコアは、全体的な再現率と精度のメトリックを使用して計算されます。

  • 全体的な F1 スコア = (2x0.86x0.86)÷(0.86+0.86) = 0.86