AdaBoost算法 MATLAB代码示例
以下是AdaBoost算法的基本MATLAB实现代码:
% 初始化参数
numTrees = 50; % 基学习器数量
alpha = zeros(numTrees, 1); % 权重初始化
models = cell(numTrees, 1); % 存储基学习器
for t = 1:numTrees
% 训练基学习器
models{t} = trainWeakLearner(X, y, weights);
% 计算误差
predictions = models{t}.predict(X);
err = sum(weights .* (predictions ~= y));
% 计算权重
alpha(t) = 0.5 * log((1 - err) / (err + eps));
% 更新样本权重
weights = weights .* exp(-alpha(t) * y .* predictions);
weights = weights / sum(weights); % 归一化
end
% 最终模型
function finalPred = predict(X)
finalPred = sign(sum(alpha .* cellfun(@(m) m.predict(X), models, 'UniformOutput', false), 2));
end
通过以上代码,您可以快速实现AdaBoost算法并进行分类任务。