Matlab でヘルプを見ましたが、「classregtree」関数でパラメーターを使用する方法を説明せずに例を提供しています。パラメータを使用した「classregtree」の使用を説明する助けがあれば幸いです。
user238469
質問する
50117 次
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 のClassificationTree
andRegressionTree
クラスに置き換えられました ( R2014a の新機能fitctree
andfitrtree
関数を参照)。
新しい関数/クラスを使用した更新された例を次に示します。
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 に答える