AI遮天传 ML-决策树(二)

本文先进行之前所学决策树的简单回顾,后进行ID3决策树模型的python代码手动实现,sklearn中cart决策树的使用,以及生成树的可视化操作。

其实回过头来再次学习,已经比第一遍简单太多太多,too much too much了。所以无论困难与否,学习始终是一件让人进步的事情。

前篇: AI遮天传 ML-初识决策树_老师我作业忘带了的博客-CSDN博客

文章目录

一、回顾决策树

1.1 基础认识

1.2 决策树ID3算法

1.2.1 最佳决策属性->Impurity->IG

1.2.2 停止分裂

1.2.3 优缺点、归纳偏置

1.3 处理过拟合问题->预剪枝-后剪枝

1.3.1 对于预剪枝

1.3.2 对于后剪枝

1.4 拓展

二、ID3决策树模型代码实现

三、sklearn里的决策树

3.1 介绍

3.2 分类 DecisionTreeClassifier()

3.3 回归 DecisionTreeRegressor()

3.4 复杂度分析

3.5 使用技巧

四、决策树可视化

方法1: plot_tree

方法2:graphviz

一、回顾决策树

以下是回顾内容,建议无基础的小伙伴从上方连接看起。

1.1 基础认识

在过去学习的日子里,我们简简单单认识了决策树:

想象一个已经生成好了的树状的结构,假如今天:

天气(晴)–>温度(正常)–>湿度(正常)–>风力(小) ,那么我们出去玩;

但如果:

天气(阴)–>温度(正常)–>湿度(高)–>风力(大),那么我们不出去玩。

以上两条路皆是我们从树的顶部走到最后,根据 不同特征 的 不同取值 选择在这个特征节点下一步要走的方向,直到做出决策。

我们介绍了 决策树适用的经典目标问题

  • 带有非数值特征的分类问题
  • 离散特征
  • 没有相似度的
  • 特征无序

1.2 决策树ID3算法

我们还介绍了 决策树的经典ID3算法

它是一种 自顶向下的贪心搜索,是一种递归算法(树),它的核心循环步骤如下:

  • A :找出下一步最佳决策属性
  • 将 A 作为当前节点决策属性
  • 对属性A (vi )的每个值,创建与其对应的新的子节点
  • 根据属性值将训练样本分配到各个节点
  • 如果训练样本被完美分类,则退出循环,否则进入递归状态继续向下探分裂新的叶节点

1.2.1 最佳决策属性->Impurity->IG

为了找出最佳决策属,我们引入了 混杂度(Impurity)这个概念,衡量混杂度的方法一般这三种:

  • 熵(Entropy)
  • Gini 混杂度
  • 错分类混杂度

知道了特征节点混杂度以后我们继续引入 信息增益(IG),即原始节点的熵值 减去 经过属性分类以后的期望熵值,来计算混杂度的变化。

由于我们倾向于树 越简洁越好(奥卡姆剃刀:偏向于符合数据的最短的假设),即下图左边比右边好:

AI遮天传 ML-决策树(二)

所以我们每次想要这棵树经过每次分类后,不确定的信息减少的多一点,也就是剩下的更”纯”一点,所以Gain也就是信息增益的值越大越好, 我们由此判断出哪个属性或者特征来做根节点/下一个节点更好。

1.2.2 停止分裂

为了确定 训练样本被完美分类,也就是何时停止分裂,我们考虑了3种情况:

  • 情形 1:如果当前子集中所有数据 有完全相同的输出类别,那么终止
  • 情形 2:如果当前子集中所有数据 有完全相同的输入特征,那么终止
  • 比如:晴天-无风-湿度正常-温度合适,最后有的去了有的没去。此时即使不终止也没办法了,因为能用的信息已经用完了。这意味着: 1、数据有噪声noise。需要进行清理,如果噪声过多说明数据质量不够好。 2、漏掉了重要的Feature,比如漏掉了当天是否有课,有课就没办法出去玩。

可能的 情形3: 如果 所有属性分裂的信息增益为0, 那么终止。 这不是一个好的想法,如果IG=0甚至在第一步就无法选择任何属性,无法生成一个树~

即ID3算法只有上面两种情况会停止分裂,如果IG=0就随便选一个好了。

1.2.3 优缺点、归纳偏置

我们还说了一些ID3决策树的优缺点:

  • 假设空间是完备的(即能处理属性的析取又能处理属性的合取)
  • 目标函数一定在假设空间里
  • 输出单个假设(沿着树的一条路走下去)
  • 不超过20个问题(根据经验,一般feature不超过20个,过于复杂树比较长也容易产生过拟合)
  • 没有回溯(以A1做根节点,没办法退回去看A2做根节点怎么样)
  • 局部最优
  • 在每一步中使用子集的所有数据(比如梯度下降算法里权值的更新策略是每条数据更新一次的话,那就是每次只使用一条数据)
  • 数据驱动的搜索选择
  • 对噪声数据有鲁棒性

ID3中的归纳偏置(Inductive Bias)

  • 假设空间 H 是作用在样本集合 X 上的
  • 没有对假设空间作限制
  • 偏向于在靠近根节点处的属性具有更大信息增益的树
  • 该算法的偏置在于对某些假设具有一些 偏好 (搜索偏置,尝试找到最短的树), 而不是对假设空间 H 做限制(描述偏置).

  • 奥卡姆剃刀(Occam’s Razor)*:偏向于符合数据的最短的假设

1.3 处理过拟合问题->预剪枝-后剪枝

决策树过拟合的一个极端例子:

  • 每个叶节点都对应单个训练样本 —— 每个训练样本都被完美地分类
  • 整个树相当于仅仅是一个 数据查表 算法的简单实现

AI遮天传 ML-决策树(二)

为了避免过拟合问题,我们介绍了 预剪枝后剪枝

对决策树来说有两种方法避免过拟合

  • 当数据的分裂在统计意义上并不显著(如样例少)时,就停止增长:预剪枝
  • 构建一棵完全树,然后再做后剪枝

1.3.1 对于预剪枝

对于预剪枝我们很难估计最后树的大小

方式1:基于样本数量的预剪枝(按照特定比例停止)

通常一个节点不再继续分裂,当:

  • 到达一个节点的训练样本数小于训练集合的一个特定比例 (例如 5%),无论混杂度或错误率是多少,我们都让其停止分裂。
  • 因为基于过少数据样本的决定会带来较大误差和泛化错误(盲人摸象)。

方式2: 基于信息增益的阈值

我们一般设定一个较小的阈值,如果 信息增益IG

Original: https://blog.csdn.net/suic009/article/details/126397432
Author: 老师我作业忘带了
Title: AI遮天传 ML-决策树(二)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/716746/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球