数据挖掘ID3算法决策树.docx
- 文档编号:3493963
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:22
- 大小:348.29KB
数据挖掘ID3算法决策树.docx
《数据挖掘ID3算法决策树.docx》由会员分享,可在线阅读,更多相关《数据挖掘ID3算法决策树.docx(22页珍藏版)》请在冰豆网上搜索。
数据挖掘ID3算法决策树
问题描述:
人对舒适度的感觉是通过穿衣指数和气候的温度、湿度、风力决定的。
请用ID3算法构建决策树.
原始数据库:
表1
根节点的选择:
根节点的选择标准就是看哪一个属性的增益最大,下面计算四个属性的增益:
第一步:
计算决策属性的熵
表2
根据感觉舒适度的类别属性划分D为相互独立的类,决策属性感觉舒适度有20个记录,其中9个记录是舒适,11个记录是不舒适,分别为p1,p2.其概率分布为p={9/20,11/20},使用公式计算熵得:
Info(感觉舒适度)=-(9/20)*log2(9/20)-(11/20)*log2(11/20)=0.993位
第二步:
计算条件属性的熵
样本集共有4个条件属性,分别为:
穿衣指数,温度,湿度,风力,使用公式计算各条件属性的熵。
1.穿衣指数的熵:
按穿衣指数将D划分为D1(正常),D2(较多),D3(很多)三个集合
D=D1∪D2∪D3,P的概率分布为:
P={6/20,3/20,11/20}
表3
(1)用公式计算属性值的熵
对于集合D1(正常)有舒适一个类别,其概率分布为P={6/6},
Info(D1)=-(6/6)*log2(6/6)=0.0;
对于集合D2(较多)有不舒适一个类别,其概率分布为P={3/3},
Info(D2)=-(3/3)*log2(3/3)=0.0;
对于集合D3(很多)有舒适和不舒适两个类别,其概率分布为P={3/11,8/11},
Info(D3)=-(3/11)*log2(3/11)-(8/11)*log2(8/11)=0.772位
(2)用公式计算属性的熵(三个子集的加权平均值)
Info(穿衣指数)=6/20*Info(D1)+3/20*Info(D2)+11/20*Info(D3)=6/20*0.0+3/20*0.0+11/20*0.772
=0.4246
2,温度的熵:
按温度将D划分为D1(适中),D2(很高)两个集合
D=D1∪D2,P的概率分布为:
P={11/20,9/20}
表4
(1)用公式计算属性值的熵
对于集合D1(适中)有两个类别舒适,不舒适,其概率分布为P={4/11,7/11},
Info(D1)=-(4/11)log2(4/11)-(7/11)log2(7/11)=0.9457;
对于集合D2(很高)有两个类别舒适,不舒适,其概率分布为P={5/9,4/9},
Info(D2)=-(5/9)log2(5/9)-(4/9)log2(4/9)=0.9911;
(2)用公式计算属性的熵(两个子集的加权平均值)
Info(D,温度)=11/20*Info(D1)+9/20*Info(D2)=11/20*0.9457+9/20*0.9911
=0.9661位
3.湿度的熵:
按湿度将D划分为D1(正常),D2(很大)两个集合
D=D1∪D2,P的概率分布为:
P={8/20,12/20}
表5
(1)用公式计算属性值的熵
对于集合D1(高)有两个类别舒适,不舒适,其概率分布为P={5/8,3/8},
Info(D1)=-(5/8)log2(5/8)-(3/8)log2(3/8)=0.9544
对于集合D2(正常)有两个类别舒适,不舒适,其概率分布为P={4/12,8/12},
Info(D2)=-(4/12)log2(4/12)-(8/12)log2(8/12)=0.9183
(2)用公式计算属性的熵(两个子集的加权平均值)
Info(D,湿度)=8/20*Info(D1)+12/20*Info(D2)=8/20*0.9544+12/20*0.9183
=0.9327
4.3.风力的熵:
按风力将D划分为D1(中等),D2(没有),D3(很大)三个集合
D=D1∪D2∪D3,P的概率分布为:
P={8/20,7/20,5/20}
表6
(1)用公式计算属性值的熵
对于集合D1(中等)有两个类别舒适,不舒适,其概率分布为P={4/8,4/8},
Info(D1)=-(4/8)log2(4/8)-(4/8)log2(4/8)=1;
对于集合D2(没有)有一个类别舒适,不舒适,其概率分布为P={3/7,4/7},
Info(D2)=-(3/7)log2(3/7)-(4/7)log2(4/7)=0.9848;
对于集合D3(很大)有一个类别舒适,不舒适,其概率分布为P={2/5,3/5},
Info(D3)=-(2/5)log2(2/5)-(3/5)log2(3/5)=0.9710;
(2)用公式计算属性的熵(三个子集的加权平均值)
Info(D,风力)=8/20*Info(D1)+7/20*Info(D2)+5/20*Info(D3)=8/20*1+7/20*0.9848+5/20*0.9710
=0.9874
第三步:
计算条件属性的增益
使用公式计算条件属性的增益为:
Gain(穿衣指数)=Info(感觉舒适度)-Info(D,穿衣指数)=0.993-0.4246=0.5684
Gain(温度)=Info(感觉舒适度)-Info(D,温度)=0.993-0.9661=0.0269
Gain(湿度)=Info感觉舒适度)-Info(D,湿度)=0.993-0.9327=0.0603
Gain(风力)=Info感觉舒适度)-Info(D,风力)=0.993-0.9874=0.0056
结论:
条件属性穿衣指数有最大的增益,所以它用于决策树的根节点
穿衣指数
正常
很多
较多
表7
穿衣指数(正常)的分支根节点的选择:
第一步:
计算决策属性的熵
根据感觉舒适度类别属性划分D为相互独立的类,决策属性感觉舒适度有6个记录,全部为舒适.其概率分布为p={1},使用公式计算熵得:
Info(感觉舒适度)=-(6/6)log2(6/6)=0
第二步:
计算条件属性的熵
样本集共有3个条件属性,分别为:
温度,湿度,风力,使用公式计算各条件属性的熵。
1,温度的熵:
按温度将D划分为D1(适中),D2(很高)两个集合
D=D1∪D2,P的概率分布为:
P={2/6,4/6}
表4
(1)用公式计算属性值的熵
对于集合D1(适中)有一个类别舒适,其概率分布为P={1},
Info(D1)=-
(1)log2
(1)=0;(纯洁了);
对于集合D2(很高)有一个类别舒适,其概率分布为P={1},
Info(D2)=-
(1)log2
(1)=0;(纯洁了)
(2)用公式计算属性的熵(两个子集的加权平均值)
Info(D,温度)=2/6*Info(D1)+4/6*Info(D2)=0
2.湿度的熵:
按湿度将D划分为D1(正常),D2(很大)两个集合
D=D1∪D2,P的概率分布为:
P={2/6,4/6}
(1)用公式计算属性值的熵
对于集合D1(正常)有一个类别舒适,其概率分布为P={1},
Info(D1)=-
(1)log2
(1)=0;(纯洁了)
对于集合D2(l很大)有1个类别舒适,其概率分布为P={1},
Info(D2)=-
(1)log2
(1)=0;(纯洁了)
(2)用公式计算属性的熵(两个子集的加权平均值)
Info(D,湿度)=2/6*Info(D1)+4/6*Info(D2)=2/6*0+46*0
=0
3.风力的熵:
按湿度将D划分为D1(中等),D2(没有),D3(很大)三个集合
D=D1∪D2∪D3,P的概率分布为:
P=3/6,2/6,1/6}
(1)用公式计算属性值的熵
对于集合D1(中等)有一个类别舒适,其概率分布为P={1},
Info(D1)=-
(1)log2
(1)=0;(纯洁了)
对于集合D2(l没有)有1个类别舒适,其概率分布为P={1},
Info(D2)=-
(1)log2
(1)=0;(纯洁了)
对于集合D3(l很大)有1个类别舒适,其概率分布为P={1},
Info(D3)=-
(1)log2
(1)=0;(纯洁了)
(2)用公式计算属性的熵(两个子集的加权平均值)
Info(D,风力)=3/6*Info(D1)+2/6*Info(D2)+16*Info(D3)=0
第三步:
计算条件属性的增益
使用公式计算条件属性的增益为:
Gain(温度)=Info(感觉舒适度)-Info(D,温度)=0-0=0;
Gain(湿度)=Info(感觉舒适度)-Info(D,湿度)=0-0=0;
Gain(风力)=Info(感觉舒适度))-Info(D,风力)=0-0=0;
结论:
条件属性最大的增益相同
穿衣指数(较多)的分支根节点的选择:
第一步:
计算决策属性的熵
根据感觉舒适度类别属性划分D为相互独立的类,决策属性感觉舒适度有3个记录,其中3个记录全是不舒适,其概率分布为p={1},使用公式计算熵得:
Info(感觉舒适度)=-1log2
(1)=0;
第二步:
计算条件属性的熵
样本集共有3个条件属性,分别为:
温度,湿度,风力,使用公式计算各条件属性的熵。
1,温度的熵:
按温度将D划分为D1(很高)一个集合
D=D1,P的概率分布为:
P={1}
(1)用公式计算属性值的熵
对于集合D1很高)有一个类别不舒适,其概率分布为P={1},
Info(D1)=-
(1)log2
(1)=0;
(2)用公式计算属性的熵
Info(D,温度)=0*0
=0
2,湿度的熵:
按温度将D划分为D1(很大)
D=D1,P的概率分布为:
P={1}
(1)用公式计算属性值的熵
对于集合D1(高)有一个类别不舒适,其概率分布为P={1},
Info(D1)=-
(1)log2
(1)=0;
(2)用公式计算属性的熵
Info(D,湿度)=0*0
=0;
2,风力的熵:
按风力将D划分为D1(没有),D2(中等),D3(很大)三个集合
D=D1∪D2∪D3,P的概率分布为:
P={1/3,1/3,1/3}
(1)用公式计算属性值的熵
对于集合D1(没有)有一个类别不舒适,其概率分布为P={1},
Info(D1=-
(1)log2
(1)=0;(纯洁了)
对于集合D2(没有)有一个类别不舒适,其概率分布为P={1},
Info(D2)=-
(1)log2
(1)=0;(纯洁了)
对于集合D3(很大)有一个类别不舒适,其概率分布为P={1/2,1/2},
Info(D3)=-
(1)log2
(1)=0;(纯洁了)
(2)用公式计算属性的熵(两个子集的加权平均值)
Info(D,风力)=1/3*Info(D1)+1/3*Info(D2)+1/3*Info(D3)=1/3*0+1/3*0+1/3*0
=0
第三步:
计算条件属性的增益
使用公式计算条件属性的增益为:
Gain(温度)=Info(感觉舒适度)-Info(D,温度)=0
Gain(湿度)=Info感觉舒适度)-Info(D,湿度)=0
Gain(风力)=Info(感觉舒适度)-Info(D,风力)=0
结论:
条件属性最大的增益相同。
穿衣指数(很多)的分支根节点的选择:
第一步:
计算决策属性的熵
根据感觉舒适度类别属性划分D为相互独立的类,决策属性感觉舒适度有11个记录,其中3个记录是舒适,8个记录是不舒适分别为p1,p2.其概率分布为p={3/11,8/11},使用公式计算熵得:
Info(感觉舒适度)=-(3/11log2(3/11)-(8/11)log2(8/11)=0.8454
第二步:
计算条件属性的熵
样本集共有3个条件属性,分别为:
温度,湿度,风力,使用公式计算各条件属性的熵。
1,温度的熵:
按温度将D划分为D1(适中),D2(很高)两个集合
D=D1∪D2,P的概率分布为:
P={9/11,2/11}
(1)用公式计算属性值的熵
对于集合D1(适中)有两个类别不舒适和舒适,其概率分布为P={7/9,2/9},
Info(D1)=-(7/9)log2(7/9)-(2/9)log2(2/9)=0.7642;
对于集合D2(很高)有两个类别舒适和不舒适,其概率分布为P={1/2,1/2}
Info(D2)=-(1/2)log2(1/2)-(1/2)log2(1/2)=1
(2)用公式计算属性的熵(两个子集的加权平均值)
Info(D,温度)=9/11*Info(D1)+2/11*Info(D2)=9/11*0.7642+2/11*1
=0.8071
2,湿度的熵:
按温度将D划分为D1(正常),D2(很大)两个集合
D=D1∪D2,P的概率分布为:
P={6/11,5/11}
(1)用公式计算属性值的熵
对于集合D1(正常)有两个类别不舒适和舒适,其概率分布为P={3/6,3/6},
Info(D1)=-(3/6)log2(3/6)-(3/6)log2(3/6)=1;
对于集合D2(很大)有一个类别不舒适,其概率分布为P={1}
Info(D2)=-
(1)log2
(1)=0;
(2)用公式计算属性的熵(两个子集的加权平均值)
Info(D,湿度)=6/11Info(D1)+5/11*Info(D2)=0.5455;
2,风力的熵:
按风力将D划分为D1(中等),D2(没有),D3(很大)三个集合
D=D1∪D2∪D3,P的概率分布为:
P={4/11,4/11,3/11}
(1)用公式计算属性值的熵
对于集合D1(中等)有两个类别舒适和不舒适,其概率分布为P={1/4,3/4},
Info(D1)=-(1/4)log2(1/4)-(3/4)log2(3/4)=0.8113;
对于集合D2(没有)有两个类别舒适和不舒适,其概率分布为P={1/4,3/4},
Info(D2)=-(1/4)log2(1/4)-(3/4)log2(3/4)=0.8113;
对于集合D3(很大)有两个类别舒适和不舒适,其概率分布为P={1/3,2/3},
Info(D3)=-(1/3)log2(1/3)-(2/3)log2(2/3)=0.9178;
(2)用公式计算属性的熵(三个子集的加权平均值)
Info(风力)=4/11*Info(D1)+4/11*Info(D2)+3/11*Info(D3)=4/11*0.8113+4/11*0.8113+3/11*0.9178
=0.8403
第三步:
计算条件属性的增益
使用公式计算条件属性的增益为:
Gain(温度)=Info(感觉舒适度)-Info(D,温度)=0.8454-0.8071=0.0383
Gain(湿度)=Info感觉舒适度)-Info(D,湿度)=0.8454-0.5455=0.2999
Gain(风力)=Info(感觉舒适度)-Info(D,风力)=0.8454-0.8403=0.0051
结论:
条件属性湿度有最大的增益,所以它用于穿衣指数(最多)分支的根节点
湿度
正常
很大
湿度(正常)的分支根节点的选择:
第一步:
计算决策属性的熵
根据感觉舒适度类别属性划分D为相互独立的类,决策属性感觉舒适度有6个记录,其中3个记录是舒适,3个记录是不舒适分别为p1,p2.其概率分布为p={3/6,3/6},使用公式计算熵得:
Info(感觉舒适度)=-(3/6log2(3/6)-(3/6)log2(3/6)=1
第二步:
计算条件属性的熵
样本集共有2个条件属性,分别为:
温度,风力,使用公式计算各条件属性的熵。
1,温度的熵:
按温度将D划分为D1(适中),D2(很高)两个集合
D=D1∪D2,P的概率分布为:
P={4/6,2/6}
(1)用公式计算属性值的熵
对于集合D1(适中)有两个类别不舒适和舒适,其概率分布为P={2/4,2/4},
Info(D1)=-(2/4)log2(2/4)-(2/4log2(2/4)=1
对于集合D2(很高)有两个类别舒适和不舒适,其概率分布为P={1/2,1/2}
Info(D2)=-(1/2)log2(1/2)-(1/2)log2(1/2)=1
(2)用公式计算属性的熵(两个子集的加权平均值)
Info(D,温度)=4/6*Info(D1)+2/6*Info(D2)=4/6*1+2/6*1
=1
2,风力的熵:
按风力将D划分为D1(中等),D2(没有),D3(很大)三个集合
D=D1∪D2∪D3,P的概率分布为:
P={2/6,2/6,2/6}
(1)用公式计算属性值的熵
对于集合D1(中等)有两个类别不舒适和舒适,其概率分布为P={1/2,1/2},
Info(D1)=-(1/2)log2(1/2)-(1/2)log2(1/2)=1;
对于集合D2(没有)有两个类别不舒适和舒适,其概率分布为P={1/2,1/2},
Info(D2)=-(1/2)log2(1/2)-(1/2)log2(1/2)=1;
对于集合D3(很大)有两个类别不舒适和舒适,其概率分布为P={1/2,1/2},
Info(D1)=-(1/2)log2(1/2)-(1/2)log2(1/2)=1;
(2)用公式计算属性的熵(三个子集的加权平均值)
Info(D,湿度)=2/6Info(D1)+2/6*Info(D2))+2/6*Info(D3)=1;
第三步:
计算条件属性的增益
使用公式计算条件属性的增益为:
Gain(温度)=Info(感觉舒适度)-Info(D,温度)=1-1=0
Gain(风力)=Info(感觉舒适度)-Info(D,风力)=1-1=0
结论:
条件属性最大的增益相同,所以温度和风力都可以作为湿度(正常)分支的根节点,选温度作为分支节点
温度
适中
很高
总结:
所有的结点已经确定,最后的决策树为
穿衣指数
正常较多很多
湿度
舒适
舒适
正常很大
不舒服
温度
适中
很高
不舒适
风力
中等没有
不舒适
舒适
不舒适
很大
用weka软件以ID3数据集进行分类:
用软件实现ID3决策树的分类
平台:
WEKA平台
步骤:
1.把book1.xls文件转化成book1.csv:
打开book1.xls文件并切换到需要转换的工作表,另存为CSV类型,点“确定”、“是”忽略提示即可完成操作。
注:
Excel的XLS文件可以让多个二维表格放到不同的工作表(Sheet)中,我们只能把每个工作表存成不同的CSV文件。
2.把得到的book1.csv转换为book1.arff:
打开WAKE,进入“Exploer”模块,单击"Openfile"按扭,打开book1.csv文件,然后单击按钮"Save"另存为book1.arff文件即可。
3.在分类其中选择ID3算法:
打开WAKE,进入“Classfiy”模块,单击"choose"按钮,"tree"—>"ID3".
4.设置"Testoption"相关的选项,这里选择"Suppliedtestset",单击"set"按钮,打开刚才保存的book1.arff文件。
图4-1
软件weka视图:
图一
图二
5.运行得出结果:
单击"Start"按钮,运行出结果如下。
(步骤是对了,但是不知为什么id3树生成时出现乱码)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 挖掘 ID3 算法 决策树
![提示](https://static.bdocx.com/images/bang_tan.gif)