我刚刚开始学习机器学习,我正在学习决策树,我正试图用.I从头开始实现它。实际上,我在这个网站上解释了python代码。(https://www.python-course.eu/Decision_Trees.php)
但是我不能理解
tree = {best_feature:{}}
部分意思是。它是一本字典还是熊猫图书馆的一部分?此外,如果有人解释这一部分,那将是一个很大的帮助。
parent_node_class = np.unique(data[target_attribute_name])[np.argmax(np.unique(data[target_attribute_name],return_counts=True)[1])]
我所理解的是,这行代码从目标属性中查找出现频率最高的值。这是正确的吗?如果是这样,目标属性如何成为父节点?它不应该是信息增益最好的功能吗?
此外,请建议一些网站,有一个更简单的算法实现。
发布于 2019-01-05 00:36:17
我的答案将与您使用的编程语言无关。
首先,我们必须有一组数据,其中每个列名代表一个属性,通常最后一列或属性是该行的决策或结果。
该算法的目标是构建一棵树,其中第一个节点是最有用的问题(获得更大的信息)。但为了决定哪一个是最优的,必须计算每个属性的熵。
所以第一步是知道根属性是什么。为此,他必须提取每个属性的熵,并制定相应的数学公式,以便能够获得信息增益。这是为了在这次迭代中比较所有人中哪一个具有更大的信息增益,因此将是根。
下面是每个属性如何拥有选项,例如: Sky (Sunny,Rainy,Cloudy),然后它将做的是计算每个属性选项加上其他属性的信息增益。为了更清楚,他在数据集中查找所有记录,例如: Sunny + all temperature,Sunny + all of Rainy。但是,如果该选项的熵为0,则不需要再问任何问题。
对于你问的问题,答案是这个属性对应于最好的特性。换句话说,具有最高信息增益的功能,因此我最受益的功能,首先询问它。
https://stackoverflow.com/questions/53791645
复制相似问题