Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ID3决策树澄清_Java_Decision Tree - Fatal编程技术网

Java ID3决策树澄清

Java ID3决策树澄清,java,decision-tree,Java,Decision Tree,我目前正在实现一个ID3算法。我已经看过了经典的play tennis示例,但是我似乎无法理解为什么属性温度被排除在最后一个树之外。有人能解释为什么会这样吗 数据集 最终决策树 以下三种情况之一的饰面: 子集中的每个元素都属于同一个类(+或-),然后将节点变成一个叶,并用示例类标记 没有更多的属性可供选择,但示例仍然不属于同一类(有些是+,有些是-),然后将节点变为叶,并用子集中最常见的示例类进行标记 子集中没有示例,当发现父集合中没有与选定属性的特定值匹配的示例时(例如,如果没有年龄>=1

我目前正在实现一个ID3算法。我已经看过了经典的play tennis示例,但是我似乎无法理解为什么属性温度被排除在最后一个树之外。有人能解释为什么会这样吗

数据集

最终决策树

以下三种情况之一的饰面:

  • 子集中的每个元素都属于同一个类(+或-),然后将节点变成一个叶,并用示例类标记
  • 没有更多的属性可供选择,但示例仍然不属于同一类(有些是+,有些是-),然后将节点变为叶,并用子集中最常见的示例类进行标记
  • 子集中没有示例,当发现父集合中没有与选定属性的特定值匹配的示例时(例如,如果没有年龄>=100的示例),就会发生这种情况。然后创建一个叶,并用父集合中最常见的示例类进行标记

例如,前景:晴朗,湿度:高/正常。有三排“高”排,他们都对网球说不。因此,出现了第一个场景,可以创建叶子。有更多的信息,但不需要它来做出决定。

ID3树的创建是如何工作的?

首先要做的是去掉每个属性的信息增益。但有一条规则是,你可能在跳,这是: -对正数和负数的分析。如果结果是所有具有该属性的记录都只有正值或负值。你不需要再问了

知道这条规则解释了为什么在温度的情况下,我没有不断地添加分支

但是,如果在计算行时有正面和负面的结果,您需要问另一个问题,例如,您将查看所有可能的组合,例如晴天与阴天或下雨,并且信息增益最高的一个将被放置为该分支的子级

该过程将一直执行,直到您发现所有行都只有负值或正值。当它通过时,它会将结果定义为一张工作表

另外,必须指出,树的增长取决于数据集的行数

我用javascript实现了ID3,我离开了它所在的存储库