多クラス分類
"マルチクラス分類" は、考えられる複数のクラスのどれに観測値が属するかを予測するために使用されます。 これは、教師あり機械学習手法として、トレーニング データのサブセットがトレーニング済みモデルを検証するために取っておかれる回帰や二項分類と同じ反復的な "トレーニング、検証、評価" プロセスに従います。
例 - マルチクラス分類
マルチクラス分類アルゴリズムは、複数のクラス ラベルの確率値を計算するために使用され、モデルが特定の観測値の "最も可能性の高い" クラスを予測することを可能とします。
ペンギンのいくつかの観測値を含み、各ペンギンの翼の長さ (x) が記録されている例を見てみましょう。 観測値ごとに、データにはペンギンの種 (y) が含まれています。これは以下のようにエンコードされます。
- 0: アデリー
- 1:"ジェンツーペンギン"
- 2: チンストラップ
Note
このモジュールの前の例と同様に、実際のシナリオには複数の特徴量 (x) 値が含まれます。 単純化のためにここでは単一の特徴量を使用します。
翼の長さ (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) の各組み合わせの予測数を示すという点を除き、二項分類器の混同行列と同様です。
この混同行列から、各個別クラスのメトリックを次のように決定できます。
クラス | TP | TN | 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 |
全体の正確性、リコール、および適合率のメトリックを計算するには、以下のように TP、TN、FP、および FN メトリックの合計を使用します。
- 全体の正確性 = (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