ID3 决策树(基于西瓜数据集2.0)

本文介绍了使用ID3决策树算法对西瓜数据集2.0进行挖掘的过程,首先计算信息熵,然后依次根据纹理和触感的最大信息增益进行划分,最终得出决策树的分类结果。

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

西瓜数据集2.0

编号,色泽,根蒂,敲声,纹理,脐部,触感,好瓜
1,   青绿,蜷缩,浊响,清晰,凹陷,硬滑,是
2,   乌黑,蜷缩,沉闷,清晰,凹陷,硬滑,是
3,   乌黑,蜷缩,浊响,清晰,凹陷,硬滑,是
4,   青绿,蜷缩,沉闷,清晰,凹陷,硬滑,是
5,   浅白,蜷缩,浊响,清晰,凹陷,硬滑,是
6,   青绿,稍蜷,浊响,清晰,稍凹,软粘,是
7,   乌黑,稍蜷,浊响,稍糊,稍凹,软粘,是
8,   乌黑,稍蜷,浊响,清晰,稍凹,硬滑,是
9,   乌黑,稍蜷,沉闷,稍糊,稍凹,硬滑,否
10,  青绿,硬挺,清脆,清晰,平坦,软粘,否
11,  浅白,硬挺,清脆,模糊,平坦,硬滑,否
12,  浅白,蜷缩,浊响,模糊,平坦,软粘,否
13,  青绿,稍蜷,浊响,稍糊,凹陷,硬滑,否
14,  浅白,稍蜷,沉闷,稍糊,凹陷,硬滑,否
15,  乌黑,稍蜷,浊响,清晰,稍凹,软粘,否
16,  浅白,蜷缩,浊响,模糊,平坦,硬滑,否
17,  青绿,蜷缩,沉闷,稍糊,稍凹,硬滑,否

求信息熵

import math

def ent(*ps: float) -> float:
    sum = 0.0
    for p in ps:
        if p == 0.0:
            sum += 0
        else:
            sum += -1 * p * math.log(p, 2)
    return sum

第一次划分

# 初始时的信息熵    
p1 = 8 / 17
p2 = 9 / 17
Ent = ent(p1, p2) = 0.9975025463691153

# 色泽青绿的信息熵
p1 = 3 / 6
p2 = 3 / 6
Ent1_1 = ent(p1, p2) = 1.0
# 色泽乌黑的信息熵
p1 = 4 / 6
p2 = 2 / 6
Ent1_2 = ent(p1, p2) = 0.9182958340544896
# 色泽浅白的信息熵
p1 = 1 / 5
p2 = 4 / 5
Ent1_3 = ent(p1, p2) = 0.7219280948873623
# 色泽的信息熵
Ent1 = 6 / 17 * Ent1_1 + 6 / 17 * Ent1_2 + 5 / 17 * Ent1_3 = 0.88937738110375

# 根蒂蜷缩的信息熵
p1 = 5 / 8
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值