fitensemble
Matlab の方法を使用して構築したブースト ツリー モデルをテストしています。
X = rand(100, 10);
Y = X(:, end)>.5;
boosted_tree = fitensemble(X, Y, 'AdaBoostM1', 100,'Tree');
predicted_Y = predict(boosted_tree, X);
いくつかの単純な例で実行したかったので、簡単なケースを使用しました.1つの機能は、正の例では>.5、負の例では<.5です。警告が表示されます
Warning: AdaBoostM1 exits because classification error = 0
これにより、関連する機能を見つけ出し、すべてのトレーニング例が正しく分類された、素晴らしいと思いました。
でも精度を見ると
sum(predicted_Y==Y)/length(Y)
分類器は単純にポジティブ クラスをすべての例に割り当てたため、結果は 0.5 です。
明らかに 0 ではないのに、Matlab が分類誤差 = 0 と考えるのはなぜですか? この例は簡単に学べると思います。このエラーを防ぎ、この方法を使用して正しい結果を得る方法はありますか?
編集:上記のコードは警告を再現するはずです。