def adaboost(x, y, n):
g_stp = []
u = [1/n]*n
T = 15
for t in range(T):
print(u)
s, i, theta, errs = dsa(x, y, n, u)
epsilon = np.average(errs, weights=u) / sum(u)
scale = np.sqrt((1 - epsilon) / epsilon)
for u_i in range(len(u)):
if errs[u_i]:
u[u_i] = u[u_i] * scale
else:
u[u_i] = u[u_i] / scale
alpha = np.log(scale)
g_stp.append((s, i, theta, alpha))
return g_stp
评论列表
文章目录