OpenCV 决策树 之 理论准备

OpenCV中的CvDTree类实现了单一的决策树,可以作为基类用在Boosting 和 Random Trees中。决策树是一个二叉树,回归和分类中都可以用。在分类中,每个树叶都被标记了一个类别,多个叶子也可以是相同的类别,在回归中,一个常量也可以赋值给一个叶子,所以逼近函数是分段的。在机器学习中,基尼纯度被用来作为分类的准则,平方和误差被用来作为回归的评价。在以下四种情况下,分割会终止。

1 结构树的深度已经达到了指定的最大值

2 在没有统计数据表征应该继续分割的情况下,节点中的训练数据小于指定的阈值

3 节点中的所有样本属于同一类,或者在回归中,变化很小

4 找到的最好的分割与随机选择并没有明显的提高

当树完成创建后,可能会用到交叉验证来做剪枝处理。有些导致模型过拟合的枝将被剪掉。正常来说,这个过程只应用在独立的决策树中。通常,此法创建的树已经够小了并且它们拥有防止过拟合的机制。

(以上译自OpenCV 2.4.9 ref)

OpenCV实现的是CART分类和回归树。算法的要点是给树的每个节点定义一个衡量标准。比如:当我们拟合一个函数的时候,我们使用真实值和预测值差的平方和,这是衡量标准,算法的目的是使差的平方和最小。对于分类问题,我们定义一个度量,使得当一个节点的大多数值都属于同一类时,这个度量最小。三个最常用度量是entropy,Gini index, misclassification。

一旦我们定义了度量,二叉数搜寻整个特征向量,搜寻哪个特征和那个阈值可以正确分类数据或正确拟合数据。根据惯例,我们说特征值大于这个阈值的数据为”真“,被分配到左分支,其他的点放到右分支。从二叉数的每个节点递归使用这个过程直到数据都纯净了,或者节点里的数据样本数达到最小值。

(以上自《学习OpenCV(第一版) 》 P.527)

Gini不纯度

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值