使用 StratifiedRemoveFolds 示例在 weka 中创建训练和测试集

Posted

技术标签:

【中文标题】使用 StratifiedRemoveFolds 示例在 weka 中创建训练和测试集【英文标题】:Creating training and test set in weka using StratifiedRemoveFolds example 【发布时间】:2012-08-06 11:04:27 【问题描述】:

我正在尝试从命令行使用 weka 运行一些分类。在此链接weka-Primer-commandline 中有以下用于创建测试和训练集的示例:

java weka.filters.supervised.instance.StratifiedRemoveFolds -i data/soybean.arff -o soybean-train.arff \
-c last -N 4 -F 1 -V

java weka.filters.supervised.instance.StratifiedRemoveFolds -i data/soybean.arff -o soybean-test.arff \
-c last -N 4 -F 1

这段代码是否应该将 3/4 的数据用于训练,1/4 用于测试集?在我看来,整个数据中只有一个折叠(从最后一个,因为 -V)将被分配用于训练,只有 1 折叠用于测试。我对吗?我需要 3/4 数据用于训练,1/4 用于测试。

【问题讨论】:

【参考方案1】:

文档中的代码是正确的,将 3/4 的数据放在训练集中,1/4 放在测试集中。这些选项的含义如下:

-N:应该有4折,意思是数据被分成4个相等的不重叠的部分 -F: 应该选择这些部分/折叠中的第一个 -V:反转选择

所以创建训练集的第一行如下:

创建 4 个折叠 选择第一个折叠并取与选择剩余 3 折叠的结果的倒数,即数据的 3/4

只需选择第一折,即数据的 1/4,即可轻松创建测试。

【讨论】:

以上是关于使用 StratifiedRemoveFolds 示例在 weka 中创建训练和测试集的主要内容,如果未能解决你的问题,请参考以下文章

第一篇 用于测试使用

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份