1 / 18
文档名称:

决策树程序实验.docx

格式:docx   大小:103KB   页数:18页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

决策树程序实验.docx

上传人:niupai11 2022/7/17 文件大小:103 KB

下载得到文件列表

决策树程序实验.docx

相关文档

文档介绍

文档介绍:决策树程序实验
众所周知,数据库技术从20世纪80年代开始,已经得到广泛的普及和应用。 随着数据库容量的膨胀,特别是数据仓库以及web等新型数据源的日益普及,人 们面临的主要问题不再是缺乏足够的信息可以使用,而是面对浩瀚的数据海洋如 何有,以samples中最普遍的类标记;〃多数表决
(6) 选择attribute_list中具有最高信息增益的属性test_attribute;
(7) 以 test_attribute 标记节点 N;
(8) For each test_attribute 的已知值 v 〃划分 samples
(9) 由节点N分出一个对应test_attribute=v的分支;
(10) 令Sv为samples中test_attribute=v的样本集合;〃一个划分 块
(11) If Sv 为空 then
(12) 加上一个叶节点,以samples中最普遍的类标记;
(13) Else 加入一个由 Decision_Tree(Sv,
attribute_list—test_att rib ute)返回节点值
E(S)=( —9\15)log2(9\15)-(6\15)log2(6\15)=
Values (收入范围)={20—30K, 30—40k, 40—50K,50-60K }
E(S(20-30K))= (-2\4)log2(2\4)- (2\4)log2(2\4)=1
E (S(30-40K)) = (-4\5)log2(4\5)- (1\5) log2(l\5)=0。7219
E(S(40—50K))= (—1\4)log2(1\4)- (3\4)log2(3\4)= E(S(50—60K))= (—2\2)log2 (2\2)— (0\2)log2(0\2)=0 所以
E(S,收入范围)=(4/15) E (S(20-30K)) + (5/15) E (S(30—40K)) +(4/15) E (S(40—50K)) +(2/15) E (S(50-60K))=0。7236
Gain (S,收入范围)=0。971-0。7236= 同理:计算“保险",“性别”,“年龄”的信息增益为:
E (S)= (—9\15) log2 (9\15)-(6\15)log2 (6\15) =0。971
Insurance (保险)={yes, no}
E(S( yes))= (—3\3)log2 ( 3\3)- (0\3)log2(0\3)=0
E(S(no))= (-6\12)log2 (6\12)- (6\12)log2(6\12)=1
E( S, 保险)=( 3/15) E( S(yes)) +( 12/15) E(S(no)) = Gain(S, 保险)=0。971—0。8=
E(S)=( -9\15)log2( 9\15)—( 6\15)log2( 6\15)=0。971
sex (性别)={male, female}
E(S(male)) = (—3\7)log2 (3\7)— (4\7) log2 (4\7)=0。9852
E(S( female) )= (—6\8)log2 (6\8)- ( 2\8) log2(2\8)=0。 8113
E( S, 性别) =(7/15) E( S( male)) +(8/15) E( S(female)) =0。 8925 Gain( S, 性别)=0。 971-=0。 0785
E(S)=( -9\15)log2( 9\15)-( 6\15) log2(6\15)=0。 971
age (年龄)={15〜40, 41 〜60}
E (S (15〜40) )= (-6\7) log2 (6\7) — (1\7)log2(1\7) =0。5917
E(S(41 〜60)) = (-3\8) log2 (3\8)— (5\8) log2(5\8)=0。 9544
E(S, 年龄)=(7/15) E(S(15〜40)) +(8/15) E(S(41 〜60) ) = Gain(S, 年龄)=—0。 7851=
代码
package DecisionTree;
import 。ArrayList;
/**
* 决策树结点类
*/
public class TreeNode {
private String name; //节点名(分裂属性的名称)
private ArrayList〈String〉 rule; //结点的分裂规则
ArrayList〈TreeNode> chi