我在使用Weka软件进行模型分类时,对训练和测试数据集的划分感到困惑。我将整个数据集的60%划分为训练数据集并保存到硬盘中,40%的数据用作测试数据集并保存到另一个文件中。我使用的数据是不平衡数据,因此我在训练数据集上应用了SMOTE。之后,在Weka的分类选项卡中,我从测试选项
中选择了使用训练集
选项,并使用随机森林分类器对训练数据集进行分类。获得结果后,我从测试选项
中选择了提供的测试集
选项,并从硬盘加载我的测试数据集,然后再次运行分类器。
我试图找到关于如何在Weka中加载训练集和测试集的教程,但没有找到。我是根据自己的理解进行上述操作的。
因此,我想知道这是否是正确的方式来对训练和测试数据集进行分类?
谢谢你。
回答:
没有必要在训练集上评估你的分类器(这会过于乐观,因为分类器已经见过了这些数据)。只需使用提供的测试集
选项,然后你的分类器会在被评估在指定的测试集之前自动在当前加载的数据集上进行训练。
你也可以使用百分比划分
测试选项,而不是手动分割你的数据,设定60
%用于你的训练数据。
在使用过滤器时,你应该始终将它们(在本例中是SMOTE
)以及你的分类器(在本例中是RandomForest
)包装在FilteredClassifier元分类器中。这样,你可以确保训练和测试集数据被正确转换。这也避免了在用监督过滤器转换整个数据集并随后将其分割成训练/测试集时,向测试集泄露信息的问题。最后,这也很好地记录了对输入数据进行的预处理,全部在一个命令行字符串中完成。
如果你需要应用多个过滤器,请使用MultiFilter来按顺序应用它们。