Spark2.3 决策树 decision tree 源码解析

Spark2.3 决策树 decision tree 源码解析

一、简介

决策树由节点和边构成,节点分为:内部节点和叶节点,其中内部节点表示一个特征,而叶节点表示一个分类,如下图

决策树,也可以看成是If Then规则,每个实例都会覆盖其中一条路径(或规则)。

二、树的构造

决策树的本质就是根据数据,归纳出一套分类规则,与数据矛盾最小的规则。从所有可能的决策树中,找到最优决策树是NP完全问题,因此通常采用启发式方法,近似求解。 通常就是递归的对特征进行分割,也就是对特征区间进行划分。

决策树生成算法

输入:训练数据集D,特征集合A
输出:决策树T
(1)如果D中所有实例都属于同一个类C_k,则T为单节点树,并将C_k作为该节点的类,返回T;
(2)如果A为空,则置T为单节点树,并将D中实例数最多的类C_k作为该节点的类,返回T;
(3)否则,从A中选择<strong>最优划分</strong>属性A_g,该属性有若干取值;
(4)根据最优属性A_g及其若干取值,<strong>将该节点分割成若干子节点</strong>:即将D分割构成若干子集D_i,返回由该节点及其子节点构成的树T;
(5)对子节点,以D_i为训练集合,A-A_g为特征集合(也可以A),递归调用(1)-(4)

上述算法只是决策树的大致生成流程,其中两个最重要的两个问题需要解决:1.最优划分属性的划分标准;2.如何分裂该属性构成若干子节点

1、如何分裂属性

分裂属性:根据属性的不同取值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值