13

R で rpart を使用して分類を行っています。ツリー モデルは次の方法でトレーニングされます。

> tree <- rpart(activity ~ . , data=trainData)
> pData1 <- predict(tree, testData, type="class")

このツリー モデルの精度は次のとおりです。

> sum(testData$activity==pData1)/length(pData1)
[1] 0.8094276

クロス検証によってツリーを剪定するチュートリアルを読みました。

> ptree <- prune(tree,cp=tree$cptable[which.min(tree$cptable[,"xerror"]),"CP"])
> pData2 <- predict(ptree, testData, type="class")

剪定された木の正解率は同じです。

> sum(testData$activity==pData2)/length(pData2)
[1] 0.8094276

剪定した木のどこが悪いのか知りたいですか?また、R でクロス検証を使用してツリー モデルをプルーニングするにはどうすればよいでしょうか? ありがとう。

4

1 に答える 1

16

最小交差検証エラー ツリーを使用しました。別の方法として、最適なツリー (選択しているツリー) の 1 標準誤差内にある最小のツリーを使用することもできます。この理由は、誤差の CV 推定値が与えられた場合、1 標準誤差内の最小のツリーは、最良の (最小の CV 誤差) ツリーと同じくらい良い予測を行っているにもかかわらず、より少ない「項」でそれを行っているためです。 "。

枝刈りされていないツリーのコスト複雑性とツリー サイズを次の方法でプロットします。

plotcp(tree)

誤差が最小のツリーの左側で、cp 値が誤差が最小のツリーのエラー バー内にあるツリーを見つけます。

剪定がフィットしたツリーに影響を与えない理由はたくさんあります。たとえば、最適なツリーは、 で指定された停止規則に従ってアルゴリズムが停止したツリーである可能性があります?rpart.control

于 2013-03-10T03:22:00.677 に答える