首先,我是XGBoost的新手。所以请原谅我的愚蠢。
以下是问题:
如何将dgCMatrix拆分为两个矩阵(比如火车和测试)?我的目标是使用这些矩阵进行XGBoost训练。当我使用单热编码将所有分类变量转换为数值变量时,我得到了dgCMatrix。我可以在训练数据集和测试数据集上单独进行单热编码吗?
我已经尝试过dummyVars(来自包的插入符号)进行单热编码,但我的R会话由于某些我不知道的原因而中止。
答案 0 :(得分:0)
在此处添加DexGroves的评论作为答案,因为它回答了问题。
即使您将数据集分为两部分(例如A和B),有关 即使某个因素的所有水平都将存储在A和B中, A或B中都不存在这些水平。 在子集上进行编码,它对所有级别进行编码,无论 级别是否存在于子集中。它使用 在下一个子集上使用相同的编码。