有些參數可用於向分裂算法提供更多信息,以增加(或減少)節點數量。如果您有一個特定的結果,預計錯誤會更加昂貴,那麼您需要爲其指定一個不同的loss
。由於沒有示例數據就沒有測試示例代碼,但「損失」規範的形式是這樣的:
FertilityTree <- rpart(Output~ Age + Surgery + RDrugs + SpermCount +
Smoker,
data = FertilityTree, method = "class",
parms=list(loss=matrix(c(0,1,2,0),2))
我不能保證,這將是可用的,直到SO結束(或宇宙以先到者爲準),但目前你可以找到一個discussion and worked example here.損失矩陣需要正離軸和零軸上元素。還有其他一些參數也可以調整,包括調整'之前'並將分割標準更改爲「信息」。有關這些選項的要求,請參見?rpart
的parms
部分。還可以將拆分標準更改爲用戶提供的版本。特里Therneau posted this in 2011 on Rhelp.
它也可以使用rpart.control
,即與該名稱參數提供一個列表。您可以嘗試rpart.control=list(minsplit=10)
作爲允許進一步拆分的簡單的第一步。更改複雜度參數cp
也可能會產生一些影響。這是從幫助頁面::在Usage
部分
?rpart.control
rpart.control(minsplit = 20, minbucket = round(minsplit/3), cp = 0.01,
maxcompete = 4, maxsurrogate = 5, usesurrogate = 2, xval = 10,
surrogatestyle = 0, maxdepth = 30, ...)
我剛剛看到一個空白頁在http://rpubs.com/BonitaWilliams/fertilitydecisiontree;另外,你可以包括你的'庫'/'需要'語句嗎?數據是現有軟件包的一部分嗎? –
爲什麼應該有更多的節點?如果我正確理解決策樹,決策樹擬合已經決定有足夠的節點來做出最佳決策而不會過度擬合。 – Spacedman