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算法并进行分类任务。