在MATLAB中使用二进制训练数据训练决策树

我想在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)。这样,决策树就应该包含是/否决策,而不是数值阈值。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注