R_ClassificationAndRegressionTrees のバックアップ差分(No.41) - アールメカブ

アールメカブ


R_ClassificationAndRegressionTrees のバックアップ差分(No.41)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
#freeze
''CARS''(Classification And Regression Trees) における
Cost-Complexity Pruning

10-fold cross-validation によって最適な pruning の数を見積もる.

以下は[[Analyzing Linguistic Data:http://www.amazon.co.jp/Analyzing-Linguistic-Data-Introduction-Statistics/dp/0521882591/]] より

英語において与格(〜に)を表現する句として,名詞NP(give the book Tom)と前置詞句PP(give the book to Tom) のどちらが選ばれるのかという課題.RealizationOfRecipientが二値 (N or P) の従属変数である.

 # p.162
 # CARS の実行
 dative.rp <- rpart(RealizationOfRecipient ~ ., 
   data = dative[, -c(1,3)])
 # p.163
 plot(dative.rp, compress = T, branch = 1, margin = 0.1)
 text(dative.rp, use.n = T, pretty = 0)
 # p. 164
 # 10-cross validation を実行してプロットする
 plotcp(dative.rp) # cp

#ref(baayen163.png,center,nowrap,CARSの実行結果)
この図で,横の点線は,最小点の平均から標準誤差一個分を表し,この線より下のcpが適当とみなされる.

# しかし conservative に 0.041 を採用して Tree を作ってみる
 dative.rp1 <- prune(dative.rp , cp = 0.041)
 plot(dative.rp1, compress = T, branch = 1, margin = 0.1)
 text(dative.rp1, use.n = T, pretty = 0)
 dative.rp1
 # p. 165
 head(predict(dative.rp1))
 choiceIsNP <- predict(dative.rp1)[,1] >= 0.5
 preds <- data.frame(obs =  
 dative$RealizationOfRecipient, choiceIsNP) 
 head(preds)
 xtabs(~ obs + choiceIsNP, data = preds)