gpt4 book ai didi

随机森林变量长度不同

转载 作者:行者123 更新时间:2023-11-30 09:30:14 25 4
gpt4 key购买 nike

我正在尝试使用某个功能作为响应变量来运行 RF。我在将字符串传递给变量以用作 RF 中的响应时遇到问题。首先,我尝试在通过变量传递的字符串上运行 RF 作为响应,但收到“向量长度不同错误”。之后,我尝试输入实际的字符串(功能)作为响应,效果很好。您能解释一下为什么可变长度不同吗?谢谢。

> colnames(Data[1])
[1] "feature1"
> rf.file = randomForest(formula =colnames(Data[1])~ ., data = Data, proximity = T, importance = T, ntree = 500, nodesize = 3)
Error in model.frame.default(formula = colnames(Data[1]) ~ ., :
variable lengths differ (found for 'feature1')

Enter a frame number, or 0 to exit

1: randomForest(formula = colnames(Data[1]) ~ ., data = Data, proximity = T, importance = T, ntree = 500, nodesize = 3)
2: randomForest.formula(formula = colnames(Data[1]) ~ ., data = brainDataTrim, proximity = T, importance = T, ntree = 500, nodesize = 3)
3: eval(m, parent.frame())
4: eval(expr, envir, enclos)
5: model.frame(formula = colnames(Data[1]) ~ ., data = Data, na.action = function (object, ...)
6: model.frame.default(formula = colnames(Data[1]) ~ ., data = Data, na.action = function (object, ...)

Selection: 0



> rf.file = randomForest(formula =feature1~ ., data = Data, proximity = T, importance = T, ntree = 500, nodesize = 3)
> rf.file

Call:
randomForest(formula = feature1 ~ ., data = Data, proximity = T, importance = T, ntree = 500, nodesize = 3)
Type of random forest: regression
Number of trees: 500
No. of variables tried at each split: 3

Mean of squared residuals: 0.1536834
% Var explained: 34.21
>

最佳答案

您只是误解了公式的工作原理。基本上,您的第一次尝试应该不会成功。

公式应包含变量名称,可能是变量的简单函数。例如

var1 ~ var2
var1 ~ log(var2)

请注意缺少引号。如果你没有引用它,它就不是一个字符串,而是一个符号。

因此,请避免在公式中使用原始字符串、奇怪的计算要求(例如 Data[1] 或任何 $ 的使用)。要从字符串构造公式,请将其粘贴在一起,然后对生成的字符串调用as.formula

请记住,公式的重点是您提供了模型的符号表示,然后 R 将查找您在提供的数据框中指定的特定列。

我认为某些函数会为您强制转换公式的字符串表示形式(例如 "var1 ~ var2"),但我不会指望或期望它。

关于随机森林变量长度不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17868261/

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