数据挖掘ID3算法决策树Word格式文档下载.docx
《数据挖掘ID3算法决策树Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据挖掘ID3算法决策树Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。
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
对于集合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(很大)两个集合
P={8/20,12/20}
表5
对于集合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
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
对于集合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;
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,P的概率分布为:
P={2/6,4/6}
对于集合D1(适中)有一个类别舒适,其概率分布为P={1},
Info(D1)=-
(1)log2
(1)=0;
(纯洁了);
对于集合D2(很高)有一个类别舒适,其概率分布为P={1},
Info(D2)=-
(1)log2
(1)=0;
(纯洁了)
Info(D,温度)=2/6*Info(D1)+4/6*Info(D2)=0
2.湿度的熵:
对于集合D1(正常)有一个类别舒适,其概率分布为P={1},
Info(D1)=-
(1)log2
(1)=0;
对于集合D2(l很大)有1个类别舒适,其概率分布为P={1},
Info(D,湿度)=2/6*Info(D1)+4/6*Info(D2)=2/6*0+46*0
=0
3.风力的熵:
按湿度将D划分为D1(中等),D2(没有),D3(很大)三个集合
P=3/6,2/6,1/6}
对于集合D1(中等)有一个类别舒适,其概率分布为P={1},
对于集合D2(l没有)有1个类别舒适,其概率分布为P={1},
对于集合D3(l很大)有1个类别舒适,其概率分布为P={1},
Info(D3)=-
(1)log2
(1)=0;
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;
按温度将D划分为D1(很高)一个集合
D=D1,P的概率分布为:
P={1}
对于集合D1很高)有一个类别不舒适,其概率分布为P={1},
(2)用公式计算属性的熵
Info(D,温度)=0*0
2,湿度的熵:
按温度将D划分为D1(很大)
对于集合D1(高)有一个类别不舒适,其概率分布为P={1},
Info(D,湿度)=0*0
=0;
2,风力的熵:
按风力将D划分为D1(没有),D2(中等),D3(很大)三个集合
P={1/3,1/3,1/3}
对于集合D1(没有)有一个类别不舒适,其概率分布为P={1},
Info(D1=-
(1)log2
(1)=0;
对于集合D2(没有)有一个类别不舒适,其概率分布为P={1},
对于集合D3(很大)有一个类别不舒适,其概率分布为P={1/2,1/2},
Info(D,风力)=1/3*Info(D1)+1/3*Info(D2)+1/3*Info(D3)=1/3*0+1/3*0+1/3*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
P={9/11,2/11}
对于集合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
Info(D,温度)=9/11*Info(D1)+2/11*Info(D2)=9/11*0.7642+2/11*1
=0.8071
2,湿度的熵:
按温度将D划分为D1(正常),D2(很大)两个集合
P={6/11,5/11}
对于集合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;
按风力将D划分为D1(中等),D2(没有),D3(很大)三个集合
P={4/11,4/11,3/11}
对于集合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;
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个条件属性,分别为:
温度,风力,使用公式计算各条件属性的熵。
P={4/6,2/6}
对于集合D1(适中)有两个类别不舒适和舒适,其概率分布为P={2/4,2/4},
Info(D1)=-(2/4)log2(2/4)-(2/4log2(2/4)=1
Info(D,温度)=4/6*Info(D1)+2/6*Info(D2)=4/6*1+2/6*1
=1
P={2/6,2/6,2/6}
对于集合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},
(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树生成时出现乱码)