如何从Weka中的数据集中删除百分比但保持课堂平衡?

时间:2017-05-11 12:27:29

标签: machine-learning weka training-data statistical-sampling

我有一个数据集,其中包含来自A类的50%实例和50%B类实例。我想将我的数据集拆分为训练集和测试集。我知道RemovePercentage过滤器存在,但它并不关心类平衡。如何从我的数据集中删除35%,但仍然在训练集中保留50/50课程分布?

2 个答案:

答案 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 **。现在您有一个符合班级平衡的火车和测试装置。