gpt4 book ai didi

c# - AdaBoost 反复选择相同的弱学习器

转载 作者:太空宇宙 更新时间:2023-11-03 14:55:15 24 4
gpt4 key购买 nike

我已经实现了 AdaBoost 提升算法的一个版本,我在其中使用决策树桩作为弱学习器。然而,我经常发现,在训练 AdaBoost 算法后,会创建一系列弱学习器,使得该系列在整个集合中重复出现。例如,经过训练后,弱学习器集看起来像 A,B,C,D,E,D,E,D,E,D,E,F,E,D,E,D,E

我相信在每次分配新的弱学习器后,我都会正确地更新数据的权重。这里我对每个数据点进行分类,然后设置这个数据点的权重。

// After we have chosen the weak learner which reduces the weighted sum error by the most, we need to update the weights of each data point.
double sumWeights = 0.0f; // This is our normalisation value so we can normalise the weights after we have finished updating them
foreach (DataPoint dataP in trainData) {
int y = dataP.getY(); // Where Y is the desired output
Object[] x = dataP.getX();
// Classify the data input using the weak learner. Then check to see if this classification is correct/incorrect and adjust the weights accordingly.
int classified = newLearner.classify(x);
dataP.updateWeight(y, finalLearners[algorithmIt].getAlpha(), classified);
sumWeights += dataP.getWeight();

}

这是我在 WeakLearner 类中的分类方法

// Method in the WeakLearner class
public int classify(Object[] xs) {
if (xs[splitFeature].Equals(splitValue))
return 1;
else return -1;
}

然后我有一个更新数据点权重的方法

public void updateWeight(int y, double alpha, int classified) {
weight = (weight * (Math.Pow(e, (-y * alpha * classified))));
}

而且我不确定为什么会这样,是否有任何共同因素导致通常会选择相同的弱学习器?

最佳答案

您可以增加 alpha 的值并进行检查。也许,没有给错误分类的样本足够的权重,因此,它们一次又一次地出现。

关于c# - AdaBoost 反复选择相同的弱学习器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49710208/

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