gpt4 book ai didi

machine-learning - Adaboost 与神经网络

转载 作者:行者123 更新时间:2023-11-30 08:30:19 26 4
gpt4 key购买 nike

我为一个项目实现了 Adaboost,但我不确定我是否正确理解了 adaboost。这是我实现的,请告诉我它是否正确。

  1. 我的弱分类器是 8 个不同的神经网络。经过全面训练后,这些预测的准确率都在 70% 左右。
  2. 我充分训练所有这些网络,并收集它们对训练集的预测;所以我在训练集上有 8 个预测向量。

现在我使用adaboost。我对adaboost的解释是,它会找到一个最终的分类器,作为我上面训练过的分类器的加权平均值,它的作用就是找到这些权重。因此,对于每个训练示例,我都有 8 个预测,并且我使用 adaboost 权重将它们组合起来。请注意,通过这种解释,弱分类器在 adaboost 迭代期间不会重新训练,仅更新权重。但更新后的权重实际上在每次迭代中创建了新的分类器。

这是伪代码:

all_alphas = [] 
all_classifier_indices = []
initialize all training example weights to 1/(num of examples)
compute error for all 8 networks on the training set
for i in 1 to T:
find the classifier with lowest weighted error.
compute the weights (alpha) according to the Adaboost confidence formula
Update the weight distribution, according to the weight update formula in Adaboost.
all_alphas.append(alpha)
all_classifier_indices.append(selected_classifier)

经过 T 次迭代后,有 T alpha 和 T 分类器索引;这些 T 分类器索引将指向 8 个神经网络预测向量之一。

然后在测试集上,对于每个示例,我通过对 alpha*classifier 求和来进行预测。

我想将 adaboost 与神经网络结合使用,但我认为我错误地解释了 adaboost 算法。

最佳答案

提升总结:

1- 使用训练数据训练您的第一个弱分类器

2-第一个经过训练的分类器在某些样本上犯了错误,但对其他样本进行了正确分类。增加错误分类样本的权重,减少正确分类样本的权重。使用这些权重重新训练您的分类器以获得第二个分类器。

就您的情况而言,您首先必须使用这些更新的权重对数据进行重新采样和替换,创建新的训练数据,然后根据这些新数据训练您的分类器。

3-重复第二步T次,并在每轮结束时,根据公式计算分类器的alpha权重。4-最终的分类器是T个分类器的决策的加权和。

希望从这个解释中可以清楚地看出您做得有点错误。您没有使用新数据集重新训练网络,而是在原始数据集上训练它们。事实上,您正在使用随机森林类型分类器(除了您使用的是 NN 而不是决策树)集成。

PS:不能保证提升会提高准确性。事实上,到目前为止,我所知道的所有 boosting 方法都未能成功提高 NN 作为弱学习器的准确性(原因是 boosting 的工作方式,需要更长时间的讨论)。

关于machine-learning - Adaboost 与神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35691636/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com