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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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