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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 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); |