使用 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有三种方式(不使用,动态使用,静态使用,默认是动态使用)