gpt4 book ai didi

r - xtest= 和 ytest= 在 R 中的 randomForest 算法中做什么?

转载 作者:行者123 更新时间:2023-12-04 02:21:32 25 4
gpt4 key购买 nike

我正在拟合一个随机森林,并使用以下代码将我的数据分为训练集和测试集:
train <- sample( 1:nrow(Boston), (nrow(Boston))/2) )编辑:在这里, train 显然只是一个索引,因此测试集如下:
testB <- Boston[-train,]; head(test); length(test)响应变量的名称是medy,它是第十四列。

我的随机森林也有以下代码(实际上我在这里装袋是因为我的数据集中的变量总数是 13):
bag.boston1 <- randomForest(medv~., data=Boston, subset=train, mtry=13,
importance=TRUE, ytest=testB$medv, xtest= )

我对 ytest= 选项的论点是否正确?我认为是因为它只是测试数据集中的响应变量。

另外,我应该为 xtest= 选项使用什么参数?

我的一个想法是从我的测试数据集中消除响应变量,从而仅创建测试数据集中的预测变量的数据框,然后我可以将 xtest 参数作为结果 x 矩阵:

`x <- testB`

x[14] <- NULL # because the 14th column is the response variable

bag.boston1 <- randomForest(medv~., data=Boston, subset=train, mtry=13,
importance=TRUE, ytest=testB$medv, xtest=x)

最佳答案

来自 randomForest 的文档:

If xtest is given, prediction of the test set is done “in place” as the trees are grown. If ytest is also given, and do.trace is set to some positive integer, then for every do.trace trees, the test set error is printed. Results for the test set is returned in the test component of the resulting randomForest object. For classification, the votes component (for training or test set data) contain the votes the cases received for the classes. If norm.votes=TRUE, the fraction is given, which can be taken as predicted probabilities for the classes.



从这里可以理解,只将响应变量传递给 ytest论点,不会改变 randomForest 的任何方式工作。

如果您想要 randomForest函数“就地”进行预测,即当树木生长时,您必须将没有预测变量的测试数据传递给 xtest像这样的论证:
bag.boston1 <- randomForest(medv~., data=Boston, subset=train, mtry=13, importance=TRUE, 
xtest=subset(testB, select=-medv))

预测结果可以通过以下方式访问: bag.boston1$test$predicted
由于在这种情况下您还有测试数据的响应变量,因此您可以使用 ytest 传递它。多变的:
bag.boston2 <- randomForest(medv~., data=Boston, subset=train, mtry=13, importance=TRUE, 
xtest=subset(testB, select=-medv), ytest=testB$medv)

在这种情况下,除了预测之外,我们还会得到一些额外的值。他们是, mse对于均方误差和 rsq对于 r 平方,两者都是在 regression 情况下生长的每一棵树的.而对于 classification ,他们是: err.rate ,即每棵树的测试错误率, confusion对于混淆矩阵和 votes给出每个输出类的投票数(或标准化投票数)。

可以使用以下方法访问所有上述值: bag.boston2$test

关于r - xtest= 和 ytest= 在 R 中的 randomForest 算法中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28641298/

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