Weka:10倍CV中每个折叠的结果

时间:2012-06-02 06:14:46

标签: machine-learning weka

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

问。有没有办法获得每个折叠的结果?例如,我需要每个折叠的错误率(错误识别的实例)。

帮助表示赞赏。

2 个答案:

答案 0 :(得分:15)

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

  1. 从GUI选择器中打开Experimenter
    • 创建一个新实验(New按钮@右上角)
    • [可选]在Results Destination中输入文件名和位置以将结果保存到
    • 根据您的喜好设置Number of (cross-validation) folds(开始尝试2次以获得简单的结果)
    • 添加数据集(如果您的数据集需要预处理,那么您应首先在资源管理器中执行此操作,然后保存预处理的数据集)
    • 设置Number of repetitions(我建议1开始使用)
    • 添加您要测试的算法(再次启动,从一个算法开始)
  2. 转到Run标签和Start实验并等到完成
  3. 转到Analyse标签,点击Experiment(右上角)导入实验结果
    • Row选择:Fold
    • 选择ColumnPercent_incorrectNumber_incorrect(或您希望查看的任何其他指标)
    • 您现在可以看到每个折叠的指定结果

答案 1 :(得分:3)

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

  1. 选择Cross-validation并将其设置为90%
  2. ,而不是Percentage split
  3. 启动分类器
  4. 点击More options...并将Random seed for XVal / % Split值更改为之前未使用的值。
  5. 重复十次。
  6. 这并不完全相当于10倍交叉验证,因为你这样做的伪折叠可能会重叠。

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