由于数据表中的属性值都是数值型,我们需要将其离散化。

首先,我们将“总个数”属性离散化为“少量”和“大量”两个值。具体地,将总个数小于等于400的水果定义为“少量”,将总个数大于400的水果定义为“大量”。

然后,我们将“长条”属性离散化为“是”和“否”两个值。具体地,将长条数大于0的水果定义为“是”,将长条数等于0的水果定义为“否”。

接下来,我们将“甜度”属性离散化为“甜”和“不甜”两个值。具体地,将甜度大于等于300的水果定义为“甜”,将甜度小于300的水果定义为“不甜”。

最后,我们将“黄色”属性离散化为“黄色”和“非黄色”两个值。具体地,将黄色数大于等于400的水果定义为“黄色”,将黄色数小于400的水果定义为“非黄色”。

离散化后的数据表如下:

| 水果类型 | 总个数 | 长条 | 甜度 | 黄色 | 大小 | 长条是 | 甜度甜 | 黄色黄色 | | -------- | ------ | ---- | ---- | ---- | ---- | ------ | ------ | -------- | | 香蕉 | 500 | 是 | 甜 | 黄色 | 大量 | 是 | 甜 | 黄色 | | 橘子 | 300 | 否 | 不甜 | 非黄 | 少量 | 否 | 不甜 | 非黄色 | | 其他 | 200 | 是 | 不甜 | 非黄 | 少量 | 是 | 不甜 | 非黄色 | | 总计 | 1000 | 是 | 甜 | 黄色 | 大量 | 是 | 甜 | 黄色 |

接下来,我们分别使用ID3、C4.5和CART算法,建立树桩模型并画出决策树。

首先,使用ID3算法建立树桩模型。根据ID3算法,我们需要计算每个属性的信息增益,选择信息增益最大的属性作为根节点。具体计算过程如下:

  • 计算“大小”属性的信息增益:

    • 计算样本集的熵:$Ent(D) = -\frac{5}{10}\log_2\frac{5}{10}-\frac{5}{10}\log_2\frac{5}{10}=1$

    • 计算“大小”属性对样本集的条件熵:

      • $Ent(D|大小=大量)=-\frac{2}{5}\log_2\frac{2}{5}-\frac{3}{5}\log_2\frac{3}{5}=0.971$
      • $Ent(D|大小=少量)=-\frac{3}{5}\log_2\frac{3}{5}-\frac{2}{5}\log_2\frac{2}{5}=0.971$
      • $Ent(D|大小)=\frac{5}{10}Ent(D|大小=大量)+\frac{5}{10}Ent(D|大小=少量)=0.971$
    • 计算“大小”属性的信息增益:$Gain(D,大小)=Ent(D)-Ent(D|大小)=0.029$

  • 计算“长条是”属性的信息增益:

    • 计算样本集的熵:$Ent(D) = -\frac{5}{10}\log_2\frac{5}{10}-\frac{5}{10}\log_2\frac{5}{10}=1$

    • 计算“长条是”属性对样本集的条件熵:

      • $Ent(D|长条是=是)=-\frac{3}{4}\log_2\frac{3}{4}-\frac{1}{4}\log_2\frac{1}{4}=0.811$
      • $Ent(D|长条是=否)=-\frac{2}{6}\log_2\frac{2}{6}-\frac{4}{6}\log_2\frac{4}{6}=0.918$
      • $Ent(D|长条是)=\frac{4}{10}Ent(D|长条是=是)+\frac{6}{10}Ent(D|长条是=否)=0.869$
    • 计算“长条是”属性的信息增益:$Gain(D,长条是)=Ent(D)-Ent(D|长条是)=0.131$

  • 计算“甜度甜”属性的信息增益:

    • 计算样本集的熵:$Ent(D) = -\frac{5}{10}\log_2\frac{5}{10}-\frac{5}{10}\log_2\frac{5}{10}=1$

    • 计算“甜度甜”属性对样本集的条件熵:

      • $Ent(D|甜度甜=甜)=-\frac{3}{4}\log_2\frac{3}{4}-\frac{1}{4}\log_2\frac{1}{4}=0.811$
      • $Ent(D|甜度甜=不甜)=-\frac{2}{6}\log_2\frac{2}{6}-\frac{4}{6}\log_2\frac{4}{6}=0.918$
      • $Ent(D|甜度甜)=\frac{4}{10}Ent(D|甜度甜=甜)+\frac{6}{10}Ent(D|甜度甜=不甜)=0.869$
    • 计算“甜度甜”属性的信息增益:$Gain(D,甜度甜)=Ent(D)-Ent(D|甜度甜)=0.131$

  • 计算“黄色黄色”属性的信息增益:

    • 计算样本集的熵:$Ent(D) = -\frac{5}{10}\log_2\frac{5}{10}-\frac{5}{10}\log_2\frac{5}{10}=1$

    • 计算“黄色黄色”属性对样本集的条件熵:

      • $Ent(D|黄色黄色=黄色)=-\frac{2}{4}\log_2\frac{2}{4}-\frac{2}{4}\log_2\frac{2}{4}=1$
      • $Ent(D|黄色黄色=非黄色)=-\frac{3}{6}\log_2\frac{3}{6}-\frac{3}{6}\log_2\frac{3}{6}=1$
      • $Ent(D|黄色黄色)=\frac{4}{10}Ent(D|黄色黄色=黄色)+\frac{6}{10}Ent(D|黄色黄色=非黄色)=1$
    • 计算“黄色黄色”属性的信息增益:$Gain(D,黄色黄色)=Ent(D)-Ent(D|黄色黄色)=0$

