11package de .fraunhofer .iem .swan .model ;
22
33import ai .libs .jaicore .ml .classification .loss .dataset .EClassificationPerformanceMeasure ;
4- import ai .libs .jaicore .ml .classification .singlelabel .SingleLabelClassification ;
54import ai .libs .jaicore .ml .core .dataset .schema .attribute .IntBasedCategoricalAttribute ;
65import ai .libs .jaicore .ml .core .dataset .serialization .ArffDatasetAdapter ;
7- import ai .libs .jaicore .ml .core .evaluation .evaluator .SupervisedLearnerExecutor ;
86import ai .libs .jaicore .ml .core .filter .SplitterUtil ;
97import ai .libs .jaicore .ml .weka .classification .learner .IWekaClassifier ;
108import ai .libs .mlplan .core .MLPlan ;
119import ai .libs .mlplan .multiclass .wekamlplan .MLPlanWekaBuilder ;
12- import de .fraunhofer .iem .swan .features .InstancesHandler ;
1310import de .fraunhofer .iem .swan .util .Util ;
14- import org .api4 .java .ai .ml .classification .singlelabel .evaluation .ISingleLabelClassification ;
1511import org .api4 .java .ai .ml .core .dataset .schema .attribute .IAttribute ;
1612import org .api4 .java .ai .ml .core .dataset .serialization .DatasetDeserializationFailedException ;
1713import org .api4 .java .ai .ml .core .dataset .splitter .SplitFailedException ;
1814import org .api4 .java .ai .ml .core .dataset .supervised .ILabeledDataset ;
19- import org .api4 .java .ai .ml .core .evaluation .execution .ILearnerRunReport ;
20- import org .api4 .java .ai .ml .core .evaluation .execution .LearnerExecutionFailedException ;
21- import org .api4 .java .ai .ml .core .exception .TrainingException ;
2215import org .api4 .java .algorithm .Timeout ;
2316import org .api4 .java .algorithm .exceptions .AlgorithmException ;
2417import org .api4 .java .algorithm .exceptions .AlgorithmExecutionCanceledException ;
2518import org .api4 .java .algorithm .exceptions .AlgorithmTimeoutedException ;
26- import org .nd4j .common .io .StringUtils ;
2719import org .slf4j .Logger ;
2820import org .slf4j .LoggerFactory ;
2921import weka .classifiers .Classifier ;
30- import weka .core .Attribute ;
3122import weka .core .Instances ;
3223import weka .core .converters .ArffLoader ;
3324
3425import java .io .File ;
3526import java .io .IOException ;
36- import java .util .*;
27+ import java .util .ArrayList ;
28+ import java .util .HashMap ;
29+ import java .util .List ;
30+ import java .util .Random ;
3731import java .util .concurrent .TimeUnit ;
3832
3933/**
@@ -51,13 +45,13 @@ public MLPlanExecutor() {
5145 /**
5246 * Run ML-Plan using the provided path to the ARFF file.
5347 *
54- * @param instancesHandler file path for ARFF file
48+ * @param instances1 file path for ARFF file
5549 */
56- public HashMap <String , String > evaluateDataset (InstancesHandler instancesHandler ) {
50+ public HashMap <String , String > evaluateDataset (Instances instances1 ) {
5751
58- String arffFilePath = Util .exportInstancesToArff (instancesHandler . getInstances () );
52+ String arffFilePath = Util .exportInstancesToArff (instances1 );
5953
60- String mClass = Util .getClassName (instancesHandler . getInstances () );
54+ String mClass = Util .getClassName (instances1 );
6155
6256 long start = System .currentTimeMillis ();
6357
@@ -74,14 +68,14 @@ public HashMap<String, String> evaluateDataset(InstancesHandler instancesHandler
7468 ArrayList <Double > fScores = new ArrayList <>();
7569 ArrayList <String > algorithms = new ArrayList <>();
7670
77- ModelEvaluator modelEvaluator = new ModelEvaluator ();
71+ MonteCarloValidator monteCarloValidator = new MonteCarloValidator ();
7872
7973 ArffLoader loader = new ArffLoader ();
8074 try {
8175 loader .setFile (new File (arffFilePath ));
8276 Instances instances = loader .getDataSet ();
8377 instances .setClassIndex (instances .numAttributes () - 1 );
84- modelEvaluator .initializeResultSet (instances );
78+ monteCarloValidator .initializeResultSet (instances );
8579 } catch (IOException e ) {
8680 e .printStackTrace ();
8781 }
@@ -116,7 +110,7 @@ public HashMap<String, String> evaluateDataset(InstancesHandler instancesHandler
116110 Instances testInstances = testLoader .getDataSet ();
117111 testInstances .setClassIndex (testInstances .numAttributes () - 1 );
118112
119- modelEvaluator .evaluate (optimizedClassifier , trainInstances , testInstances , iteration );
113+ monteCarloValidator .evaluate (optimizedClassifier , trainInstances , testInstances , iteration );
120114
121115
122116 /* evaluate solution produced by mlplan */
@@ -149,15 +143,15 @@ public HashMap<String, String> evaluateDataset(InstancesHandler instancesHandler
149143 e .printStackTrace ();
150144 }
151145 }
152- return modelEvaluator .getFMeasure ();
146+ return monteCarloValidator .getFMeasure ();
153147 }
154148
155- public void evaluateDataset (InstancesHandler instancesHandler , int k ) {
149+ public void evaluateDataset (Instances instances , int k ) {
156150
157151 //arffFilePath = "swan/swan_core/src/main/resources/waveform.arff";
158- String arffFilePath = Util .exportInstancesToArff (instancesHandler . getInstances () );
152+ String arffFilePath = Util .exportInstancesToArff (instances );
159153
160- String mClass = Util .getClassName (instancesHandler . getInstances () );
154+ String mClass = Util .getClassName (instances );
161155
162156
163157 long start = System .currentTimeMillis ();
@@ -172,7 +166,7 @@ public void evaluateDataset(InstancesHandler instancesHandler, int k) {
172166
173167 //dataset.removeColumn("id");
174168
175- ModelEvaluator modelEvaluator = new ModelEvaluator ();
169+ MonteCarloValidator monteCarloValidator = new MonteCarloValidator ();
176170
177171 //For each iteration, create a new train-test-split and run ML-Plan
178172 for (int iteration = 0 ; iteration < ITERATIONS ; iteration ++) {
0 commit comments