【问题标题】:Weka classification; cross-validation across predefined topic韦卡分类;跨预定义主题的交叉验证
【发布时间】:2014-11-22 11:52:29
【问题描述】:

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

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

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

如果这个问题已经被问过,我对冗余表示歉意。如果确实有,将不胜感激任何能帮助我找到答案的帮助。

谢谢!

【问题讨论】:

    标签: classification weka


    【解决方案1】:

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

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

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

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

    算法:

    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
    

    【讨论】:

      猜你喜欢
      • 2014-07-27
      • 2016-03-10
      • 2017-05-07
      • 2018-07-04
      • 2016-12-11
      • 2016-10-27
      • 2019-06-04
      • 2012-09-30
      • 2017-08-27
      相关资源
      最近更新 更多