私は9つの可能なラベルを持つマルチクラス問題に取り組んでいます。そのため、約50.000の例とそれぞれ約200の特徴で構成されるデータセットがあります。各例は1つのクラスにのみ属することができます。データは、異なるラベル間でかなりバランスが取れています。
その堅牢性とスケーラビリティを考慮して、学習方法としてランダムフォレスト(1,000本の木の集合)を使用することにしました。このデータセットが与えられたモデルのパフォーマンス精度を評価するために、私はstratified5Fold交差検証を使用しました(私はscikit-learn 0.18を使用しています)。
ランダムフォレストは本質的にマルチクラスデータセットを処理できるため、指定されたデータセットで直接使用し、79.5 0.3の精度を得ました。私はまた、機能がより重要性、簡単属性から抽出することができる何か持っていた知ることに興味があったfeature_importances_でRandomForestClassifier scikitのを。ただし、データセットはバランスが取れており、予想通り、200のうち異なるクラスに寄与するフィーチャの数はほぼ同じであることを考えると、どのフィーチャが各クラスに最も寄与するかを特定できませんでした。
結果として、私は同じランダムフォレストのセットアップを使用して、1対すべての戦略を採用しました(ところで、oneVsAll戦略を使用するときにデータの不均衡を考慮に入れるとコストに敏感です)。これにより、各クラスと残りの機能はより重要です。これについて私が得た結果は合理的です。さらに、この戦略を使用してモデルのパフォーマンスを確認したところ、88.7 0.2の精度が得られました。これは、マルチクラスのランダムフォレストがマルチクラスの性質を考慮してより適切に分類することを期待していたので、驚きました。
私はこれで正しいですか?このような精度の違いはもっともらしいでしょうか?さらに、ランダムフォレスト自体がoneVsAll戦略などの「ハッキング」なしでマルチクラスの問題に取り組むことができるという条件で、上記の戦略はOKで公正に採用されていますか?