Since Matlab uses JRE pretty extensively, it is very easy to write Matlab code which is equivalent to the java code.
This is the original java code.
int numInstances = 10000;
Classifierlearner = new HoeffdingTree();
RandomRBFGenerator stream = new RandomRBFGenerator();
stream.prepareForUse();
learner.setModelContext(stream.getHeader());
learner.prepareForUse();
int numberSamplesCorrect = 0;
int numberSamples = 0;
boolean isTesting = true;
while (stream.hasMoreInstances() && numberSamples < numInstances) {
Instance trainInst = stream.nextInstance();
if (isTesting) {
if (learner.correctlyClassifies(trainInst)) {
numberSamplesCorrect++;
}
}
numberSamples++;
learner.trainOnInstance(trainInst);
}
double accuracy = 100.0 * (double) numberSamplesCorrect / (double) numberSamples;
System.out.println(numberSamples + " instances processed with " + accuracy + "% accuracy ");
And here is the corresponding Matlab code.
clear; close all;clc;
javaclasspath('C:\Users\Ninad\Desktop\moa-release-2014 .11\moa.jar');
import moa.classifiers.trees.HoeffdingTree;
import moa.streams.generators.RandomRBFGenerator;
numInstances =10000;
learner=HoeffdingTree;
stream=RandomRBFGenerator;
stream.prepareForUse;
learner.setModelContext(stream.getHeader);
learner.prepareForUse;
numberSamplesCorrect=0;
numberSamples=0;
isTesting=true;
while(stream.hasMoreInstances && numberSamples<numInstances)
trainInst=stream.nextInstance;
if(isTesting)
if(learner.correctlyClassifies(trainInst))
numberSamplesCorrect=numberSamplesCorrect+1;
end
end
numberSamples=numberSamples+1;
learner.trainOnInstance(trainInst);
end
accuracy=numberSamplesCorrect/numberSamples;
fprintf('%d instances processed with %f accuracy\n',numberSamples,accuracy);