数值数据集的决策树叶子节点条件

时间:2019-12-13 15:01:13

标签: python machine-learning random-forest decision-tree

我被要求实现一个随机森林分类器,据我了解,它只是一堆决策树,在训练后对测试树进行测试,然后通过所有树的多数表决确定分类。< / p>

这一切都很好,我什至理解熵决定了接下来要使用的功能。我正在努力理解的是,对于数值数据,我该如何确定条件

一个例子是一个人是否会根据天气状况打高尔夫球。给定3个功能(外观,湿度,风)和分类标签(播放->是或否),我们首先从外观开始:

Outlook->阴(纯),晴天,下雨

在“晴天”中,选择“湿度”:高,正常(纯净)

从Outlook到Rain,选择“风”(最后一个功能):“弱”(纯),“强”

本质上,在这种情况下,要素的值是单独获取的。但是,当我有一个带有一堆小数的数据集时会发生什么?

(某些)数据:

enter image description here

在这种情况下,我将从首先查看标签(0或1)开始,然后发展到每个标签中熵最高的特征。但是我怎么知道去叶子节点的条件呢?甚至,父母有几个孩子? 一个可怜的图表可以回答我的问题:

enter image description here

1 个答案:

答案 0 :(得分:0)

要从理论上回答您的问题,我将从推荐这个出色的视觉教程开始。

http://www.r2d3.us/visual-intro-to-machine-learning-part-1/

在实现方面,有几种方法可以使用。您可以尝试以下算法(受this的启发):

对于数据集中的每一列(功能),请先对其进行排序。在您更改班级的每个地方,请分割您的数据集。例如,假设特征A等于5时,您的数据点从0类变为1。所有A <5的数据点都属于0类,而A> 5的数据点都属于1类。如果您的数据集不是那么简单,则可以按照处理分类决策树的方式进行处理,例如,通过计算每个拆分候选者的熵。然后,您计算到达每个子节点的数据点,然后递归进行。