【问题标题】:Weka - cross validation based on nominal valuesWeka - 基于标称值的交叉验证
【发布时间】:2018-05-25 01:46:47
【问题描述】:

我有要测试分类器的数据。 该数据有很多属性和二进制真/假的目标类。 此外,我知道数据来自称为 1-32 的 32 个来源。 此信息存在于 arff 文件中。

所以我有一个 arff 文件:

@attribute <MANY ATTRIBUTES>
@attribute <MANY ATTRIBUTES>
@attribute class {True,False}
@attribute source {1,2,3,4,5,6,7,8,9,...,30,31,32}

例如,在分类器下的 weka explorer 中,我可以选择交叉验证 4 折。 但随后 weka 会将这些实例随机排序到 4 个 bin 中。我想要的是 weka 将使用 24 个源作为训练和 8 个作为测试。 因此,每个来源都完全处于测试或训练中,但不是同时处于两者中。

用板载方法有可能吗?

【问题讨论】:

  • 我对这个问题的回答可能会有所帮助:stackoverflow.com/questions/47683638/…
  • 由于 ist 仅支持保留顺序,因此只有在每个(在我的情况下)“源”具有完全相同数量的实例时才会有帮助(也许)。事实并非如此。

标签: classification weka preprocessor


【解决方案1】:

如果您不想使用 4 折交叉验证,而只想使用 24 作为训练和 8 作为测试,您可以将文件拆分为 2(24 合一,8 合一)。将 24 文件加载到 Preprocess 中。在 Classifier 选项卡中,单击 Supplied Test Set 旁边的单选按钮,而不是交叉验证,然后为其指定 8 文件的文件名。

【讨论】:

  • 我知道复制集合并删除每个子集的可能性。这甚至可以通过脚本来完成,但如果重复执行,那将无法很好地扩展。交叉的重点是你不止一次这样做,结果会自动平均。
猜你喜欢
  • 2013-10-10
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2015-10-25
  • 2021-12-10
  • 2013-08-16
  • 2019-07-27
  • 2023-04-05
相关资源
最近更新 更多