machine-learning - 在 10折叠CV中,机器学习 Weka: 每个折叠的结果

  显示原文与译文双语对照的内容
138 3

对于 Weka,当我们为任何给定的 ARFF ARFF ARFF文件时,Weka提供程序的平均结果就是所有 10折叠的平均结果。

是否有任何方法来获得每个折叠的结果? 例如我需要每个折叠的错误率( 。未正确识别的实例) 。

帮助帮助。

时间: 原作者:

73 1

我认为这个使用weka的GUI是可行的。 你需要使用实验者而不是浏览器。 以下是步骤:

  • 从GUI选择器中打开 Experimenter
  • 创建新实验( New 按钮 @ 右上角)
  • [optional] 在 Results Destination 中输入文件名和位置以将结果保存到
  • 设置 Number of (cross-validation) folds 根据你的喜好( 开始试验 2个折叠,以获得
  • 添加数据集( 如果数据集需要预处理,然后在资源管理器中执行这里操作,然后保存预处理数据集)
  • 设置 Number of repetitions ( 我建议用 1开始)
  • 添加要测试的算法( 再次启动,以一个算法开始)
  • 转到 Run 选项卡并 Start,然后等待它完成
  • 转到 Analyse 选项卡并通过单击 Experiment 导入实验结果( 右上角)
  • 对于 Row 选择:Fold
  • 对于 Column 选择:Percent_incorrect 或者 Number_incorrect ( 或者任何你希望查看的其他度量值)
  • 你现在可以看到每个折叠的指定结果
原作者:
136 0

当使使用crossvalidation选项时,没有选项可以供单个折叠的结果,有一些解决方法。 如果你明确不想改变任何代码,你需要做一些手工翻译,但是我认为这会更多。

  • 选择 Percentage split 并将它的设置为 90%,而不是 Cross-validation
  • 启动分类器
  • 单击 More options... 并更改 Random seed for XVal/% Split 值与以前未使用的值。
  • 重复十次。

但这并不完全等效于 10-fold crossvalidation,因为你使用这种方式的伪折叠可以能会重叠。

一个等效于crossvalidation的替代方法是使 10使用无监督的实例筛选器 RemoveFolds 或者 RemoveRange 进行手动折叠。 生成并保存 10个训练集和 10测试集。 然后对每个折叠,加载培训集,选择 Supplied test set 在分类选项卡中,选择适当的测试折叠。

原作者:
...