1

我试图使用函数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);
4

1 回答 1

1

正如帮助条目所说:

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

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

然后,您可以使用“eval”在新数据上运行树

于 2012-11-24T17:57:48.177 回答