現在、MATLAB のマルチラベル AdaBoost 実装、またはマルチラベルの場合に 2 ラベル実装を効率的に使用する手法を探しています。その点で何か助けていただければ幸いです。
3 に答える
サポート ベクター マシンで使用したのと同じアプローチを使用できます。SVM はもともとバイナリ分類器であり、マルチクラス データを処理するためにいくつかのアプローチが提案されました。
one-against-all : クラスごとに 1 つのバイナリ分類子を構築し、このクラスのインスタンスをポジティブ ケースとして、他のすべてのインスタンスをネガティブ ケースとしてトレーニングします (つまり、1-vs-not1、2-vs-not2、3-vs-not3 )。最後に、各分類器の事後確率を使用してクラスを予測します。
one-against-one : 両方のクラスのインスタンスを単純にトレーニングすることにより、クラスの各ペア (つまり、1-vs-2、1-vs-3、2-vs-3、..) に対して複数のバイナリ分類器を構築します。次に、多数決を使用して個々の結果を組み合わせることができます。
エラー訂正出力コード: エラー訂正 (ハミング コードなど) の理論に基づいて、精度を高めるために冗長性を使用して複数のバイナリ分類器の出力をコーディングすることに依存しています。
これらは一般的な方法であり、任意のバイナリ分類子に適用できることに注意してください。
それ以外の場合は、マルチクラス Adaboost の特定の実装を検索できますが、そこにはたくさんあると確信しています。
マルチクラスのアダブーストであるAdaboost.M2を使用できます。Baluツールボックスで実装を見つけることができます。コマンドはBcl_adaboostです。このツールボックスには他にも便利なものがあります。参照することを忘れないでください。それが役に立てば幸い。