Weka分类;跨预定义主题的交叉验证

时间:2014-09-27 16:54:42

标签: classification weka

我正在使用Weka对数据集进行分类。每个数据点都是我试图概括的五个主题之一。

我想让每个主题成为一个测试集,以便我可以在主题1-4上进行训练并在主题5上进行测试,然后在主题1,3,4和5上进行训练,在2上进行测试,依此类推。

有没有办法指示Weka使用一个数据集自动执行此操作一次?也就是说,我可以指示Weka按主题进行交叉验证吗?

如果已经提出这个问题,我为冗余道歉。如果它确实有,那么指导我找到答案的任何帮助都将非常受欢迎。

谢谢!

1 个答案:

答案 0 :(得分:0)

我能想到的一些方法可能有助于获得您想要的结果:

  1. 正如您在问题中所述,您可以生成5个不同的训练集,其余主题作为测试集。如果您打算使用Weka界面(提供训练数据,构建分类器并提供测试集,重复),则需要单独训练每个模型。如果这是一次性的话,这可能是最快的。

  2. 您可以将FilteredClassifier与RemoveWithValues过滤器一起使用。如果主题编号是可用属性,这可能能够删除特定主题的训练案例(我猜这个数据不是模型数据的一部分,因此如果使用这种方法,也可能需要属性过滤)。

  3. 如果您愿意使用Java编写解决方案,您将能够一次操作数据并构建五个分类器中的每一个。我认为这种模型的算法将如下所述。如果您计划进行大量此过程,则可能是更好的解决方案。

  4. 算法:

    for each topic t
      training_data = all cases not containing topic t
      testing_data = training_set cases containing topic t
      build classifier using training_data, testing_data
      save classifier
    end for