2016-12-05 314 views
0

我是新来的R,所以很抱歉,如果这个问题是微不足道的。我尝试通过对类标签进行混洗来计算我的随机森林分类的​​p值。这里使用的虹膜数据,到目前为止我的代码设置一个例子:P值为随机森林

 rows <- sample(rownames(iris), replace = TRUE, size = length(rownames(iris))*0.8) 
    train <- iris[rows,] 
    validation <- iris[-as.numeric(names(table(rows))),] 

    fit <- randomForest:::randomForest(Species ~ ., 
           data=train, 
           importance=TRUE, 
           ntree=1000)  
    Prediction <- predict(fit, validation) 
    confmatrix <- table(validation[,"Species"], Prediction) 
    confusionMatrix(confmatrix) 

我读到了一个名为rfPerform包。阅读帮助页面后,我想出了下面的代码:

 rfPermute(Species ~ ., data = iris, ntree = 100, na.action = na.omit, nrep = 50)$pval 

这里我的问题:我不明白输出(缩放和无标度)(对不起,我不是一个统计学家和阅读我仍然后没有区别)。是否有可能通过诸如此类获得单一的p值?计算所有p值的中位数?我想要解决的问题是我的随机森林的结果偶然发生还是显着。我对一个特定的功能或一个特定的类不感兴趣。

感谢您的帮助!

回答

0

缩放变量和缩放变量时有区别。缩放数据集的变量后,您的目标是让所有变量具有相同的方差(通常为1)。这允许具有许多异常值,极值等的变量足以用于与其他变量进行比较。因此,这两个数组表示算法的结果,一次是缩放变量,另一个没有缩放变量。

你需要澄清自己的下一件事是你运行的算法是干什么的。只是盲目地运行你不明白的算法会对你研究的东西造成更多的伤害。如果你只是谷歌,你可以在网上阅读它们。

您感兴趣的输出不能汇总为一个p值。但是,输出为您提供Species的p值,每个值都有其自己的增长树。在那里你可以看到哪棵树具有统计显着性。整个产出很重要,因为你可以看到哪些物种可以做出统计学上有意义的假设。

希望我回答了你的问题。

+0

谢谢你的回答!但是如果你洗牌的话(用样本(iris [,“Species”])),并且你再次执行你的随机森林,并且重复这个几次,你会收到一个基于随机分类的RF对象。那么计算每个混淆矩阵的平衡精度然后比较RF的平衡精度分布与真实类别和随机类别的分布是否可行呢?那么你有两个BACC分布并通过t.test比较它们?如果差异显着,可以得出结论:分类不是随机的?那么你只有1 pV – ELHL

+0

新的p值基本上是说,如果不同的样本在统计上显着不同。关于这方面的信息并不多。 –