如何计算Quinlan C4.5算法中数值属性的阈值?

时间:2013-04-19 04:25:37

标签: artificial-intelligence weka decision-tree

我试图找出C4.5算法如何确定数字属性的阈值。我已经研究过,无法理解,在大多数地方我都找到了这个信息:

  

首先根据所考虑的属性Y的值对训练样本进行排序。这些值只有有限数量,所以让我们按照{v1,v2,...,vm}的排序顺序表示它们。   位于vi和vi + 1之间的任何阈值将具有相同的效果,即将案例划分为属性Y的值位于{v1,v2,...,vi}的值和值为{vi + 1,vi的值+ 2,...,vm}。因此在Y上只有m-1个可能的分裂,所有这些分裂都应该系统地检查以获得最佳分裂。

     

通常选择每个区间的中点:(vi + vi + 1)/ 2作为代表性阈值。 C4.5为每个区间{vi,vi + 1}选择一个较小的值vi作为阈值,而不是中点本身。

我正在研究播放/不播放(value table)的示例,并且当状态为晴天时,您不明白如何获得属性湿度的数字75(tree generated)因为值湿度到阳光充足的状态是{70,85,90,95}。

有人知道吗?

2 个答案:

答案 0 :(得分:4)

如您生成的树图像所示,您可以按顺序考虑属性。你的75例子属于outlook = sunny branch。如果您根据outlook = sunny过滤数据,则可以获得下表。

outlook temperature humidity    windy   play
sunny   69           70         FALSE   yes
sunny   75           70         TRUE    yes
sunny   85           85         FALSE   no
sunny   80           90         TRUE    no
sunny   72           95         FALSE   no

如您所见,对于这种情况,湿度阈值“<75”。

j4.8是ID3 algorithm的继承者。它使用信息增益和熵来决定最佳分裂。根据维基百科

The attribute with the smallest entropy 
is used to split the set on this iteration. 
The higher the entropy, 
the higher the potential to improve the classification here.

答案 1 :(得分:2)

我对J48并不完全确定,但假设它基于C4.5,它将计算所有可能分裂的增益(即,基于特征的可能值)。对于每个拆分,它计算信息增益并选择具有最多信息增益的拆分。在{70,85,90,95}的情况下,它将计算{70 | 85,90,95}与{70,85 | 90,95}对{70,85,90 | 95}的信息增益选择最好的一个。

Quinlan关于C4.5的书是一个很好的起点(https://goo.gl/J2SsPf)。特别参见第25页。