【问题标题】:Sample code use for (moa PairedLearners)用于(moa PairedLearners)的示例代码
【发布时间】:2018-05-15 16:25:19
【问题描述】:

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

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

moa/moa/src/main/java/moa/classifiers/meta/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");
}
}

【问题讨论】:

  • 您可能想在此处复制代码。
  • 一旦我进入我的系统,我肯定会在星期一早上这样做,但我并没有真正做任何事情。我刚刚从 MOA jar 文件中导入了配对的精简库并初始化了构造函数。当我尝试调用 resetLearningImpl() 函数时,我收到一个错误,这就是我当前所在的位置。
  • @Olantobi,我添加了类似的示例代码
  • @xro7 你能帮忙调查一下吗?我真的很感激任何指针

标签: java weka moa


【解决方案1】:

我可以修复您那里的代码,但这对您没有多大好处。 MOA 有自己的任务选择和评估者,用于在更高级别上运行这些实验。这是如何正确运行评估而不是深入研究代码的方法。我会假设一些事情:

  1. 我们使用PairedLearners 作为分类器。
  2. 我们评估流分类性能。
  3. 我们以预测顺序(前置)方式进行评估,即先训练,然后对序列中的每个示例进行测试。

因此,我们可以很简单地定义我们的任务,如下所示。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多