Artificial intelligence 如何计算Quinlan'中数值属性的阈值;s C4.5算法?

Artificial intelligence 如何计算Quinlan'中数值属性的阈值;s C4.5算法?,artificial-intelligence,weka,decision-tree,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+

我试图找到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作为阈值,而不是中点本身

我正在研究Play/not Play()的一个示例,不理解在阳光明媚的状态下,如何获得属性湿度的数字75(),因为​​晴朗状态的湿度为{70,85,90,95}


有人知道吗?

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

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.

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


昆兰关于C4.5的书是一个很好的起点()。具体请参见第25页。

感谢您的回复。是的,我同意你写的表格。但问题是数字75在哪里?你如何用这些值得到数字75​​湿度(设置:{70,85,90,95})?这个例子来自哪本教科书?似乎70应该是分割值。有不同的方法来计算阈值吗?看看互联网上的这个例子:在下面的值表中([数据]:)​​以下树中的结果:[arbol]:。该示例显示了Att1为A时的阈值=70。但与Quinlan算法相同的示例显示的阈值为75。如何计算这个值?我不知道选择阈值的最佳方法。你必须从培训数据中学习,这样我就不会太在意教科书/网站上说的话。这是我所知道的最早提到的:Usama M.Fayyad,Keki B.Irani:关于决策树生成中连续值属性的处理。机器学习8:87-102(1992)。它早于C4.5。与数字的链接已断开。