1

我正在尝试使用 C4.5 算法为学校项目创建决策树。决策树为Haberman's Survival Data Set,属性信息如下。

Attribute Information:

1. Age of patient at time of operation (numerical)
2. Patient's year of operation (year - 1900, numerical)
3. Number of positive axillary nodes detected (numerical)
4. Survival status (class attribute)
    1 = the patient survived 5 years or longer
    2 = the patient died within 5 year

我们需要实现一个决策树,其中每个叶子都必须有一个不同的结果(意味着该叶子的熵应该为 0),但是有六个实例具有相同的属性,但结果不同。

例如:

66,58,0,2
66,58,0,1

C4.5算法在这种情况下做了什么,我到处搜索但找不到任何信息。

谢谢。

4

1 回答 1

0

阅读 Quinlan,JR C4.5:机器学习程序。Morgan Kaufmann Publishers,1993 年。(如果你有大学作业,学习 C4.5 会很好)

从我所学的。好像在第 137 页,源代码列表 build.c
有一行
//* if all case are the same.... or there are not enough case to divide(就像你的问题一样)
它将return Node
这个节点来自
Node = Leaf(ClassFreq, BestClass, Cases, Cases-NoBestClass);

ClassFreq 存储每个类的计数
BestClass 存储哪个是主导类(最多频率) Cases 存储有多少数据
NoBestClass 存储 BestClass有多少数据

这个 Leaf 函数来自文件Trees.c这个叶子函数将返回一个叶子为 的节点bestClass (Best class become the leaf)

所有这些信息参考 Quinlan, JR C4.5: Programs for Machine Learning。摩根考夫曼出版社,1993 年。

任何了解这方面的人,如果我做错了什么,请发表评论。谢谢

于 2020-01-23T19:52:59.847 回答