首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Python语言从头开始实现决策树Id3算法

用Python语言从头开始实现决策树Id3算法
EN

Stack Overflow用户
提问于 2018-12-15 18:48:03
回答 1查看 3.7K关注 0票数 0

我刚刚开始学习机器学习,我正在学习决策树,我正试图用.I从头开始实现它。实际上,我在这个网站上解释了python代码。(https://www.python-course.eu/Decision_Trees.php)

但是我不能理解

代码语言:javascript
运行
复制
        tree = {best_feature:{}}

部分意思是。它是一本字典还是熊猫图书馆的一部分?此外,如果有人解释这一部分,那将是一个很大的帮助。

代码语言:javascript
运行
复制
     parent_node_class = np.unique(data[target_attribute_name])[np.argmax(np.unique(data[target_attribute_name],return_counts=True)[1])]

我所理解的是,这行代码从目标属性中查找出现频率最高的值。这是正确的吗?如果是这样,目标属性如何成为父节点?它不应该是信息增益最好的功能吗?

此外,请建议一些网站,有一个更简单的算法实现。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-05 00:36:17

我的答案将与您使用的编程语言无关。

首先,我们必须有一组数据,其中每个列名代表一个属性,通常最后一列或属性是该行的决策或结果。

该算法的目标是构建一棵树,其中第一个节点是最有用的问题(获得更大的信息)。但为了决定哪一个是最优的,必须计算每个属性的熵。

所以第一步是知道根属性是什么。为此,他必须提取每个属性的熵,并制定相应的数学公式,以便能够获得信息增益。这是为了在这次迭代中比较所有人中哪一个具有更大的信息增益,因此将是根。

下面是每个属性如何拥有选项,例如: Sky (Sunny,Rainy,Cloudy),然后它将做的是计算每个属性选项加上其他属性的信息增益。为了更清楚,他在数据集中查找所有记录,例如: Sunny + all temperature,Sunny + all of Rainy。但是,如果该选项的熵为0,则不需要再问任何问题。

对于你问的问题,答案是这个属性对应于最好的特性。换句话说,具有最高信息增益的功能,因此我最受益的功能,首先询问它。

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

https://stackoverflow.com/questions/53791645

复制
相关文章

相似问题

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