首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ID3实施澄清

ID3实施澄清
EN

Stack Overflow用户
提问于 2015-12-28 12:57:39
回答 2查看 385关注 0票数 0

我正在尝试实现ID3算法,并查看伪代码:

(来源)

我对下面这句话感到困惑:

如果examples_vi是空的,那么在示例中创建一个带有label = TargegetAttribute中最常见值的叶节点。

除非我错过了什么,否则这不是最普通的课吗?

也就是说,如果我们不能分割属性值上的数据,因为没有任何样本接受特定属性的值,那么我们在所有样本中取最常见的类并使用它?

而且,这不就像随机选择一个类一样好吗?

训练集没有告诉我们属性值和类标签之间的关系.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-28 13:25:50

( 1)除非我错过了什么,否则这不是最常见的课吗?

你说得对,课文也是这么说的。查看顶部的函数描述:

代码语言:javascript
复制
Target_Attribute is the attribute whose value is to be predicted by the tree

因此,Target_Attribute 的值是(类/标签)。

2)也就是说,如果我们不能分割属性值上的数据,因为没有任何样本为特定属性获取该值,那么我们会在所有样本中选择最常见的类并使用它?

是的,但不是中的所有样本在整个数据集中,而是在树/递归中达到这个点的样本。(ID3函数是递归的,因此当前的Examples实际上是调用方的Examples_vi )

3)而且,这不就像选一个随机的类一样好吗?训练集没有告诉我们属性值和类标签之间的关系.

不,选择一个随机的类(每个班级的机会均等)并不是一回事。因为输入通常有一个不平衡的类分布(这种分布在许多文本中通常被称为先验分布),所以您可能有99%的示例是正的,而只有1%的是负的。因此,当你真的没有任何信息来决定某个输入的结果时,预测最可能的类是有意义的,这样你就有最大的可能是正确的。这将提高分类器对未见数据的准确性,但前提是培训数据中的类分布与未见数据中的类分布相同。

Attributes为空(请参阅伪代码文本中的4行)时,这种解释也适用于基本情况;当我们没有信息时,我们只报告手头数据中最常见的类。

票数 1
EN

Stack Overflow用户

发布于 2016-10-19 03:40:47

如果您从未实现代码(ID3),但仍想了解更多的处理细节,我建议您阅读本文:

用Python构建决策树 --这里是文件的源代码:决策树源代码 --本文有一个示例或使用您的书中的示例(用相同的格式替换"data“文件)。您可以在eclipse中调试它(带有一些断点),以检查算法运行期间的属性值。仔细看一下,你会更好地理解ID3的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34493957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档