
文章插图
3.2.5跟新样本权重
#上一次权重的基础上进行更新#y表示真是的目标值#ht(X)表示当前若学习器预测的结果w3= w2*np.exp(-y*y2_*alpha_2)w3=w3/w3.sum()#权重的归一化操作,和正好是1display(w2,w3)display(y,y2_)

文章插图
3.3第三轮计算3.3.1 gini系数
cond=y ==1 #类别1条件p1 = w3[cond].sum()#使用新的样本权重分布p2= 1-p1display(p1,p2)gini=p1*(1-p1)+p2*(1-p2)gini

文章插图
3.3.2拆分条件
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]#取反#left_p=cond.sum()/cond.size#这种方式计算概率适用于每个样本的权重一样left_p = w3[cond]/w3[cond].sum()#归一化,左侧每个样本在自己组内的概率right_p=w3[~cond]/w3[~cond].sum()#归一化 , 右侧每个样本在自己组内概率#左右两边的gini系数gini_left=0gini_right=0for j in np.unique(y):#y表示类别cond_left=left==j#左侧某个类别p_left=left_p[cond_left].sum()#计算左边某个类别的概率gini_left += p_left*(1-p_left)cond_right=right==j#右侧某个类别p_right=right_p[cond_right].sum()#计算右边某个类别的概率gini_right += p_right*(1-p_right)#左右两边的gini系数合并p1=cond.sum()/cond.size#左侧划分数据所占的比例p2=1-p1#右侧划分数据所占的比例gini=gini_left*p1 +gini_right*p2gini_result.append(gini)if gini <lower_gini:lower_gini=ginibest_split.clear()best_split['X[0]<=']=splitprint(gini_result)print(best_split)

文章插图
3.3.3计算误差
y3_ = model[2].predict(X)#根据求出来的v得到预测的结果error3=((y != y3_)*w3).sum()error3

文章插图
3.3.4计算第三个弱学习器权重
alpha_3=1/2*np.log((1-error3)/error3)alpha_3

文章插图
3.3.5跟新权重
#上一次权重的基础上进行更新#y表示真是的目标值#ht(X)表示当前若学习器预测的结果w4= w3*np.exp(-y*y3_*alpha_3)w4=w4/w4.sum()#权重的归一化操作 , 和正好是1display(w3,w4)display(y,y3_)

文章插图
3.4弱学习器的聚合
print("每一个弱分类器的预测结果:")display(y1_,y2_,y3_)#F 表示聚合各个弱学习器的评分F=alpha_1*y1_ + alpha_2*y2_ + alpha_3*y3_#将多个弱分类器,整合,变成了强分类器F(X)print("强分类器合并结果:\n",F)#根据得到的最终的F,如果i大于0就是1,否则就是-1,就像把最终的结果放进符号函数中print("强分类器最终结果如下:\n",np.array([1 if i > 0 else -1 for i in F]))print("算法预测结果为:\n",model.predict(X))

文章插图
【机器学习实战-AdaBoost】
推荐阅读
- Pytorch模型量化
- 三 【单片机入门】应用层软件开发的单片机学习之路-----UART串口通讯和c#交互
- 二 【SSM】学习笔记——SpringMVC入门
- 盘它!基于CANN的辅助驾驶AI实战案例,轻松搞定车辆检测和车距计算!
- 四十六 SpringCloud微服务实战——搭建企业级开发框架:【移动开发】整合uni-app搭建移动端快速开发框架-环境搭建
- Briefings in Bioinformatics-2021 知识图谱-生物信息学-医学顶刊论文:生物信息学中的图表示学习:趋势、方法和应用
- Ansible 批处理实战
- ansible应用之安装elk框架
- 4 .NET 6学习笔记——如何在.NET 6的Desktop App中使用Windows Runtime API
- 学习ASP.NET Core Blazor编程系列八——数据校验