在 RandomForest 中使用验证和训练数据集

Using validation and training dataset in a RandomForest

我来这里是想问一个关于RandomForest packageRandomForest函数的使用的基本问题。 我正在使用 RF algorithm 执行土地覆盖分类。

我有一些 geo-spatial 数据,我将其分为训练数据集 (pks_trainingdf) 和验证数据集 (pks_validationdf)。

每个df包含34列;前 33 列是我要用于分类的波段;最后一列 ("class") 包含 类,这应该是 RF 分类的输出。

我的问题是:哪个数据集是 x 的参数,哪个是 xtest 的参数? 下面这行代码正确吗?

modelRF_5 <- randomForest(x=pks_validationdf[, c(1:33)],
                       y=pks_validationdf$class, xtest=pks_trainingdf[, c(1:33)],
                       ytest=pks_trainingdf$class, importance=TRUE)

x 用于训练子集,而 xtest 用于测试或验证子集。在您的情况下,它看起来与您相反。只有两者具有相同的大小才不重要(通常情况并非如此)。在分成训练和验证子集之前将数据集随机化是很重要的。如果不是,你应该改变它。此外,分成三个子集比分成两个子集更安全。一个用于训练,另一个用于验证模型,最后一个用于报告错误。