我对派对包中的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)'。 –