use*_*106 4 .net algorithm continuous decision-tree c4.5
我执行C4.5算法的.net,但我没有它是如何交易“连续(数值)数据”明确的想法。有人可以给我更详细的解释吗?
对于连续数据,C4.5 使用阈值,其中小于阈值的所有内容都在左节点中,而大于阈值的所有内容都在右节点中。问题是如何根据您提供的数据创建该阈值。诀窍是按连续变量按升序对数据进行排序。然后遍历数据,选择数据成员之间的阈值。例如,如果属性 x 的数据是:
0.5, 1.2, 3.4, 5.4, 6.0
Run Code Online (Sandbox Code Playgroud)
您首先选择一个介于 0.5 和 1.2 之间的阈值。在这种情况下,我们可以只使用平均值:0.85。现在计算你的杂质:
H(x < 0.85) = H(s) - l/N * H(x<0.85) - r/N * H(x>0.85).
Run Code Online (Sandbox Code Playgroud)
其中 l 是左节点的样本数,r 是右节点的样本数,N 是被分裂节点的样本总数。在我们上面的示例中,x>0.85 作为我们的分割,然后 l=1、r=4 和 N=5。
记住计算的杂质差异,现在计算 2 和 3 之间的分裂(即 x>2.3)。对每个拆分(即 n-1 个拆分)重复此操作。然后选择最小化 H 最多的分割。这意味着你的分裂应该比不分裂更纯粹。如果您无法提高结果节点的纯度,则不要拆分它。您还可以设置最小节点大小,这样您就不会在左侧或右侧节点中只包含一个样本。
| 归档时间: |
|
| 查看次数: |
2649 次 |
| 最近记录: |