如何在C4.5算法处理连续数据?(How does the C4.5 Algorithm handl

2019-08-18 00:28发布

我执行C4.5算法在.net ,但我没有它是如何交易“连续(数值)数据”明确的想法。 可能有人给我一个更详细的解释?

Answer 1:

对于连续数据C4.5使用的阈值,其中一切小于所述阈值是在左节点,并且一切大于阈值推移在正确的节点。 现在的问题是如何从数据你考虑到阈值。 诀窍有升序排列的连续变量对数据进行排序。 然后遍历数据采集的数据成员之间的阈值。 例如,如果你的属性x上的数据是:

0.5, 1.2, 3.4, 5.4, 6.0

你第一挑0.5和1.2之间的阈值。 在这种情况下,我们可以只使用平均:0.85。 现在计算您的杂质:

H(x < 0.85) = H(s) - l/N * H(x<0.85) - r/N * H(x>0.85).

其中l是在左节点的样本的数目,r是在右节点的样本的数目,并且N是样品中的节点被分割的总数。 在上面的例子,其中x> 0.85作为我们的分割则L = 1,R = 4,N = 5。

记计算出的杂质差,现在计算它2和3之间(即,X> 2.3)的分裂。 重复,每分(即N-1分裂)。 然后挑选最小小时最分裂。 这意味着您的拆分应该比不分裂更纯净。 如果不能提高纯度得到的节点,那么请不要把它分解。 您也可以有一个最小的节点大小,所以你不要用含唯一一个在他们样本向左或向右节点结束。



文章来源: How does the C4.5 Algorithm handle continuous data?