Python实现AdaBoost算法
计算弱分类器误差
pred_train = models[m].predict(x_train) miss = [int(x) for x in (pred_train != y_train)] error = np.dot(w, miss)
计算弱分类器的权重
theta[m] = 0.5 * np.log((1-error)/error)
更新数据权重
for i in n_train: w[i] = w[i]*np.exp(-theta[m]*y_train[i]*pred_train[i])
正规化权重
for i in n_train: w[i] /= np.sum(w[i])
最终的预测
predict = np.dot(theta, [model[m].predict(x_test) for m in range(M)])