コード例 #1
0
def reset_weight(Data):
    w0 = 1 / float(len(Data))
    for row in Data:
        row['weight'] = w0


# Q2.a
# Run AdaBoosting for T = 1-500, plot error-T relationship
outFile = open("ada_out.txt", 'w')
outFile.write("iter\terr_train\terr_test\n")
for T in [
        1, 2, 3, 4, 5, 6, 8, 10, 15, 20, 30, 50, 70, 90, 120, 150, 200, 250,
        300, 350, 400, 450, 500
]:
    trees, alphas = AdaBoost.AdaBoost_train(Data_train, Attributes, Labels, T)
    hit_train = AdaBoost.AdaBoost_test(Data_train, trees, alphas)
    hit_test = AdaBoost.AdaBoost_test(Data_test, trees, alphas)
    outFile.write(
        str(T) + "\t" + str(1 - hit_train) + "\t" + str(1 - hit_test) + "\n")
    reset_weight(Data_train)

outFile.close()

# for T=500, find training and test error in each iteration
e_t, e_r = AdaBoost.print_err_Ada(Data_train, Data_test, Attributes, Labels,
                                  500)
t = [i + 1 for i in range(0, 500)]

fig, ax = plt.subplots(figsize=(6, 4))
ax.plot(t, e_r, label='test error', c='grey', alpha=0.3)