决策树的工作原理是在每个节点上拆分训练子集,遍历根到叶节点,直到我们得到分类/回归结果。
但是实际的决策边界(权重)是如何计算的呢?我们使用成本函数在每个节点上执行拆分。这个代价函数也能帮助我们找到权重吗?
例如,为了构建AdaBoost分类器,训练第一个基本分类器(例如决策树),并使用该分类器对训练集进行预测。然后增加错误分类的训练实例的相对权重。第二个分类器使用更新的权重进行训练,并再次对训练集进行预测,更新权重,依此类推。
这个相对权重是如何计算的?
发布于 2019-04-15 02:03:09
在Adaboosting中,按如下方式计算相对权重,
首先,给定训练实例的m
数量,每个实例被赋予1/m的相等权重。
现在我们将训练后的第j个预测器/分类器的加权错误率定义如下:
r(j) =sum(错误实例的权重)/sum(所有实例的权重)
现在我们定义另一个术语,预测器/分类器的权重,如下所示:
cw(j) =学习率* log ( (1 - r(j))/(rj) )
现在,对于每个实例的相对权重,我们按如下方式计算它们,其中i是实例的索引/标识符:
如果w(i)在最后一个预测器中被正确分类,那么:
w(i) = w(i)
否则,如果w(i)分类错误,则:
w(i) = w(i) * exp(cw(j))
这将增加错误分类的实例的权重,如果它们小于实例的50%,如果最后的预测器对实例的正确的50%进行分类,这将设置r(j) = .5,这导致cw(j) = 0,并且对于不正确的实例,w(i)将是w(i) * 1,这意味着不正确的实例权重没有变化。
https://stackoverflow.com/questions/55675917
复制相似问题