我有一个数据集,其中包含来自A类的50%实例和50%B类实例。我想将我的数据集拆分为训练集和测试集。我知道RemovePercentage过滤器存在,但它并不关心类平衡。如何从我的数据集中删除35%,但仍然在训练集中保留50/50课程分布?
答案 0 :(得分:0)
看看Stratified Remove Folds。它努力维持原始的类分布。 http://weka.sourceforge.net/doc.stable/weka/filters/supervised/instance/StratifiedRemoveFolds.html
答案 1 :(得分:0)
好的,我找到了一种使用过滤器StratifiedRemoveFolds的方法:
第1步
在Weka Explorer中打开您的数据集,然后选择受监督的实例过滤器StratifiedRemoveFolds。
第2步
确定培训和测试集所需的尺寸。如果您希望您的集合具有相同的大小,则选择 numFolds 2.应用过滤器。这将生成一个包含原始集合中50%数据的数据集。 (如果你想要67%的训练数据和33%的测试数据,那么选择3作为numFolds)
第3步
将此生成的集保存为f.e. “train.arff”。保存第一组后,您必须撤消操作,以便返回完整的数据集。
第4步
单击StratifiedRemoveFolds过滤器,将参数 invertSelection 从False更改为True。现在,当您应用该过滤器时,将生成一个集合,如步骤2中所示,但它将包含其他50%的数据集。
第5步
将此保存为“test.arff **。现在您有一个符合班级平衡的火车和测试装置。