文章插图
# SAMME表示构建树的时候,采用相同的裂分方式#n_estimators表示分裂为三颗树model = AdaBoostClassifier(n_estimators=3,algorithm='SAMME')model.fit(X,y)y_=model.predict(X)第一颗树的可视化
dot_data=https://www.huyubaike.com/biancheng/tree.export_graphviz(model[0],filled=True,rounded=True)graphviz.Source(dot_data)运行结果

文章插图
第二棵树的可视化
dot_data=https://www.huyubaike.com/biancheng/tree.export_graphviz(model[1],filled=True,rounded=True)graphviz.Source(dot_data)
文章插图
第三课树的可视化
dot_data=https://www.huyubaike.com/biancheng/tree.export_graphviz(model[2],filled=True,rounded=True)graphviz.Source(dot_data)
文章插图
3.1第一轮3.1.2gini系数的计算此处计算的X[i]的值也就是v的值
w1=np.full(shape=10,fill_value=https://www.huyubaike.com/biancheng/0.1)#初始的样本权重cond=y ==1 #类别1条件p1 = w1[cond].sum()p2= 1-p1display(p1,p2)gini=p1*(1-p1)+p2*(1-p2)上图可知第一棵树的X[0]=2.5的由来方式如下代码如实现gini_result=[]best_split={}#最佳分裂条件,X[0]<=2.5lower_gini = 1#比较for i in range(len(X)-1):#数组下标从0到9,10个数据一共要切九刀split=X[i:i+2].mean()#裂开条件,就是假如一开始要将0和1裂开并取出cond=(X<=split).ravel()#变成一维的,左边数据left=y[cond]right=y[~cond]#取反#左右两边的gini系数gini_left=0gini_right=0for j in np.unique(y):#y表示类别p_left=(left==j).sum()/left.size#计算左边某个类别的概率gini_left=p_left*(1-p_left)p_right=(right==j).sum()/right.size#计算右边某个类别的概率gini_right=p_right*(1-p_right)#左右两边的gini系数合并left_p=cond.sum()/cond.sizeright_p=1-left_pcgini=gini_left*left_p + gini_right*right_pgini_result.append(gini)if gini <lower_gini:lower_gini=ginibest_split.clear()best_split['X[0]<=']=splitprint(gini_result)print(best_split)3.1.3求误差y1_=model[0].predict(X)#由v得到的预测结果小于v为1,大于v为-1error1=(y!=y1_).mean()#求出预测值与实际值不相等元素的个数,并求平均
文章插图
3.1.4计算第一个若学习器的权重

文章插图
alpha_1=1/2*np.log((1-error1)/error1)
文章插图
3.1.5 跟新样本权重
#上一次权重的基础上进行跟新#y表示真是的目标值#ht(X)表示当前若学习器预测的结果w2= w1*np.exp(-y*y1_*alpha_1)w2=w2/w2.sum()#权重的归一化操作,和正好是1display(w1,w2)display(y,y1_)由下方运行结果可知当预测结果与原数据不相同时,该样本对应的权值也会随之增大;反之若预测正确则权值会减小
文章插图
3.2第二轮的计算也即第二课数的计算
cond=y==-1np.round(w2[cond].sum(),3)#找到类别为-1的所有权值的和,四舍五入保留3位小数
文章插图
cond2=y==1np.round(w2[cond2].sum(),3)
文章插图
3.2.1 gini系数的计算
cond=y ==1 #类别1条件p1 = w2[cond].sum()#使用新的样本权重分布p2= 1-p1display(p1,p2)gini=p1*(1-p1)+p2*(1-p2)
经验总结扩展阅读
- 2023年农历正月十二安机器吉日 2023年2月2日安机器行吗
- 2023年2月2日安装机器黄道吉日 2023年2月2日安装机器行吗
- 2023圣诞节祝福语情侣浪漫话语
- 平安夜暖心的祝福语2023
- 送领导平安夜祝福语2023
- 感恩节的祝福语通用15篇
- 儿童感恩节祝福语2篇
- 感恩节简短独特祝福语优秀
- 感恩节送给长辈祝福语
- 感恩节经典祝福句子优秀
