【机器学习系列】之ID3、C4.5、CART决策树构建代码

作者:張張張張github地址:https://github.com/zhanghekai【转载请注明出处,谢谢!】ID3决策树 西瓜数据集2.0案例项目概述:\quad根据以下6个特征,将西瓜分成两类:好瓜和坏瓜特征:\quad 1.西瓜的颜色\quad 2.西瓜的根卷曲程度\quad 3.敲打西瓜发出的声音\quad 4.西瓜表面的纹理\quad 5.西瓜脐部凹陷情况...
摘要由CSDN通过智能技术生成

作者:張張張張
github地址:https://github.com/zhanghekai
【转载请注明出处,谢谢!】

【机器学习系列】之“西瓜数据集”决策树构建数学公式计算过程
【机器学习系列】之决策树剪枝和连续值、缺失值处理数学公式计算
【机器学习系列】之ID3、C4.5、CART决策树构建代码

ID3决策树 西瓜数据集2.0案例

项目概述:
\quad 根据以下6个特征,将西瓜分成两类:好瓜和坏瓜
特征:
\quad 1.西瓜的颜色
\quad 2.西瓜的根卷曲程度
\quad 3.敲打西瓜发出的声音
\quad 4.西瓜表面的纹理
\quad 5.西瓜脐部凹陷情况
\quad 6.抚摸西瓜时的触感
开发流程:
\quad 收集数据集:可以使用任何方法.
\quad 准备数据:树构造算法(这里使用ID3算法,因此数值型数据必须离散化。)
\quad 分析数据:可以使用任何方法,构造书完成之后,我们可以将树画出来。
\quad 训练算法:构造树结构。
\quad 测试算法:使用习得的决策树执行分类。
\quad 使用算法:此步骤可以适用于任何监督学习任务,而使用决策树可以更好地理解数据的内在含义。

import math
import operator
import numpy as np

一、收集数据:利用createDataSet()函数输入数据

def createDataSet():
    # dataSet中最后一列记录的是类别,其余列记录的是特征值
    dataSet = [
        ['青绿','蜷缩','浊响','清晰','凹陷','硬滑','是'],
        ['乌黑','蜷缩','沉闷','清晰','凹陷','硬滑','是'],
        ['乌黑','蜷缩','浊响','清晰','凹陷','硬滑','是'],
        ['青绿','蜷缩','沉闷','清晰','凹陷','硬滑','是'],
        ['浅白','蜷缩','浊响','清晰','凹陷','硬滑','是'],
        ['青绿','稍蜷','浊响','清晰','稍凹','软粘','是'],
        ['乌黑','稍蜷','浊响','稍糊','稍凹','软粘','是'],
        ['乌黑','稍蜷','浊响','清晰','稍凹','硬滑','是'],
        ['乌黑','稍蜷','沉闷','稍糊','稍凹','硬滑','否'],
        ['青绿','硬挺','清脆','清晰','平坦','软粘','否'],
        ['浅白','硬挺','清脆','模糊','平坦','硬滑','否'],
        ['浅白','蜷缩','浊响','模糊','平坦','软粘','否'],
        ['青绿','稍蜷','浊响','稍糊','凹陷','硬滑','否'],
        ['浅白','稍蜷','沉闷','稍糊','凹陷','硬滑','否'],
        ['乌黑','稍蜷','浊响','清晰','稍凹','软粘','否'],
        ['浅白','蜷缩','浊响','模糊','平坦','硬滑','否'],
        ['青绿','蜷缩','沉闷','稍糊','稍凹','硬滑','否']
    ]
    
    # label中记录的是特征的名称
    labels = ['色泽','根蒂','敲声','纹理','脐部','触感']
    
    return dataSet, labels

二、准备数据

\quad 由于我们输入的数据本身就是离散化数据,所以这一步就省略了。

三、分析数据

使用信息增益的方法:

  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
决策树是一种常用的机器学习算法,用于解决分类和回归问题。其中,ID3、C4.5和CART决策树的三种常见算法。 1. ID3算法(Iterative Dichotomiser 3): ID3算法是一种基于信息增益的决策树算法。它通过选择具有最大信息增益的特征来构建决策树。具体步骤如下: - 计算每个特征的信息增益,选择信息增益最大的特征作为当前节点的划分特征。 - 根据划分特征的取值将数据集分成多个子集。 - 对每个子集递归地应用上述步骤,构建子树。 - 直到满足终止条件,如所有样本属于同一类别或者没有更多特征可供选择。 2. C4.5算法: C4.5算法是ID3算法的改进版本,它使用信息增益比来选择划分特征。相比于ID3算法,C4.5算法考虑了特征取值的多样性,能够处理连续型特征。具体步骤如下: - 计算每个特征的信息增益比,选择信息增益比最大的特征作为当前节点的划分特征。 - 根据划分特征的取值将数据集分成多个子集。 - 对每个子集递归地应用上述步骤,构建子树。 - 直到满足终止条件,如所有样本属于同一类别或者没有更多特征可供选择。 3. CART算法(Classification and Regression Trees): CART算法是一种用于分类和回归的决策树算法。它通过选择最优的划分特征和划分点来构建决策树。具体步骤如下: - 选择最优的划分特征和划分点,使得划分后的子集纯度最高(分类问题)或者方差最小(回归问题)。 - 根据划分特征和划分点将数据集分成多个子集。 - 对每个子集递归地应用上述步骤,构建子树。 - 直到满足终止条件,如所有样本属于同一类别或者达到预定的树深度。 对于代码实现,由于篇幅限制无法提供完整代码,但你可以在各种编程语言中找到相关的开源实现。你可以搜索相关的库或者参考机器学习教材中的示例代码来了解具体实现细节。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值