机器学习-决策树

来源:互联网 发布:mac限免 编辑:程序博客网 时间:2024/06/14 18:02

决策树

目录

  • 决策树
  • 目录
        • 前景小合并大
  • 概述
    • 特点
      • 缺点
    • 什么是决策树
    • 表达方式
      • 根据路径方式
      • 递归方式定义
  • 算法
    • 总体思路
    • 代表算法
      • Classification and Regression Tree CRT
        • 特性
        • 纯度损失函数
          • regressionError
          • classificationErrorGini
        • 停止时机
        • fully-grown tree 缺陷
        • Regular 方法
          • 表达式
          • 可行的寻找 possible G的方法
      • ID3 决策树
    • 类的切割函数
    • 其他补充

前景:小合并大

合并小区为一个大区时,情景不同。使用的方法不同

小->大表格图

  • blending意为当所有区已知情况下
  • learing意为边学习,边分类

概述

特点

  • 起源早:起源于机器学习前。
  • 模仿人对事物决策的过程,并完全描述
  • 计算效率高

缺点

  • 轻量级,演算法相对较小
  • 巧妙算法多,但给初学者选择带来不便(参数多)
  • 没有代表性的决策树算法

什么是决策树

让电脑模仿人对事物决策的过程。决策的结构为树形结构,即从根为起点经过一系列判断最终走到叶子节点(终点),这段路径称为决策路径

表达方式

根据路径方式

G(x)=t=1Tqt(x)gt(x)

其中gt为叶子节点,也就是所有的决定结果。他们可以组成一个大区,形式可以为常量或者 liner 的。
qt为条件:即从 head 到叶子节点的决策工程(ps:true false)

递归方式定义

G(x)=c=1c[[b(x)=c]]Gc(x)

  • b(x)为不同决策分支
  • Gc(x) 在 c 分支下做递归

算法

总体思路

  1. 设计如何做分支b(x)
  2. 根据1设计出分块方法
  3. 设计停止条件或回传的叶子节点
  4. 然后各自递归学一颗小树
  5. 最后由程序递归的得到结果

与分而治之思想一致

代表算法

Classification and Regression Tree (C&RT)

特性

  • C = 2决策为一个二叉树
  • 回传参数gt(x)为一个常数
    • 0/1 Error:只返回一个最符合的
    • 最后决策结束选一个出现频次最多的即可
  • 分治方式 decision stump:通过一个特征寻找在哪个分段点分段最佳,寻找后在那里分段
  • 在子树中希望找到purifying的数据组,通过加权纯度函数来决定最后结果
  • 需要一个impurityFunciton来判断左右子树是否纯净
  • 最后将不纯度最小化
  • 树为fully-grown tree

纯度损失函数

regressionError

impurity(D)=1Nn=1N(ynŷ )2

ŷ =Avg(yn)

  • yn在第 n 个位置的 y 元素
classificationError(Gini)

impurity(D)=1Nn=1N[[ynŷ ]]

  • ŷ yn的最多情况

  • 使用GiniIndex

    1k=1K(Nn=1[[yn=k]]N)2

  • 这种Loss 的好处是不会一刀将看似不属于最纯分类的结果直接去掉,而是同样让他们在其中影响最后的结果

停止时机

  • impurity = 0:所有情况纯度一致
  • 所有xn一致,没有执行decision stumps的地方

fully-grown tree 缺陷

  • 如果输入类别全部不同 则一定能得到Ein(G)=0,这样最后无法控制复杂度
  • 容易 overfitting:越到叶子节点附近,资料量越少。此时会传回一个相对较小的纯度 Error 值导致 overfitting
  • 于是需要对上文的树做 Regularzation,使其变为pruned decision tree

Regular 方法

表达式

argminAPGEin(G)+λΩ(G)

  • λ在其中作为参数
可行的寻找 possible G的方法
  • 首先得到fully tree
  • 将每个叶子尝试和隔壁的叶子合并掉,合并后看看哪一个叶子得到的Error最小
  • 再尝试合并两个,三个叶子。。。
  • 最后进入上式的APG就只看这个筛选中固定的序列

ID3 决策树

类的切割函数

  • C&RT的切割函数相似,但切割方法需要另外指定穷举
    b(x)=[[xiθ]]+1
  • 注意这里前面的表述符是逻辑条件,满足即为1 不满足为0

其他补充

  • 如果使用类 C&RT 算法时数据忘记切割。那么可以找替代品代替原切割方式