示例代码用于(moa PairedLearners)

时间:2017-12-01 14:26:33

标签: java weka moa

您好我是使用MOA和WEKA的新手,

我需要使用此代码测试配对学习者概念,我已经能够找到代码,但我找不到任何在线示例 我很难确定如何将数据传递到代码中并运行测试并查看我的结果。 请任何人指出我的正确方向或给我一些指示,我可以遵循实现这一点。

MOA / MOA / SRC /主/爪哇/ MOA /分类/间/ PairedLearners.java

尝试使用类似的代码: https://groups.google.com/forum/#!topic/moa-development/3IKcguR2kOk

最诚挚的问候。 //下面的示例代码

import moa.classifiers.meta.pairedLearner;

Public class SamplePairedlearner{
public static void main(String[] args) {
    FileStream fStream = new FileStream();
    fStream.arffFileOption.setValue("test.arff");// set the ARFF file name
    fStream.normalizeOption.setValue(false);// set normalized to be true or false
    fStream.prepareForUse();
int numLines = 0;
PairedLearner learners = PairedLearners();
learners.resetLearning();
learners.resetLearningImpl(); //this is where i get an error message
ClusteringStream stream = fStream;
    while (stream.hasMoreInstances()) {
        Instance curr = stream.nextInstance().getData();
        learners.trainOnInstanceImpl(curr)//this line also generates an error
        numLines++;
    }
    Clustering resDstream = dstream.getClusteringResult();
    dstream.getMicroClusteringResult();
    System.out.println("Size of result from Dstream: " + resDstream.size());
    System.out.println(numLines + " lines have been read");
}
}

1 个答案:

答案 0 :(得分:1)

我可以修复你在那里的代码,但它对你没有多大帮助。 MOA拥有自己的任务和评估人员,可以在更高的层次上运行这些实验。这是如何正确运行评估,而不是深入研究代码。我会假设一些事情:

  1. 我们使用PairedLearners作为分类器。
  2. 我们评估流分类性能。
  3. 我们以预测顺序(前序)方式评估,即训练,然后测试序列中的每个例子。
  4. 因此,我们可以非常简单地定义我们的任务,如下所示。

    public class PairedLearnersExample {
    
        public static void main(String[] args) {
    
            ArffFileStream fs = new ArffFileStream(PairedLearnersExample.class.getResource("abalone.arff").getFile(), -1);
            fs.prepareForUse();
    
            PairedLearners learners = new PairedLearners();
    
            BasicClassificationPerformanceEvaluator evaluator = new BasicClassificationPerformanceEvaluator();
    
            EvaluatePrequential task = new EvaluatePrequential();
            task.learnerOption.setCurrentObject(learners);
            task.streamOption.setCurrentObject(fs);
            task.evaluatorOption.setCurrentObject(evaluator);
    
            task.prepareForUse();
    
            LearningCurve le = (LearningCurve) task.doTask();
    
            System.out.println(le);
    
        }
    
    }
    

    如果你想做其他任务,你可以非常高兴地换掉评估者,流和学习者,以实现你想做的任何事情。

    如果您参考MOA Manual,您将看到我正在做的就是模仿命令行命令 - 如果您愿意,您可以在命令行中同等地执行此评估。

    例如,

    java -cp .:moa.jar:weka.jar -javaagent:sizeofag.jar moa.DoTask \
    "EvaluatePrequential -l PairedLearners \
    -e BasicClassificationPerformanceEvaluator \
    -s (ArffFileStream -f abalone.arff) \
    -i 100000000 -f 1000000" > plresult_abalone.csv