MATLAB:X和Y没有相同的观察数。(错误)classregtree()

时间:2012-11-24 10:59:42

标签: matlab classification

我试图使用函数classregtree来构建树。 classTrain是一个包含2个字符串值的单元格数组。我使用grp2idx()函数来索引字符串,而不使用此函数会导致错误"X must be a matrix of floating-point numbers."。现在我有training_data = 200x1和test_data = 1800x1,我得到了这个错误"X and Y do not have the same number of observations."我随机生成的训练和测试数据。

也许有人知道如何解决这个问题?

classTrain = {};
        classTest = {};
        for ind = trainInd  
            classTrain{end+1} = class{ind};
        end
        for ind = testInd
            classTest{end+1} = class{ind};
        end


        %1) building tree
        training_data = grp2idx(classTrain);
        test_data = grp2idx(classTest);
    >>>> t = classregtree(training_data', test_data',  'method','classification' , 'prune', 'off', 'splitmin', 2);

1 个答案:

答案 0 :(得分:1)

正如帮助条目所示:

classregtree创建分类和回归树对象。     T = classregtree(X,Y)创建用于预测响应的决策树T.     Y作为预测变量X的函数.X是预测器的N×M矩阵     值。如果Y是N个响应值的向量,

例如,X应该是训练数据,Y是训练数据的标签。因此,如果X是N乘以M,则Y应为N x 1.

然后,您可以使用“eval”

在新数据上运行树