Пример использования кода для (moa PairedLearners)

Здравствуйте, я новичок в использовании MOA и WEKA,

Мне нужно протестировать концепцию парных учеников с помощью этого кода, и я смог найти код, но не могу найти ни одного примера в Интернете, и мне трудно понять, как вставить свои данные в код, запустить тест и посмотреть свои результаты, Pls может кто-нибудь указать мне в правильном направлении или дать мне несколько советов, которые я мог бы следовать для реализации этого.

Моа / моа /SRC / главная / Java / моа / классификаторы / мета /PairedLearners.java

Попытка использовать похожий код, подобный следующему: https://groups.google.com/forum/

С уважением. // Пример кода ниже

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 ответ

Решение

Я мог бы исправить код, который у вас есть, но он не принесет вам никакой пользы. У 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, вы увидите, что все, что я делаю, - это имитация команд командной строки - вы также можете выполнить эту оценку в командной строке, если хотите.

Например,

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
Другие вопросы по тегам