gpt4 book ai didi

r - 如何处理虚拟特征

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

如果问题提早出现,我很抱歉,但我没有发现类似的情况。我对预测模型有疑问。我想构建 xgboost 和随机森林。我使用的包要求在 xgboost 构造中,应创建虚拟变量。问题是我是否应该使用虚拟集来构建两者? (即使森林可以处理计算并且不需要假人)?为了测试模型并进行比较,我还应该将训练集中的分类变量更改为虚拟变量,对吗?换句话说,我的训练集和测试集对于每个模型都必须相同?非常感谢您的帮助!

最佳答案

我猜您正在使用 mlr 包,因为您已使用 mlr 标记了您的问题。

无论如何,当您创建虚拟变量时,您必须确保您的训练集不包含测试集中未包含的变量(这在创建虚拟变量时很容易发生)。否则,当您尝试对测试集进行预测时,您将会遇到麻烦(因为经过训练的模型假设测试集至少具有相同的变量)。

除了创建虚拟变量之外,您还可以将分类变量转换为整数(如果我没记错的话,这就是 xgboost 内部所做的事情)。这就是为什么如果您使用 mlr 拟合 xgboost 模型,我们会强制创建虚拟模型(请参阅 https://github.com/mlr-org/mlr/issues/1561 )。

如果您不想创建虚拟对象,您也可以这样做:

library(mlr)
lrn = makeLearner("regr.xgboost")
train(lrn, bh.task) # this gives you an error

lrn$properties = c(lrn$properties, "factors")
train(lrn, bh.task) # this works as xgboost supports factors

关于r - 如何处理虚拟特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48197589/

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