决策树

1、决策树简单认识
  • 决策树也是一种树模型,符合树的基本特征,由树根、树干、树枝、树叶四部分组成。
  • 决策树是一种监督学习算法,英文Decision Tree
  • 决策树的思想很朴素,类似于if-else的判断,可以很好的解释算法的训练流程
2、构建算法的三个步骤
2.1 构建决策树的三个步骤
  • 特征选择:选取具有较强分类能力的特征
  • 决策树生成:典型算法
    • ID3:采用信息增益作为特征选择度量
    • C4.5:采用信息增益率作为特征选择度量
    • Cart树:GINI系数度量
  • 决策树剪枝:
    • 原因:决策树生成算法生成的树,对训练数据预测很准确,但是对新数据分类很差,这就产生了过拟合现象。
    • 过拟合:决策树的构建直到没有特征可选或者信息增益很小时停止,这就导致了构建的决策树模型过于复杂,而复杂的模型是在训练数据上建立的,所以对于测试集往往造成分类不准确,这就是过拟合
    • 发生过拟合就是因为模型过于复杂,对于决策树来说就是树过于复杂,解决办法就是简化树的模型降低复杂度,这个简化的过程就是剪枝。
    • 决策树剪枝就是从已生成的树上减掉一些叶子节点或者子树,可以通过损失函数来实现
2.2 构建决策树模型
决策树的目标是,根据给定的一个训练数据集学习一个决策树模型。
决策树通常是递归的选择最优特征,并根据最优特征对数据集进行分割,步骤如下:
  • 构建根节点,所有的样本都位于根节点
  • 选择一个最优特征,根据该特征将训练数据集分割成子集,确保各个子集都有一个很好的分类,但是要考虑两种情况:
    • 若可以很好的分类,则构建叶节点,并将子集划分到对应的叶子节点中去。
    • 若某个子集不能和好的分类,则继续对该子集进行划分。
  • 递归,直到所有的训练集被很好的分类,或没有合适的特征为止。
    • 对于是否有没有被很好的分类我们的评判指标有:
      • 信息增益
      • 信息增益率
      • GINI系数(基尼系数)
      • 分类错误率等
通过上述步骤生成的决策树,对训练数据有很好的分类能力,但是我们训练模型的目的是对未知数据的分类和预测。因此我们需要对已生成的决策树进行剪枝,从而提升决策树的泛化能力。
2.3 决策树的剪枝
决策树的剪枝是为了降低模型复杂度,避免模型的过拟合,提升模型的泛化能力,提高对未知数据集的正确分类能力。
剪枝技术分为两种:
  • 先剪枝(预剪枝)
    • 先剪枝是对决策树停止条件的修改
    • 在树的生长过程中,根据模型规则或者条件制约树的生长
      • 树的深度
      • 树的最大不纯度
      • 迭代次数
      • 树枝分支节点包含的样本数
      • 叶子节点包含的样本数
    • 由先剪枝的规则可以看出,先剪枝虽然简单,但是在实际中对制约条件的选择存在很大的主观性,因此剪枝的精准度也不容易保证。
  • 后剪枝
    • 后剪枝是从一个充分生成的树中,按照自低向上的方式修剪掉多余的子节点。
      • 用新的叶子节点代替子树,该叶子节点的类标号由子树记录中的多数类决定
      • 用子树中最常用的分支代替子树
    • 通常计算前后预期分类错误率,如果修剪导致预期分类错误率变大,则放弃修剪,保留相应的各个分支,否则就将相应的节点分支修剪删除。
    • 通常采用后剪枝技术是最小的错误剪枝(MEP)技术,即在产生一系列的经过修剪后的决策树候选之后,利用一个独立的测试数据集,对这些经过修剪之后的决策树的分类准确性进行评价,保留下预期分类错误率最小的(修剪后)决策树
总结,通过对比两种剪枝技术,先剪枝不太精准,后剪枝实现难度大。目前在工业界,以先剪枝 为主。
2.4 两种剪枝技术对比
  • 先剪枝
    • 优点
      • 使得决策树很多分支没有展开,不仅仅降低了过拟合的风险,还显著减少了决策树训练时间和测试时间的开销。
    • 缺点
      • 人为主观因素的加入,导致模型的准确性下降
      • 有欠拟合的风险
  • 后剪枝
    • 优点
      • 树完全生长完成后,进行剪枝,不仅降低了模型复杂度,避免了过拟合,而且有效降低了欠拟合风险
      • 泛化性能往往优于先剪枝
    • 缺点
      • 树的训练和测试开销很大,需要对完成树的所有非叶子节点逐个考察
3、决策树算法的优缺点
3.1 决策树的优点
  • 直观、便于理解,小规模数据集有效
  • 执行效率高,只需要一次构建(训练)模型,可反复使用
3.2 决策树的缺点
  • 处理连续变量不好,比较难预测连续字段
  • 类别较多时,错误增加的很快
  • 对于时间序列的数据需要做很多的预处理
  • 可规模性一般
  • 实际分类的时候只能根据一个字段进行
4、决策树对连续值得处理
无法处理连续值得原因
  • 由于连续的属性值不再是有限个,无法进行分支(想象一下,一个数值节点上有n多个子节点)
处理方法
  • 二分法(将连续值离散化)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值