为什么用购物车决策树在adaboost中错误率上升?

时间:2019-07-16 13:11:06

标签: python machine-learning decision-tree

当我尝试将adaboost与购物车树一起使用时,每次迭代的错误率越来越大,接近0.5。但是我朋友的算法不喜欢我。他的adaboost在错误率方面表现稳定。所以我不知道我的算法有什么问题吗?

我使用“ alpha = 0.5 ln(1 / error_rate-1)”来更新数据集的权重。我认为Gini(D)= 1-总和(Pk)** 2,其中Pk使用权重。最后但并非最不重要的一点是,我考虑了树生成的递归终止中的权重。

    for i in range(21):
        t = tree_generate(train_set, atb_list, high=high)
        e = error(t, train_set)
        print(e, end=' ')
        if e > 0.5 or e == 0:
            break
        alpha = 0.5 * np.log(1 / e - 1)
        forest.append(t)
        alphas.append(alpha)
        print(alpha)
        for j in range(m):
            if is_right(t, train_set.iloc[j, :]):
                train_set.iloc[j, -1] *= np.exp(-alpha)
            else:
                train_set.iloc[j, -1] *= np.exp(alpha)
        train_set['weight'] /= train_set['weight'].sum()

def gini(data_set, pos=-2):
    result = 1
    cla = set(data_set.iloc[:, pos].values)
    for c in cla:
        d = data_set[data_set.iloc[:, pos] == c]
        result -= d['weight'].sum() ** 2
    return result

我认为该错误应该更稳定。如果您能表达您的想法,我将不胜感激。

0 个答案:

没有答案