2017-02-16 110 views
0

我在这里要问一个关于在RandomForest package中使用RandomForest函数的基本问题。 我正在使用RF algorithm来执行土地覆盖分类。在RandomForest中使用验证和训练数据集

我有一些geo-spatial数据,我分成了一个训练数据集(pks_trainingdf)和验证数据集(pks_validationdf)。

每个df包含34列;前33列是我想用于分类的乐队;最后一列(“类”)包含这些类,它们应该是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) 

回答

1

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

+0

谢谢你的回答,这正是我一直在寻找的!所以,我使用Random Samping获得了训练和验证数据集,所以它应该没问题,对吧?如果我想将数据集分成三部分,它将如何工作? x将是训练数据集,x测试数据集用于报告错误,那么验证数据集将在哪里去...? –

+0

如果我有训练像素+验证像素+未知像素(最后一个要分类),该怎么办? –

+0

如果您有3个子集,首先使用验证方法来调整模型并确定培训规模。你可以做绘图学习曲线并使用弯头方法。另一个分区(测试)是您将用来检查和报告模型的最终准确度和误差度量的分区。 –