数据挖掘ID3算法详解

ID3算法

例:设网球俱乐部有打球与气候条件的历史统计数据如下表表示。其中,描述气候的条件属性:“天气”、“温度”、“湿度”、“风力”,分类属性:“是”、“否”。表示在当时的气候条件下是否适宜打球的两种类别。请构造关于气候条件与是否适宜打球的决策树。
样本id 天气 温度 湿度 风力 类别
X1
X2
X3
X4
X5
X6
X7
X8
X9
X10
X11
X12
X13
X14

一、求出根结点。

(一)计算分类属性C的分类信息熵

///////////////////

步骤:
a、根据分类属性将样本分割
b、计算分类属性C的分类信息熵

///////////////////

1、根据分类属性将样本分割
样本:S={X1、X2,…,X14};
样本个数:|S|=14;
分类属性:C={C1,C2}={是,否},C指的是否适宜打球。
按是否适宜打球将样本分为C1和C2:
C1={X3、X4、X5、X7、X9、X10、X11、X12、X13}
C2={X1、X2、X6、X8、X14}
2、根据信息熵公式求出信息熵:
E(S,C)=

在这里插入图片描述#### (二)计算每个条件属性A相对C的信息熵
///////////////////

步骤
a、分别求A1、A2、A3、A4相对C的信息熵

///////////////////

首先得知样本集S中有天气、温度、湿度、风力四个属性。
A={A1、A2、A3、A4}
A1:天气; A2:温度; A3:湿度 A4:风力
1、求A1相对C的信息熵
(1)划分
A1:天气
A1含有3个属性值:“晴”、“云”、“雨”
用A1将S划分,为: S1={X1、X2、X8、X9、X11}
S2={X3、X7、X12、X13} , S3={X4、X5、X6、X10、X14}
(2)分别求S1、S2、S3与C1、C2的交集在这里插入图片描述
(3) 求出各自的信息熵

数据挖掘ID3算法详解_第1张图片

(4)求出A1相对C的信息熵

在这里插入图片描述

2、求A2相对C的信息熵
同上:E(S,A2|C)=0.911
3、求A3相对C的信息熵
同上:E(S,A3|C)=0.789
4、求A4相对C的信息熵
同上:E(S,A4|C)=0.937

(三)计算每个属性A的信息增益

///////////////////

步骤
a、分别求A1、A2、A3、A4的信息增益
b、选取最大的信息增益的属性作为根结点

///////////////////

1、A1=“天气”时

在这里插入图片描述

2、A2=“温度”时

在这里插入图片描述

3、A3=“湿度”时

在这里插入图片描述

4、A4=“风力”时

在这里插入图片描述
能够看出最大增益的属性是A1即天气,因此将天气作为根结点
在这里插入图片描述

二、寻找根结点的子女结点

(一)寻找子女结点1

///////////////////

步骤
a、根结点对样本集S进行分割
b、寻找子女结点

///////////////////

1、
天气=“晴”的子集S1
样本id 温度 湿度 风力 类别
X1
X2
X8
X9
X11
天气=“云”的子集S2
样本id 温度 湿度 风力 类别
X3
X7
X12
X13
天气=“雨”的子集S3
样本id 温度 湿度 风力 类别
X4
X5
X6
X10
X14
2、
由于S2的类别标号都为“是”,因此S2为叶子结点,其余为子女结点

数据挖掘ID3算法详解_第2张图片

(二)寻找子女结点2

///////////////////

步骤
a、计算C对S1分类的分类信息熵
b、计算条件属性相对于C的信息熵
c、分别求A2、A3、A4的信息增益
b、选取最大的信息增益的属性作为"天气"的子女结点

///////////////////

1、计算C对S1分类的分类信息熵
(1)划分:
令S=S1,S={X1、X2、X8、X9、X11},|S|=5
C={C1,C2 }={“是”,“否”},C1={X9、X11},C2={X1、X2、X8}

在这里插入图片描述

2、计算条件属性相对于C的信息熵
(1)划分
A2="温度"时
A2含有3个属性值:“高”、“中”、“低”
用A2将S划分,为: S1={X1、X2}
S2={X8、X11} , S3={X9}
(2)分别求S1、S2、S3与C1、C2的交集

在这里插入图片描述

(3) 求出各自的信息熵

数据挖掘ID3算法详解_第3张图片

(4)求出A2相对C的信息熵

在这里插入图片描述

(5)、求A3相对C的信息熵
同上:E(S,A3|C)=0
(6)、求A4相对C的信息熵
同上:E(S,A4|C)=0.649
3、分别求A2、A3、A4的信息增益
3、A2=“温度”时

在这里插入图片描述

3、A3=“湿度”时

在这里插入图片描述

4、A4=“风力”时

在这里插入图片描述

5、选取最大的信息增益的属性作为"天气"的子女结点

显然湿度的信息增益最大因此选取"湿度”为“天气"的子女结点

天气=“晴”的子集S1
样本id 温度 湿度 风力 类别
X1
X2
X8
X9
X11

上图用湿度进行分类:

在天气为晴的条件下湿度为大A:
样本id 温度 风力 类别
X1
X2
X8
在天气为晴的条件下湿度为小B:
样本id 温度 风力 类别
X9
X11
由于A、B的类别标号都分别为"否"、“是”,因此为叶子结点。

数据挖掘ID3算法详解_第4张图片

(三)寻找子女结点3

与上面的过程类似,在这儿就不再写出了,最终的结果为:

数据挖掘ID3算法详解_第5张图片
数据挖掘ID3算法详解_第6张图片

你可能感兴趣的:(数据挖掘ID3算法详解)