算例--Adaboost二分类算法流程实践

adaboost算法流程以及总结

adaboost流程图:
在这里插入图片描述

  • 算法流程:

1.初始化样本权重,每个样本都为 1 / m 1/m 1/m(m为样本数)
2.在是用弱分类器后,通过学习误差率(加权样本误差率) e e e,来得到该弱分类器的权重 α \alpha α
3.通过前一个弱分类器的权重 α \alpha α,更新样本权重
4.重复以上三步,知道所有分类器都完成预测,若干个弱分类器最后通过简单的加法加权得到一个强分类器。


import numpy as np
from sklearn.ensemble import AdaBoostClassifier
from sklearn import  tree
%matplotlib inline
from matplotlib import  pyplot as plt

生成数据

X = np.arange(10).reshape(-1,1)
y = np.array([1,1,1,-1,-1,-1,1,1,1,-1])
display(X,y)
array([[0],
       [1],
       [2],
       [3],
       [4],
       [5],
       [6],
       [7],
       [8],
       [9]])



array([ 1,  1,  1, -1, -1, -1,  1,  1,  1, -1])

模型预测

ada = AdaBoostClassifier(n_estimators = 3,algorithm ='SAMME')
ada.fit(X,y)
AdaBoostClassifier(algorithm='SAMME', n_estimators=3)
# 有三个一层的决策树
ada.estimators_
[DecisionTreeClassifier(max_depth=1, random_state=532048558),
 DecisionTreeClassifier(max_depth=1, random_state=1578686940),
 DecisionTreeClassifier(max_depth=1, random_state=727580641)]

计算第一课树的权重,以及更新样本权重

plt.figure(figsize = (16,9))
tree.plot_tree(ada[0],filled = True)

在这里插入图片描述

# 查看第一课树的预测结果
y_ = ada[0].predict(X)
y_
array([ 1,  1,  1, -1, -1, -1, -1, -1, -1, -1])

加权样本误差率:

e k = P ( G k ( x i ) ≠ y i ) = ∑ i = 1 m w k i I ( G k ( x i ) ≠ y i ) e_k =P(G_k(x_i) \neq y_i) = \sum_{i=1}^{m}w_{ki}I(G_k(x_i) \neq y_i) ek=P(Gk(xi)=y

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值