G和GHAT需要是相同的分类树

能否有人帮助解决并解释我的错误?我有两个用于分类树的数值矩阵

x: 数据矩阵 <2422×39 double>

y: 列向量,每个实例的类标签 <2422×1 double>

我正在做:

t = classregtree(x, y, 'method','classification');yPredicted = eval(t, x);cm = confusionmat(y,yPredicted); // 错误

使用 ==> confusionmat 时出错,错误在第52行

G和GHAT需要是相同类型。

树成功构建。但我无法为该示例获取混淆矩阵

我阅读了该帖子以编写上述代码 Matlab中的决策树

如果我使用链接中的完全相同示例,它可以工作,但当我使用自己的数据时却不工作。我构建回归树时采取了相同的步骤( t = classregtree(x, y) ),并且在confusionmat()函数中没有错误。请解释我做错了什么。

提前感谢


回答:

在我看来,在你的情况下,eval(t,x) 返回的是字符类型单元,而你的x和y是“double”类型而不是“char”。

Matlab中的决策树中的代码之所以能工作,是因为:

y = strcat(Origin,{});

返回的y是一个包含“char”的单元。因此参数G和GHAT具有相同类型。

所以,选择适合你问题的方案:


方法A:将yPredicted转换为数值矩阵

编辑这行代码:

yPredicted = eval(t, x);

为:

yPredicted = str2num( cell2mat( eval(t, x) ) );

方法B:在调用confusionmat()之前将y转换为字符单元

 y = num2cell( num2str(y) )

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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