代码之家  ›  专栏  ›  技术社区  ›  Siwoku Adeola

用于(moa PairedLearners)的示例代码

  •  3
  • Siwoku Adeola  · 技术社区  · 7 年前

    你好,我对使用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");
    }
    }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Will Faithfull    7 年前

    我可以修复你那里的代码,但这对你没有多大好处。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