用于(moa PairedLearners)的示例代码
Sample code use for (moa PairedLearners)
您好,我是 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 有自己的任务选择和评估器,用于 运行 在更高层次上进行这些实验。这是 运行 正确评估而不是深入代码的方法。我会假设一些事情:
- 我们使用
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 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
您好,我是 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 有自己的任务选择和评估器,用于 运行 在更高层次上进行这些实验。这是 运行 正确评估而不是深入代码的方法。我会假设一些事情:
- 我们使用
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 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