我正在使用 Adaboost,这是一个关于弱学习者的问题。在Adaboost算法中,如下,在步骤(2)中,我可以使用不同的算法吗?例如,当k为1时,我使用KNN,如果k=2,使用SVM,对于k=3,我使用决策树?或者,我应该在for循环的所有 k 次迭代中使用单一算法吗?
(1) initialize the weight of each tuple in D to 1=d;
(2) for i = 1 to k do // for each round:
(3) sample D with replacement according to the tuple weights to obtain Di ;
(4) use training set Di to derive a model, Mi ;
(5) compute error.Mi/, the error rate of Mi (Eq. 8.34)
(6) if error.Mi/ > 0.5 then
(7) go back to step 3 and try again;
(8) endif
(9) for each tuple in Di that was correctly classified do
(10) multiply the weight of the tuple by error.Mi/=.1error.Mi//; // update weights
(11) normalize the weight of each tuple;
(12) endfor