0

rpart を使用して、選択関数に oneSE オプションを使用して、caret パッケージ内で回帰ツリー分析を実行しています。そうするとき、多くの場合、分割がゼロのモデルになってしまいます。どのモデルよりも優れたモデルはないことを示唆しています。これは起こっているべきですか?

次に例を示します。

# set training controls
tc <- trainControl("repeatedcv", repeats=100, selectionFunction="oneSE", num=10)

# run the model
mod <- train(yvar ~ ., data=dat, method="rpart", trControl=tc)

# it runs.....
# look at the cptable of the final model
printcp(mod$finalModel)

モデル出力は次のとおりです。

> mod
No pre-processing
Resampling: Cross-Validation (10 fold, repeated 100 times) 

Summary of sample sizes: 81, 79, 80, 80, 80, 80, ... 

Resampling results across tuning parameters:

  cp      RMSE   Rsquared  RMSE SD  Rsquared SD
  0.0245  0.128  0.207     0.0559   0.23       
  0.0615  0.127  0.226     0.0553   0.241      
  0.224   0.123  0.193     0.0534   0.195      

RMSE was used to select the optimal model using  the one SE rule.
The final value used for the model was cp = 0.224. 

printcp の出力は次のとおりです。

Variables actually used in tree construction:

character(0)
Root node error: 1.4931/89 = 0.016777
n= 89 
CP nsplit rel error
1 0.22357      0         1

ただし、モデルを直接 rpart で実行すると、上記のおそらくより倹約的なモデルにトリミングされた、より大きな剪定されていないツリーが表示されます。

unpruned = rpart(yvar ~., data=dat)
printcp(unpruned)

Regression tree:
rpart(formula = yvar ~ ., data = dat)

Variables actually used in tree construction:
[1] c.n.ratio Fe.ppm    K.ppm     Mg.ppm    NO3.ppm  

Root node error: 1.4931/89 = 0.016777

n= 89 

    CP nsplit rel error xerror    xstd
1 0.223571      0   1.00000 1.0192 0.37045
2 0.061508      2   0.55286 1.1144 0.33607
3 0.024537      3   0.49135 1.1886 0.38081
4 0.010539      4   0.46681 1.1941 0.38055
5 0.010000      6   0.44574 1.2193 0.38000

キャレットは、RMSE が最小のモデルの 1 SD 以内にある最小のツリーを見つけようとしています。これは、Venebles と Ripley で提唱されている 1-SE アプローチに似ています。この場合、説明力がないにもかかわらず、分割のないモデルを選択するのは行き詰まっているようです。

これは正しいですか?これでよろしいですか?分割のないモデルの選択を禁止するルールが必要なようです。

4

1 に答える 1

0

を排除してみてくださいselectionFunction="oneSE"

これにより、可能な限り最小のエラーで深度が特定されるはずです。そうすることで、観測された最小の RMSE を選択することによる「最適化バイアス」の可能性がありますが、実際には小さいことがわかりました。

マックス

于 2013-10-31T19:15:09.980 に答える