Java ID3决策树澄清
我目前正在实现一个ID3算法。我已经看过了经典的play tennis示例,但是我似乎无法理解为什么属性温度被排除在最后一个树之外。有人能解释为什么会这样吗 数据集 最终决策树 以下三种情况之一的饰面:Java ID3决策树澄清,java,decision-tree,Java,Decision Tree,我目前正在实现一个ID3算法。我已经看过了经典的play tennis示例,但是我似乎无法理解为什么属性温度被排除在最后一个树之外。有人能解释为什么会这样吗 数据集 最终决策树 以下三种情况之一的饰面: 子集中的每个元素都属于同一个类(+或-),然后将节点变成一个叶,并用示例类标记 没有更多的属性可供选择,但示例仍然不属于同一类(有些是+,有些是-),然后将节点变为叶,并用子集中最常见的示例类进行标记 子集中没有示例,当发现父集合中没有与选定属性的特定值匹配的示例时(例如,如果没有年龄>=1
- 子集中的每个元素都属于同一个类(+或-),然后将节点变成一个叶,并用示例类标记
- 没有更多的属性可供选择,但示例仍然不属于同一类(有些是+,有些是-),然后将节点变为叶,并用子集中最常见的示例类进行标记
- 子集中没有示例,当发现父集合中没有与选定属性的特定值匹配的示例时(例如,如果没有年龄>=100的示例),就会发生这种情况。然后创建一个叶,并用父集合中最常见的示例类进行标记
例如,前景:晴朗,湿度:高/正常。有三排“高”排,他们都对网球说不。因此,出现了第一个场景,可以创建叶子。有更多的信息,但不需要它来做出决定。ID3树的创建是如何工作的? 首先要做的是去掉每个属性的信息增益。但有一条规则是,你可能在跳,这是: -对正数和负数的分析。如果结果是所有具有该属性的记录都只有正值或负值。你不需要再问了 知道这条规则解释了为什么在温度的情况下,我没有不断地添加分支 但是,如果在计算行时有正面和负面的结果,您需要问另一个问题,例如,您将查看所有可能的组合,例如晴天与阴天或下雨,并且信息增益最高的一个将被放置为该分支的子级 该过程将一直执行,直到您发现所有行都只有负值或正值。当它通过时,它会将结果定义为一张工作表 另外,必须指出,树的增长取决于数据集的行数 我用javascript实现了ID3,我离开了它所在的存储库