根据计算结果,我们可以发现“黄色黄色”属性的信息增益为0,即该属性对分类没有贡献,所以不能选择该属性作为根节点。因此,我们选择信息增益最大的属性“长条是”作为根节点,建立树桩模型如下:

长条是=是:香蕉
长条是=否:橘子/其他

接下来,使用C4.5算法建立树桩模型。和ID3算法类似,C4.5算法也是选择信息增益最大的属性作为根节点。但是,C4.5算法对连续型属性和缺失值有更好的处理方法,可以使用信息增益比来选择属性。

由于本例中所有属性都是离散型的,所以C4.5算法和ID3算法的结果是一样的。我们选择信息增益最大的属性“长条是”作为根节点,建立树桩模型如下:

长条是=是:香蕉
长条是=否:橘子/其他

最后,使用CART算法建立树桩模型。CART算法是构建二叉树的,每个节点只有两个分支。CART算法选择属性的方法是基尼指数。具体计算过程如下:

  • 计算“大小”属性的基尼指数:

    • 计算样本集的基尼指数:$Gini(D) = 1-(\frac{5}{10})^2-(\frac{5}{10})^2=0.5$

    • 计算“大小”属性对样本集的条件基尼指数:

      • $Gini(D|大小=大量)=1-(\frac{2}{5})^2-(\frac{3}{5})^2=0.48$
      • $Gini(D|大小=少量)=1-(\frac{3}{5})^2-(\frac{2}{5})^2=0.48$
      • $Gini(D|大小)=\frac{5}{10}Gini(D|大小=大量)+\frac{5}{10}Gini(D|大小=少量)=0.48$
    • 计算“大小”属性的基尼指数:$Gini(D,大小)=Gini(D)-Gini(D|大小)=0.02$

  • 计算“长条是”属性的基尼指数:

    • 计算样本集的基尼指数:$Gini(D) = 1-(\frac{5}{10})^2-(\frac{5}{10})^2=0.5$

    • 计算“长条是”属性对样本集的条件基尼指数:

      • $Gini(D|长条是=是)=1-(\frac{3}{4})^2-(\frac{1}{4})^2=0.375$
      • $Gini(D|长条是=否)=1-(\frac{2}{6})^2-(\frac{4}{6})^2=0.444$
      • $Gini(D|长条是)=\frac{4}{10}Gini(D|长条是=是)+\frac{6}{10}Gini(D|长条是=否)=0.417$
    • 计算“长条是”属性的基尼指数:$Gini(D,长条是)=Gini(D)-Gini(D|长条是)=0.083$

  • 计算“甜度甜”属性的基尼指数:

    • 计算样本集的基尼指数:$Gini(D) = 1-(\frac{5}{10})^2-(\frac{5}{10})^2=0.5$

    • 计算“甜度甜”属性对样本集的条件基尼指数:

      • $Gini(D|甜度甜=甜)=1-(\frac{3}{4})^2-(\frac{1}{4})^2=0.375$
      • $Gini(D|甜度甜=不甜)=1-(\frac{2}{6})^2-(\frac{4}{6})^2=0.444$
      • $Gini(D|甜度甜)=\frac{4}{10}Gini(D|甜度甜=甜)+\frac{6}{10}Gini(D|甜度甜=不甜)=0.417$
    • 计算“甜度甜”属性的基尼指数:$Gini(D,甜度甜)=Gini(D)-Gini(D|甜度甜)=0.083$

  • 计算“黄色黄色”属性的基尼指数:

    • 计算样本集的基尼指数:$Gini(D) = 1-(\frac{5}{10})^2-(\frac{5}{10})^2=0.5$

    • 计算“黄色黄色”属性对样本集的条件基尼指数:

      • $Gini(D|黄色黄色=黄色)=1-(\frac{2}{4})^2-(\frac{2}{4})^2=0.5$
      • $Gini(D|黄色黄色=非黄色)=1-(\frac{3}{6})^2-(\frac{3}{6})^2=0.5$
      • $Gini(D|黄色黄色)=\frac{4}{10}Gini(D|黄色黄色=黄色)+\frac{6}{10}Gini(D|黄色黄色=非黄色)=0.5$
    • 计算“黄色黄色”属性的基尼指数:$Gini(D,黄色黄色)=Gini(D)-Gini(D|黄色黄色)=0$

根据计算结果,我们可以发现“黄色黄色”属性的基尼指数为0,即该属性对分类没有贡献,所以不能选择该属性作为根节点。因此,我们选择基尼指数最小的属性“长条是”作为根节点,建立树桩模型如下:

长条是=是:香蕉
长条是=否:橘子/其他

三种算法得到的树桩模型都是一样的,即“长条是”属性作为根节点,分别连接香蕉和橘子/其他两个叶子节点。树桩模型如下:

长条是=是:香蕉
长条是=否:橘子/其他
``
假设有如下一批水果的数据信息统计表:包含属性有 水果类型、总个数、长条、甜度、黄色水果类型有香蕉橘子其他总计总个数分别为500、300、200、1000长条分别为400、0、100、500甜度分别为350、150、150、650黄色分别为450、300、50、800分别采用ID3C45和CART 算法建立树桩模型即深度为1的决策树模型并画出决策树。

原文地址: https://www.cveoy.top/t/topic/eGyt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录