gpt4 book ai didi

r - R randomForest 对数字类和整数类的变量的行为是否相同?

转载 作者:行者123 更新时间:2023-12-05 01:22:50 25 4
gpt4 key购买 nike

在 randomForest 包中实现的 R 随机森林算法对数字类和整数类的变量的行为是否相同?

最佳答案

是的,randomForest 实现确实对待整数和数字( double )类似。在 RF 模型看来,特征值只能等于/高于或低于给定的断点,因此数字最初是整数还是 double 都没有关系。

  • randomForest 确实有因子的异常(exception)(与 sklearn.randomForest 相反,后者甚至将因子视为数字)

引用自源代码:randomForest/R/randomForest.default.R -line 60

if (is.data.frame(x)) {
xlevels <- lapply(x, mylevels)
ncat <- sapply(xlevels, length)
## Treat ordered factors as numerics.
ncat <- ifelse(sapply(x, is.ordered), 1, ncat)
x <- data.matrix(x)
...
}

mylevels 在第 2 行中定义

## mylevels() returns levels if given a factor, otherwise 0.
mylevels <- function(x) if (is.factor(x)) levels(x) else 0
  • 因此,如果 x 中的给定特征列是因子,则 xlevels 记录级别/类别,否则为 0。在低级 C++ 中,如果 xlevels 为 0,则特征列被视为数字,否则被视为因子。将 x 转换为 data.matrix 时,所有特征都将转换为数字。

引用第 194 行

    storage.mode(x) <- "double"

这里x的存储方式设置为double

关于r - R randomForest 对数字类和整数类的变量的行为是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34725766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com