10

对于 Weka Explorer (GUI),当我们对任何给定的ARFF文件进行 10 折 CV 时,Weka Explorer 提供的(据我所知)是所有 10 折的平均结果。

Q.有没有什么方法可以得到每个折叠的结果?例如,我需要每个折叠的错误率(错误识别的实例)。

帮助表示赞赏。

4

2 回答 2

16

我认为使用 Weka 的 GUI 可以做到这一点。您需要使用 Experimenter 而不是 Explorer。以下是步骤:

  1. Experimenter从 GUI 选择器 打开
    • 创建一个新实验(New按钮@右上角)
    • [可选] 在 中输入文件名和位置Results Destination以将结果保存到
    • 根据自己的喜好设置Number of (cross-validation) folds(开始尝试 2 折以获得简单的结果)
    • 添加您的数据集(如果您的数据集需要预处理,那么您应该先在资源管理器中执行此操作,然后保存预处理的数据集)
    • 设置Number of repetitions(我建议从 1 开始)
    • 添加您要测试的算法(再次简单开始,从一种算法开始)
  2. 转到Run选项卡和Start实验并等待它完成
  3. 转到选项卡并通过单击(右上角) Analyse导入实验结果Experiment
    • 对于Row选择:Fold
    • 对于Column选择:Percent_incorrectNumber_incorrect(或您想查看的任何其他度量)
    • 您现在可以看到每个折叠的指定结果
于 2012-06-03T10:44:13.820 回答
4

Weka Explorer 在使用交叉验证选项时没有提供单个折叠结果的选项,有一些解决方法。如果您明确不想更改任何代码,则需要进行一些手动摆弄,但我认为这或多或少地提供了您想要的

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

不过,这并不完全等同于 10 折交叉验证,因为您以这种方式制作的伪折叠可能会重叠。

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

于 2012-06-02T13:01:22.767 回答