5

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

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

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

我正在研究 Play/Dont Play(值表)的示例,但不明白当状态晴天时如何获得属性湿度的数字 75(树生成),因为晴天状态下的湿度值是 { 70,85,90,95}。

有人知道吗?

4

2 回答 2

4

正如您生成的树图像所暗示的那样,您按顺序考虑属性。您的 75 示例属于 Outlook = Sunny 分支。如果根据 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 算法的继承者。它使用信息增益和熵来决定最佳分割。根据维基百科

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.
于 2013-04-19T11:15:57.210 回答
2

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

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

于 2016-01-25T04:47:48.417 回答