我编写了一个程序,在ID3算法的基础上,使用信息增益函数(Shanon熵)训练决策树,用于特征选择(split)。一旦我训练了一棵决策树,我就对它进行了分类,我意识到有些数据实例不能被分类:树上没有路径来对实例进行分类。
一个示例(这是一个示例,但我遇到了一个更大、更复杂的数据集的相同问题):
a1;a2;a3b1;b2;b3y1;y2;y3
实例("a1", "b3")不能用给定的树进行分类。有几个问题问到我:
发布于 2016-03-16 09:59:48
这种情况不会发生在ID3决策树学习者身上--不管它是使用信息增益还是使用其他启发式来进行拆分选择。(例如,参见维基百科上的ID3算法。)
上面示例中的“经过训练的树”不可能由ID3决策树学习算法返回。
这是因为当算法选择一个d-valued属性(即一个带有d可能值的属性)来分割给定的叶子时,它将创建d新的子属性(每个属性值一个)。特别是,在上面的示例中,节点[f1]将有三个子节点,对应于属性值a1、a2和a3。
从上一段(通常,从ID3算法的工作方式来看),任何格式良好的向量--表单(v1, v2, ..., vn, y),其中vi是i-th属性的值,y是类值--都应该按照算法在给定的训练集上学习的决策树进行分类。
你介意提供一个链接到你用来学习“不完整”树的软件吗?
回答你的问题:
S集x1,x2,...,xn,其中vji是j-th属性的值,yi是示例xi中的类值,学习一个函数(由决策树表示) f: X -> Y,其中X是所有可能的格式良好的向量(即所有可能的属性值组合)的空间,Y是所有可能的类值的空间,该空间最小化了错误函数(例如,错误分类示例的数目)。从这个定义中,您可以看到,函数f需要能够将任何组合映射到类值;因此,根据定义,每个可能的实例都是可以分类的。https://stackoverflow.com/questions/36032127
复制相似问题