首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带神经网络的Adaboost

带神经网络的Adaboost
EN

Stack Overflow用户
提问于 2016-02-29 03:47:07
回答 1查看 9.5K关注 0票数 6

我为一个项目实现了Adaboost,但我不确定我是否正确地理解adaboost。这是我所做的,如果是正确的解释,请告诉我。

  1. 我的弱分类器是8个不同的神经网络。每一项预测的准确性在70%左右,经过充分训练。
  2. 我对所有这些网络进行充分的训练,并收集它们对训练集的预测,因此我有8个关于训练集的预测向量。

现在我用adaboost。我对adaboost的解释是,它将找到一个最终的分类器,作为我上面训练过的分类器的加权平均值,它的作用是找到这些权重。所以,对于每一个训练例子,我都有8个预测,我用最棒的权重组合它们。请注意,通过这种解释,弱分类器在adaboost迭代过程中不会被重新训练,只会更新权重。但是更新的权重实际上在每次迭代中创建了新的分类器。

下面是伪代码:

代码语言:javascript
复制
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 alphas和T分类器指标,这些T分类器指标将指向8个神经网络预测向量中的一个。

然后在测试集上,对于每一个例子,我都是通过对alpha*classifier的求和来预测的。

我想在神经网络中使用adaboost,但我想我误解了adaboost算法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-07 10:39:25

补充摘要:

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

2-第一种训练分类器对某些样本进行错误分类,对其他样本进行正确的分类。增加错误分类样本的权重,减少正确分类样本的权重。用这些权重重新训练你的分类器,以得到你的第二个分类器。

在这种情况下,首先必须用这些更新的权重替换数据,创建一个新的培训数据,然后对这些新数据进行分类器的训练。

3-重复第二步T次,在每一轮结束时,根据公式计算分级机的α权值。最后一个分类器是T分类器决策的加权和。

希望从这个解释中可以清楚地看出,你做错了。与其用新的数据集重新培训您的网络,不如在原始数据集中对它们进行所有的培训。实际上,您使用的是随机森林类型分类器(除了使用NN而不是决策树)集合。

PS:没有任何保证,增加提高准确性。事实上,到目前为止,我所知道的所有助推方法都未能成功地提高作为弱学习者的神经网络的准确性(原因是助推的方式,需要更长的讨论)。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35691636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档