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) は、予測子 X の関数として応答 Y を予測するための決定木 T を作成します。X は、予測子値の N 行 M 列の行列です。Y が N 個の応答値のベクトルである場合、

たとえば、X はトレーニング データ、Y はトレーニング データのラベルです。したがって、X が N x M の場合、Y は N x 1 になります。

その後、「eval」を使用して新しいデータでツリーを実行できます

于 2012-11-24T17:57:48.177 に答える