Пример использования кода для (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 есть собственный выбор задач и оценщиков для проведения этих экспериментов на гораздо более высоком уровне. Это то, как правильно выполнять оценки и не погружаться слишком глубоко в код. Я приму несколько вещей:
- Мы используем
PairedLearners
как наш классификатор. - Мы оцениваем эффективность классификации потоков.
- Мы оцениваем последовательным (предикативным) способом прогнозирования, то есть обучаем, а затем проверяем каждый пример в последовательности.
Поэтому мы можем определить нашу задачу довольно просто, как изложено ниже.
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