多値(クラス)分類
多値分類とは
- 2値分類(Aか否か)はクラス数が2の場合の分類
- 多値分類とはクラス数が3以上の場合の分類
多値分類の方法
one-versus-rest法
- nクラスの場合は、n個の分離平面を求め、各クラスがそのクラスに属するかどうか
- もし、1事例が1クラスにしか属することを許されない場合は、分離平面との関数距離が一番大きいクラスを選ぶ
pairwise(one-against-one?)法
- nクラスの場合は、クラス対ごとに2つのクラスのどちらに属するか?という分離平面を作り、多数決で一番多いクラスを選ぶ
- クラスC1,C2,C3ならば、(C1,C2)、(C2,C3)、(C3,C1)のn(n-1)/2個の分離平面を求める
根付二分有効無向閉路グラフ(rooted binary DAG)法
- pairwise法でもとめたデータについて、分離平面に関するDAGを構成し、それにより効率的にクラスを選ぶ
- DAGSVMなど
多値パーセプトロン
- 2クラス分類のパーセプトロンに上記の考えを追加して、多クラス分類できるようにする
- 以下は、one-versus-rest法の一つだと思うけど、それでOKっていう文献が見つけられていない、、、
- 「わかりやすいパターン分類」って本に書いてあるらしい?
- 要調査
# オンライン学習での多値パーセプトロンの手順 重みベクトルwをn個用意 function predict(学習データ) { return 学習データの関数距離が一番大きいクラスを返す(argmax) } function train(学習データの一つ) { f = 学習データの予想クラス(predict) t = 学習データの正解クラス if(fとtが異なる){ クラスfの重みから学習データを引く クラスtの重みに学習データを加える } }