簡體   English   中英

R使用cforest的隨機森林,如何繪制樹

[英]R random forest using cforest, how to plot tree

我使用cforest創建了隨機森林模型

library("party")    
crs$rf <- cforest(as.factor(Censor) ~ .,
  data=crs$dataset[crs$sample,c(crs$input, crs$target)],
  controls=cforest_unbiased(ntree=500, mtry=4))
cf <- crs$rf 
tr <- party:::prettytree(cf@ensemble[[1]], names(cf@data@get("input")))  
#tr

plot(new("BinaryTree", tree=tr, data=cf@data, responses=cf@responses))

繪制樹時出現錯誤

錯誤:沒有為“strwidth/height”單位提供字符串

任何幫助如何克服這個錯誤?

查看您的代碼,我假設 crs 指的是數據框。 美元符號可能是個問題(特別是 crs$rf)。 如果 crs 確實是一個數據框,那么 $ 將告訴 R 通過使用通常的列表索引設備從數據框內提取項目。 這可能與生成隨機森林的調用相沖突,並導致錯誤。 您可以通過以下方式解決此問題:

crs_rf <- cforest(as.factor(Censor) ~ ., .....

這將創建隨機森林對象。 這將取代:

crs$rf <- cforest(as.factor(Censor) ~ ., ......

作為參考,如果這不能解決問題,我想向您推薦一個來自斯坦福的很棒的指南,該指南涵蓋了隨機森林 他們確實有示例展示如何使用派對包。 為了使故障排除更容易,我可能會建議像他們在指南中那樣分開通話。 例如(取自提供的指南),首先,設置控件:

data.controls <- cforest_unbiased(ntree=1000, mtry=3) 

然后撥打電話:

data.cforest <- cforest(Resp ~ x + y + z…, data = mydata, controls=data.controls)

然后在調用成功后生成繪圖。 如果您需要幫助使用 cforest() 繪制樹,您可能會考慮查看這個優秀的資源(因為我相信問題的根源在於您的繪圖函數調用): http ://www.r-bloggers.com/a -簡要游覽樹木和森林/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM