我想在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 ... [till 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 ... [till 239]
....
问题是这个数据对应的表单只有yes / no选项。表格的结果也是二元的,并且意味着patinet有一些医学障碍!我们使用了分类树,分类器显示了我们的双数。例如,它根据大于0.75的x137值分支第一个节点!由于我们的数据中没有0.75且没有“是/否”,我们希望使用最适合我们工作的决策树。对我们来说,最好的决策树是基于布尔变量而非双重变量训练的树。它也理解数据不是连续的,例如,代替上面的表示,显示x137是是或否(1或0)。有人可以帮我弄这个吗?如果布尔决策树不适用,我还要感谢将数据映射到双变量和特征的解决方案。我目前在matlab中使用classregtree,其中< 87 * 237>作为火车和< 87 * 1>作为结果。
答案 0 :(得分:2)
classregtree
有一个可选的输入参数categorical
。使用此选项,您可以传入一个向量,指示您的哪些输入变量是分类的(在您的情况下,此向量将为1x239,全部为1)。然后,决策树应包含是/否决策而不是数字阈值。
答案 1 :(得分:0)
在classregtree的帮助下:
t = classregtree(X,y)创建一个决策树t,用于预测响应y作为X列中预测变量的函数.X是预测值的n×m矩阵。如果y是n个响应值的向量,则classregtree执行回归。如果y是分类变量,字符数组或字符串的单元格数组,则classregtree执行分类。
你的情况是什么类型的y?似乎classregtree在你的情况下做回归,但你想要分类。所以,y应该是一个分类变量。
编辑:要使你的y分类,你可以尝试“名义(y)”。