我對派對包中的varimp()
函數的行爲感到困惑。varimp(R方)僅返回零
我使用條件隨機森林來獲得變量的重要性後Strobl等人。 2009年的建議。
它適用於我所有的數據集,但只有一個。我必須將我的觀察歸納爲這一個。 但是,即使條件隨機森林正常運行在整個數據集上,它只會返回該子集的零......並且似乎根本不運行,但不會生成錯誤。
我想知道預測變量的數量是否太多,只有很少的觀測值,並且只用有限數量的預測變量來嘗試,但它給了我相同的結果。 這似乎也不是鏈接,因爲它是在其他情況下指出變量的類型......
我顯然失去了一些東西,但我不能找出...
如果有人有對我應該看到的方向有所瞭解,我會非常感激。我的數據here。
VarforCRF <- read.csv("Data.csv",sep=";",dec=",",row.names=1)
library(party)
set.seed(round(runif(1,0,1)*10000))
# Run just fine with the entire dataset
cRF <- cforest(Syrph_pred~.,data = VarforCRF, control = cforest_unbiased(ntree=100))
varimp(object = cRF,conditional = T)
CRF_West <- subset(VarforCRF,Sector == "West")
# Does not seem to run at all with subset and return zeros
cRF_W <- cforest(Syrph_pred~.,data = CRF_West, control = cforest_unbiased(ntree=100))
varimp(object = cRF_W,conditional = T)
您的數據以奇怪的格式下載。你是否將它保存爲分號分隔符,因爲這不是一種存儲數據的好方法。 – Jason
是的。對不起,法文版Excel保存帶分號的.csv默認爲 –
由於Excel在不同的系統上表現不同,R提供了'read.csv()'(原始的逗號分隔格式)和'read.csv2()' (以分號分隔的格式)。在你的情況下,只需使用:'read.csv2(「Data.csv」,row.names = 1)'。 –