我想在MATLAB中使用二进制数据训练决策树。以下是我使用的样本数据。traindata <87*239> [包含239个特征的数据数组]
1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 ... [至239]1 1 1 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 ... [至239]....
这些数据对应于一个仅有是/否选项的表格。表格的结果也是二进制的,表示患者是否有某种医学障碍!我们使用了分类树,但分类器显示的是双精度数。例如,它根据x137的值是否大于0.75来分支第一个节点!由于我们的数据中没有0.75,并且它没有是/否的意义,我们希望使用最适合我们工作的决策树。我们理想的决策树是基于布尔变量而不是双精度数进行训练的。它还应该理解数据不是连续的,例如,不是以上表示方式,而是显示x137是是还是否(1或0)。谁能帮我解决这个问题?我也希望得到一个解决方案,将我们的数据映射到双精度变量和特征上,如果布尔决策树不适用的话。我目前在MATLAB中使用classregtree,训练数据为<87*237>,结果为<87*1>。
回答:
classregtree
有一个可选的输入参数categorical
。使用这个选项,你可以传入一个向量,指示哪些输入变量是分类变量(在你的情况下,这个向量应该是1×239,全是1)。这样,决策树就应该包含是/否决策,而不是数值阈值。