通过源码学算法--AdaBoost (CART): RealAdaBoost.m + tree_node_w.m

本文深入探讨AdaBoost算法,通过源码分析`RealAdaBoost.m`和`tree_node_w.m`。`tree_node_w.m`定义了分类树节点类,每个节点作为弱分类器。在`RealAdaBoost.m`中,初始权重分布被设定,并在循环训练过程中不断调整,每次生成一棵CART树,包含4个节点,每个节点对应一个弱分类器。权重分布根据分类结果动态调整并进行归一化。
摘要由CSDN通过智能技术生成

tree_node_w.m

代表分类树的类结构。很简单,只有5个成员

如果是左树则只有right_constraint有值,如果是右树则只有left_constraint有值

实际上在这里是一个类多用了。

比如一个训练好的最大深度为3(max_split == 3)的CART 树有四个节点(node),每个节点就是该类tree_node_w的一个object,同时每个节点又是一个弱分类器 (weak classifier)

如果循环训练100次(Max_Iter == 100),就有100棵CART树,即400个弱分类器。每个分类器都有对应的权重

function tree_node = tree_node_w(max_split)

tree_node.left_constrain  = [];
tree_node.right_constrain = [];
tree_node.dim             = [];
tree_node.max_split       = max_split;
tree_node.parent         = [];

tree_node = class(tree_node, 'tree_node_w') ;


RealAdaBoost.m

权重分布初始化

  Learners = {};
  Weights = [];
  distr = ones(1, length(Data)) / length(Data);  
  final_hyp = zeros(1, length(Data));</
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值