数据挖掘-决策树分类算法的实现及其应用ID3算法

本文通过实验介绍了决策树分类算法ID3的实现过程,包括计算香农熵、选择最佳特征划分数据集、递归构建决策树等关键步骤,并展示了在Python中使用Matplotlib绘制树形图的方法,旨在帮助读者深入理解和应用ID3算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验二  决策树分类算法的实现及其应用

【实验目的】

  1. 掌握决策树分类算法ID3的概念,理解算法的步骤。
  2. 加深对ID3算法的理解,逐步培养解决实际问题的能力。

【实验性质】

设计型实验

【实验内容】

 使用ID3算法来实现决策树分类

【实验环境】

Python 2

【实验结果】

【实验步骤】

程序清单3-1 计算给定数据集的香农熵

程序代码:

import operator

from math import log

def calcShannonEnt(dataSet):

    numEntries=len(dataSet)

    labelCounts={}

    for featVec in dataSet:

        currentLabel=featVec[-1]

        if currentLabel not in labelCounts.keys():

            labelCounts[currentLabel]=0

            labelCounts[currentLabel]+=1

        shannonEnt=0.0

        for key in labelCounts:

            prob=float(labelCounts[key]) / numEntries

            shannonEnt -= prob*log(prob,2)

        return shannonEnt

def createDataSet():

    dataSet=[[1,1,'yes'],[1,1,'yes'],[1,0,'no'],[0,1,'no'],[0,1,'no']]

    labels =['no surfacing','flippers']

    return dataSet,labels

 

运行结果;

 

程序清单3-2 按照给定特征划分数据集

程序代码:

 

def splitDataSet(dataSet,axis,value):

    retDataSet=[]

    for featVec in dataSet:

        if featVec[axis] == value:

            reducedFeatVec=featVec[:axis]

            reducedFeatVec.extend(featVec[axis+1:])

            retDataSet.append(reducedFeatVec)

    return retDataSet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值