11

Matlab でヘルプを見ましたが、「classregtree」関数でパラメーターを使用する方法を説明せずに例を提供しています。パラメータを使用した「classregtree」の使用を説明する助けがあれば幸いです。

4

1 に答える 1

34

関数classregtreeのドキュメントページは自明です...

分類ツリー モデルの最も一般的なパラメーターのいくつかを見てみましょう。

  • x : データ行列、行はインスタンス、列は予測属性
  • y : 列ベクトル、各インスタンスのクラス ラベル
  • categorical : どの属性が離散型であるかを指定します (連続ではなく)
  • method : 分類木または回帰木を生成するかどうか (クラス タイプに依存)
  • names : 属性に名前を付けます
  • prune : エラー削減プルーニングを有効/無効にします
  • minparent/minleaf : ノードをさらに分割する場合、ノード内のインスタンスの最小数を指定できます
  • nvartosample : ランダム ツリーで使用されます (各ノードで K 個のランダムに選択された属性を考慮します)
  • weights : 重み付けされたインスタンスを指定します
  • cost : コスト マトリックスを指定します (さまざまなエラーのペナルティ)
  • splitcriterion : 各分割で最適な属性を選択するために使用される基準。私が知っているのは、情報獲得基準のバリエーションであるジニ指数だけです。
  • Priorprob : トレーニング データから計算するのではなく、事前のクラス確率を明示的に指定します。

プロセスを説明する完全な例:

%# load data
load carsmall

%# construct predicting attributes and target class
vars = {'MPG' 'Cylinders' 'Horsepower' 'Model_Year'};
x = [MPG Cylinders Horsepower Model_Year];  %# mixed continous/discrete data
y = cellstr(Origin);                        %# class labels

%# train classification decision tree
t = classregtree(x, y, 'method','classification', 'names',vars, ...
                'categorical',[2 4], 'prune','off');
view(t)

%# test
yPredicted = eval(t, x);
cm = confusionmat(y,yPredicted);           %# confusion matrix
N = sum(cm(:));
err = ( N-sum(diag(cm)) ) / N;             %# testing error

%# prune tree to avoid overfitting
tt = prune(t, 'level',3);
view(tt)

%# predict a new unseen instance
inst = [33 4 78 NaN];
prediction = eval(tt, inst)    %# pred = 'Japan'

木


アップデート:

上記のclassregtreeクラスは廃止され、R2011a のClassificationTreeandRegressionTreeクラスに置き換えられました ( R2014a の新機能fitctreeandfitrtree関数を参照)。

新しい関数/クラスを使用した更新された例を次に示します。

t = fitctree(x, y, 'PredictorNames',vars, ...
    'CategoricalPredictors',{'Cylinders', 'Model_Year'}, 'Prune','off');
view(t, 'mode','graph')

y_hat = predict(t, x);
cm = confusionmat(y,y_hat);

tt = prune(t, 'Level',3);
view(tt)

predict(tt, [33 4 78 NaN])
于 2009-12-25T07:47:53.923 に答える