SparkMllib的决策树算法的原理详解

1.数据结构中的树和机器学习中的树对比

现实生活中树:

  • 树根-------树干-------树枝----树叶

数据结构树:

  • 根据人的习惯将现实生活中的树进行翻转
  • 先树根
  • 在树枝
  • 在树叶

机器学习中的树:

  • 1-叶子节点和分支节点(树根是特殊的分支节点)

在这里插入图片描述

2. 什么是决策树?

简介: 决策树是机器学习中分类方法中的一个重要算法;是一个类似于流程图的树结构:其中,每个内部结点表示一个特征或属性,而每个树叶结点代表一个分类。树的最顶层是根结点。使用决策树分类时就是将实例分配到叶节点的类中。该叶节点所属的类就是该节点的分类。

比如:你母亲要给你介绍男朋友,是这么来对话的:
女儿:多大年纪了?
母亲:26。
女儿:长的帅不帅?
母亲:挺帅的。
女儿:收入高不?
母亲:不算很高,中等情况。
女儿:是公务员不?
母亲:是,在税务局上班呢。
女儿:那好,我去见见。
于是你在脑袋里面就有了下面这张图:

在这里插入图片描述

  • 你在决策过程就是典型的分类树决策。相当于通过年龄、长相、收入和是否公务员对将男人分为两个类别:见和不见

如何构建一颗决策树:

  • 根据特征将样本分列在不同的叶子结点上的过程,称之为决策树的算法构建

3.电商业务场景深入决策树

  • 商业的数据挖掘中,不同的消费行为顾客特征的提炼和表述极为重要。

  • 达成共识:构建的模型一定是有利于业务的服务

    • 业务问题1:如何对客户进行分类?
    • 业务问题2:如何根据决策树对销售人员进行精准营销
  • 分析数据:

    • 1024个样本
    • 4个特征
    • 1个标签列—两种取值
  • 使用数据构建决策树

    • 1-基于规则构建
    • 2-基于模型构建

4. 基于规则的建树

  • 什么规则?—专家或业务专家制定规则
    • 规则:按照特征出现的顺序进行建立决策树
  • 回答业务员问题:
    • 根据什么进行分类
    • 如何进行精准营销
  • 基于规则的建立决策树的问题?
    • 基于规则会引入专家的知识,会引入认为的主观的因素
    • 需要使用机器学习的方法使用基于模型的建立决策树的方法

如下图: 1024个样本决策
在这里插入图片描述
在这里插入图片描述

5.构建决策树的三要素[重点]

1-特征选择

  • 1-基于规则的选择
  • 2-熵----->信息熵------>信息增益

2-决策树的生成

  • 1-基于规则的生成
  • 2-基于ID3算法的模型建树:
  • 3-C4.5算法
  • 4-CART树算法

3-决策树剪枝

  • 1-基于规则的剪枝
    • 先剪枝
    • 后剪枝

6.基于模型的建树[重点]

核心公式: 信息熵也叫香农熵, 信息增益.

  • 引入熵(entropy)的概念: 基于物理学上的物体能量分布的均匀性,熵越大的,物体能量分布越均匀

  • 香农熵或信息熵: 熵在信息论上的表达形式,

  1. 信息熵越大,信息的分布越均匀,信息的不确定性越大,信息的确定性小
  2. 信息熵越小,信息的分布越不均匀,信息的不确定性越小,信息的确定性越大
    在这里插入图片描述

通常多个独立事件所产生的不确定性等于各自不确定性之和,也就是每个事件的发生与不发生是相互独立的,这在数学上称为可加性,而满足这样可加性的函数就是我们在高中阶段所学习过的对数函数(log函数)。由此得到第一个不确定性函数公式:
在这里插入图片描述
如果对一个随机事件有n种取值:X1,X2,X3…,对应的概率p1,p2……pn,则该事件的不确定性应该是单个取值的不确定性的期望E,也叫作信息熵,即:
在这里插入图片描述
上述若对数的底数取值为2,就是我们平常所说的信息单位bit(比特)
总结:变量的不确定性越大,熵也就越大。熵越小,信息的纯度越高。

用于决策树的选择特征中:

  • 优先选择信息熵较小的特征,信息熵较小信息的不均匀,信息的确定性较大

信息增益:

  • Gain(A) = Info(D)-Info_A(D): 整个数据集信息熵当前节点(划分节点)信息熵的 差

    • 总体的信息熵是不变的,前提是数据确定好了
    • 以A节点作为分支节点,一般情况下优先选择A节点信息熵较小的值对应的特征
    • 以A节点作为分支节点的信息增益越大优先选择
      在这里插入图片描述

特征选择:优先选择信息增益最大的值作为优先选择的节点

猜你喜欢

转载自blog.csdn.net/m0_49834705/article/details/113570586
今日推荐