AdaBoostM1 is a boosting algorithm implemented in Weka. A key component of this algorithm is the reweighting of "hard to classify" instances after each iteration. I want to obtain the weight of each instance that AdaBoostM1 uses for each classifier it constructs

I have used "Instance.weight()" to obtain instance weights before and after building an AdaBoostM1 model. The weights do not change and are therefore not what I am interested in. The source code for AdaBoostM1 is available and it can be seen that weights are set during the construction of a model (here). Can the instance weights somehow be obtained before AdaBoostM1 builds each new model?

有帮助吗?

解决方案

No, Weka's AdaboostM1 does not have such feature. But you could inherit the AdaBoostM1 class, copy the AdaBoostM1#buildClassifierUsingResampling method from the source, and paste it in your subclass and manipulate the double[] weights variable (as seen in line 513).

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top