Index: /trunk/CrossPareConfigurationBuilder/src/de/ugoe/cs/crosspare/ConfigurationBuilder.java
===================================================================
--- /trunk/CrossPareConfigurationBuilder/src/de/ugoe/cs/crosspare/ConfigurationBuilder.java	(revision 132)
+++ /trunk/CrossPareConfigurationBuilder/src/de/ugoe/cs/crosspare/ConfigurationBuilder.java	(revision 133)
@@ -7,6 +7,6 @@
 
 public class ConfigurationBuilder {
-
-    private static enum Dataset {MDP, JURECZKO};
+    
+    private static enum Dataset {MDP, JURECZKO, FILTERJURECZKO, AEEEM, RELINK, NETGENE, SELECTEDJURECZKO};
     
     private static final String storageFolder = "config/";
@@ -14,30 +14,34 @@
     public static void main(String[] args) {
         for( Dataset dataset : Dataset.values() ) {
-            writeFile("Koshgoftaar2008", dataset);
-            writeFile("Watanabe2008", dataset);
-            writeFile("Turhan2009", dataset);
-            writeFile("CamargoCruz2009", dataset);
-            // TODO Liu 2010
-            writeFile("Menzies2011", dataset);
-            writeFile("Ma2012", dataset);
-            writeFile("Peters2012", dataset);
-            writeFile("Uchigaki2012", dataset);
-            writeFile("Canfora2013", dataset);
-            writeFile("Peters2013", dataset);
-            writeFile("Herbold2013", dataset);
-            writeFile("ZHe2013", dataset);
-            writeFile("Nam2013", dataset);
-            writeFile("Panichella2014", dataset);
-            // TODO F.Zhang 2014
-            // TODO Mizuno 2014: data not public
-            writeFile("Ryu2014", dataset);
-            writeFile("PHe2015", dataset);
-            // TODO Peters 2015 (LACE2)
-            writeFile("Kawata2015", dataset);
-            writeFile("YZhang2015", dataset);
-            writeFile("Amasaki2015", dataset);
-            writeFile("Ryu2015b", dataset);
-            // TODO Cao 2015 implementation details missing
-            writeFile("Nam2015b", dataset);
+            // baselines
+            writeFile("ALL", dataset);
+            writeFile("CV", dataset);
+            writeFile("Random", dataset);
+            writeFile("Trivial", dataset);
+            // publications
+            writeFile("Koshgoftaar08", dataset);
+            writeFile("Watanabe08", dataset);
+            writeFile("Turhan09", dataset);
+            writeFile("Zimmermann09", dataset);
+            writeFile("CamargoCruz09", dataset);
+            writeFile("Liu10", dataset);
+            writeFile("Menzies11", dataset);
+            writeFile("Ma12", dataset);
+            writeFile("Peters12", dataset);
+            writeFile("Uchigaki12", dataset);
+            writeFile("Canfora13", dataset);
+            writeFile("Peters13", dataset);
+            writeFile("Herbold13", dataset);
+            writeFile("ZHe13", dataset);
+            writeFile("Nam13", dataset);
+            writeFile("Panichella14", dataset);
+            writeFile("Ryu14", dataset);
+            writeFile("PHe15", dataset);
+            writeFile("Peters15", dataset);
+            writeFile("Kawata15", dataset);
+            writeFile("YZhang15", dataset);
+            writeFile("Amasaki15", dataset);
+            writeFile("Ryu15", dataset);
+            writeFile("Nam15", dataset);
         }
     }
@@ -52,5 +56,4 @@
         }
         catch (IOException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) {
-            // TODO Auto-generated catch block
             e.printStackTrace();
         }
@@ -68,33 +71,38 @@
     
     public static void trainers(StringBuilder configFile) {
-        configFile.append(" <trainer name=\"WekaTraining\" param=\"RandomForest weka.classifiers.trees.RandomForest -CVPARAM I 5 25 5\" />\n");
-        configFile.append(" <trainer name=\"WekaTraining\" param=\"C4.5-DTree weka.classifiers.trees.J48 -CVPARAM C 0.1 0.3 5\" />\n");
-        configFile.append(" <trainer name=\"WekaTraining\" param=\"Logistic weka.classifiers.functions.Logistic\" />\n");
-        configFile.append(" <trainer name=\"WekaTraining\" param=\"RBFNetwork weka.classifiers.functions.RBFNetwork -CVPARAM W 0.1 10.0 3.0 L 2.0 18.0 3.0\" />\n");
-        configFile.append(" <trainer name=\"WekaTraining\" param=\"SMORBF weka.classifiers.functions.SMO -K weka.classifiers.functions.supportVector.RBFKernel\" />\n");
+        configFile.append(" <trainer name=\"WekaTraining\" param=\"NB weka.classifiers.bayes.NaiveBayes\" />\n");
+        configFile.append(" <trainer name=\"WekaTraining\" param=\"RF weka.classifiers.trees.RandomForest -CVPARAM I 5 25 5\" />\n");
+        configFile.append(" <trainer name=\"WekaTraining\" param=\"DT weka.classifiers.trees.J48 -CVPARAM C 0.1 0.3 5\" />\n");
+        configFile.append(" <trainer name=\"WekaTraining\" param=\"LR weka.classifiers.functions.Logistic\" />\n");
+        configFile.append(" <trainer name=\"WekaTraining\" param=\"NET weka.classifiers.functions.RBFNetwork -CVPARAM W 0.1 10.0 3.0 L 2.0 18.0 3.0\" />\n");
+        configFile.append(" <trainer name=\"WekaTraining\" param=\"SVM weka.classifiers.functions.SMO -K weka.classifiers.functions.supportVector.RBFKernel\" />\n");
     }
     
     public static void trainersBagging(StringBuilder configFile) {
-        configFile.append(" <setwisetrainer name=\"WekaBaggingTraining\" param=\"BaggingRandomForest weka.classifiers.trees.RandomForest -CVPARAM I 5 25 5\" />\n");
-        configFile.append(" <setwisetrainer name=\"WekaBaggingTraining\" param=\"BaggingC4.5-DTree weka.classifiers.trees.J48 -CVPARAM C 0.1 0.3 5\" />\n");
-        configFile.append(" <setwisetrainer name=\"WekaBaggingTraining\" param=\"BaggingLogistic weka.classifiers.functions.Logistic\" />\n");
-        configFile.append(" <setwisetrainer name=\"WekaBaggingTraining\" param=\"BaggingRBFNetwork weka.classifiers.functions.RBFNetwork -CVPARAM W 0.1 10.0 3.0 L 2.0 18.0 3.0\" />\n");
-        configFile.append(" <setwisetrainer name=\"WekaBaggingTraining\" param=\"BaggingSMORBF weka.classifiers.functions.SMO -K weka.classifiers.functions.supportVector.RBFKernel\" />\n");
+        configFile.append(" <setwisetrainer name=\"WekaBaggingTraining\" param=\"NB weka.classifiers.bayes.NaiveBayes\" />\n");
+        configFile.append(" <setwisetrainer name=\"WekaBaggingTraining\" param=\"RF weka.classifiers.trees.RandomForest -CVPARAM I 5 25 5\" />\n");
+        configFile.append(" <setwisetrainer name=\"WekaBaggingTraining\" param=\"DT weka.classifiers.trees.J48 -CVPARAM C 0.1 0.3 5\" />\n");
+        configFile.append(" <setwisetrainer name=\"WekaBaggingTraining\" param=\"LR weka.classifiers.functions.Logistic\" />\n");
+        configFile.append(" <setwisetrainer name=\"WekaBaggingTraining\" param=\"NET weka.classifiers.functions.RBFNetwork -CVPARAM W 0.1 10.0 3.0 L 2.0 18.0 3.0\" />\n");
+        configFile.append(" <setwisetrainer name=\"WekaBaggingTraining\" param=\"SVM weka.classifiers.functions.SMO -K weka.classifiers.functions.supportVector.RBFKernel\" />\n");
     }
     
     public static void trainersLocalWhere(StringBuilder configFile) {
-        configFile.append(" <trainer name=\"WekaLocalFQTraining\" param=\"LocalRandomForest weka.classifiers.trees.RandomForest -CVPARAM I 5 25 5\" />\n");
-        configFile.append(" <trainer name=\"WekaLocalFQTraining\" param=\"LocalC4.5-DTree weka.classifiers.trees.J48 -CVPARAM C 0.1 0.3 5\" />\n");
-        configFile.append(" <trainer name=\"WekaLocalFQTraining\" param=\"LocalLogistic weka.classifiers.functions.Logistic\" />\n");
-        configFile.append(" <trainer name=\"WekaLocalFQTraining\" param=\"LocalRBFNetwork weka.classifiers.functions.RBFNetwork -CVPARAM W 0.1 10.0 3.0 L 2.0 18.0 3.0\" />\n");
-        configFile.append(" <trainer name=\"WekaLocalFQTraining\" param=\"LocalSMORBF weka.classifiers.functions.SMO -K weka.classifiers.functions.supportVector.RBFKernel\" />\n");
+        configFile.append(" <trainer name=\"WekaLocalFQTraining\" param=\"NB weka.classifiers.bayes.NaiveBayes\" />\n");
+        configFile.append(" <trainer name=\"WekaLocalFQTraining\" param=\"RF weka.classifiers.trees.RandomForest -CVPARAM I 5 25 5\" />\n");
+        configFile.append(" <trainer name=\"WekaLocalFQTraining\" param=\"DT weka.classifiers.trees.J48 -CVPARAM C 0.1 0.3 5\" />\n");
+        configFile.append(" <trainer name=\"WekaLocalFQTraining\" param=\"LR weka.classifiers.functions.Logistic\" />\n");
+        configFile.append(" <trainer name=\"WekaLocalFQTraining\" param=\"NET weka.classifiers.functions.RBFNetwork -CVPARAM W 0.1 10.0 3.0 L 2.0 18.0 3.0\" />\n");
+        configFile.append(" <trainer name=\"WekaLocalFQTraining\" param=\"SVM weka.classifiers.functions.SMO -K weka.classifiers.functions.supportVector.RBFKernel\" />\n");
+        configFile.append(" <trainer name=\"WekaLocalFQTraining\" param=\"WHICH de.ugoe.cs.cpdp.wekaclassifier.WHICH\" />\n");
     }
     
     public static void trainersLASER(StringBuilder configFile) {
-        configFile.append(" <trainer name=\"WekaLASERTraining\" param=\"LASERRandomForest weka.classifiers.trees.RandomForest -CVPARAM I 5 25 5\" />\n");
-        configFile.append(" <trainer name=\"WekaLASERTraining\" param=\"LASERC4.5-DTree weka.classifiers.trees.J48 -CVPARAM C 0.1 0.3 5\" />\n");
-        configFile.append(" <trainer name=\"WekaLASERTraining\" param=\"LASERLogistic weka.classifiers.functions.Logistic\" />\n");
-        configFile.append(" <trainer name=\"WekaLASERTraining\" param=\"LASERRBFNetwork weka.classifiers.functions.RBFNetwork -CVPARAM W 0.1 10.0 3.0 L 2.0 18.0 3.0\" />\n");
-        configFile.append(" <trainer name=\"WekaLASERTraining\" param=\"LASERSMORBF weka.classifiers.functions.SMO -K weka.classifiers.functions.supportVector.RBFKernel\" />\n");
+        configFile.append(" <trainer name=\"WekaLASERTraining\" param=\"NB weka.classifiers.bayes.NaiveBayes\" />\n");
+        configFile.append(" <trainer name=\"WekaLASERTraining\" param=\"RF weka.classifiers.trees.RandomForest -CVPARAM I 5 25 5\" />\n");
+        configFile.append(" <trainer name=\"WekaLASERTraining\" param=\"DT weka.classifiers.trees.J48 -CVPARAM C 0.1 0.3 5\" />\n");
+        configFile.append(" <trainer name=\"WekaLASERTraining\" param=\"LR weka.classifiers.functions.Logistic\" />\n");
+        configFile.append(" <trainer name=\"WekaLASERTraining\" param=\"NET weka.classifiers.functions.RBFNetwork -CVPARAM W 0.1 10.0 3.0 L 2.0 18.0 3.0\" />\n");
+        configFile.append(" <trainer name=\"WekaLASERTraining\" param=\"SVM weka.classifiers.functions.SMO -K weka.classifiers.functions.supportVector.RBFKernel\" />\n");
     }
         
@@ -104,16 +112,82 @@
             case MDP:
                 configFile.append(" <loader name=\"NasaARFFFolderLoader\" datalocation=\"benchmark/data/MDP\" relative=\"false\"/>\n");
-                configFile.append(" <resultspath path=\"benchmark/results-csv\"/>\n");
                 break;
             case JURECZKO:
                 configFile.append(" <loader name=\"CSVFolderLoader\" datalocation=\"benchmark/data/JURECZKO\" relative=\"false\"/>\n");
-                configFile.append(" <resultspath path=\"benchmark/results-csv\"/>\n");
+                break;
+            case FILTERJURECZKO:
+                configFile.append(" <loader name=\"CSVFolderLoader\" datalocation=\"benchmark/data/JURECZKO\" relative=\"false\"/>\n");
+                configFile.append(" <versionfilter name=\"MinInstanceNumberFilter\" param=\"100\" />\n");
+                configFile.append(" <versionfilter name=\"UnbalancedFilter\" param=\"0.05\" />\n");
+                break;
+            case AEEEM:
+                configFile.append(" <loader name=\"ARFFFolderLoader\" datalocation=\"benchmark/data/AEEEM\" relative=\"false\"/>\n");
+                break;
+            case RELINK:
+                configFile.append(" <loader name=\"RelinkFolderLoader\" datalocation=\"benchmark/data/RELINK\" relative=\"false\"/>\n");
+                break;
+            case NETGENE:
+                configFile.append(" <loader name=\"NetgeneFolderLoader\" datalocation=\"benchmark/data/NETGENE\" relative=\"false\"/>\n");
+                break;
+            case SELECTEDJURECZKO:
+                configFile.append(" <loader name=\"CSVFolderLoader\" datalocation=\"benchmark/data/SELECTEDJURECZKO\" relative=\"false\"/>\n");
                 break;
             default:
                 throw new InvalidParameterException("Unknown data set: " + dataset.toString());
         }
-    }
-    
-    public static String Koshgoftaar2008(Dataset dataset) {
+        configFile.append(" <versionfilter name=\"MinClassNumberFilter\" param=\"5\" />\n");
+        configFile.append(" <resultspath path=\"benchmark/results-csv\"/>\n");
+    }
+    
+    public static String ALL(Dataset dataset) {
+        StringBuilder configFile = new StringBuilder();
+        preamble(configFile);
+        dataset(configFile, dataset);
+        trainers(configFile);
+        
+        configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
+        
+        postamble(configFile);
+        return configFile.toString();
+    }
+    
+    public static String CV(Dataset dataset) {
+        StringBuilder configFile = new StringBuilder();
+        preamble(configFile);
+        dataset(configFile, dataset);
+        trainers(configFile);
+        
+        configFile.append(" <eval name=\"CVWekaEvaluation\" param=\"\" />\n");
+        
+        postamble(configFile);
+        return configFile.toString();
+    }
+    
+    public static String Random(Dataset dataset) {
+        StringBuilder configFile = new StringBuilder();
+        preamble(configFile);
+        dataset(configFile, dataset);
+        
+        configFile.append(" <trainer name=\"WekaTraining\" param=\"RANDOM de.ugoe.cs.cpdp.wekaclassifier.RandomClass\" />\n");
+        configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
+        configFile.append(" <repetitions number=\"10\" />\n");
+        
+        postamble(configFile);
+        return configFile.toString();
+    }
+    
+    public static String Trivial(Dataset dataset) {
+        StringBuilder configFile = new StringBuilder();
+        preamble(configFile);
+        dataset(configFile, dataset);
+        
+        configFile.append(" <trainer name=\"WekaTraining\" param=\"FIX de.ugoe.cs.cpdp.wekaclassifier.FixClass -C 1\" />\n");
+        configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
+        
+        postamble(configFile);
+        return configFile.toString();
+    }
+    
+    public static String Koshgoftaar08(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
@@ -127,5 +201,5 @@
     }
     
-    public static String Watanabe2008(Dataset dataset) {
+    public static String Watanabe08(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
@@ -140,5 +214,5 @@
     }
     
-    public static String Turhan2009(Dataset dataset) {
+    public static String Turhan09(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
@@ -154,5 +228,18 @@
     }
     
-    public static String CamargoCruz2009(Dataset dataset) {
+    public static String Zimmermann09(Dataset dataset) {
+        StringBuilder configFile = new StringBuilder();
+        preamble(configFile);
+        dataset(configFile, dataset);
+        trainers(configFile);
+        
+        configFile.append(" <setwiseselector name=\"DecisionTreeSelection\" param=\"max median stddev\" />\n");
+        configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
+        
+        postamble(configFile);
+        return configFile.toString();
+    }
+    
+    public static String CamargoCruz09(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
@@ -168,7 +255,18 @@
     }
     
-    // TODO Liu 2010
-    
-    public static String Menzies2011(Dataset dataset) {
+    public static String Liu10(Dataset dataset) {
+        StringBuilder configFile = new StringBuilder();
+        preamble(configFile);
+        dataset(configFile, dataset);
+        
+        configFile.append(" <setwisetrainer name=\"GPTraining\" param=\"numberRuns:1,errorType2Weight:15\" />");
+        configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
+        configFile.append(" <repetitions number=\"10\" />\n");
+        
+        postamble(configFile);
+        return configFile.toString();
+    }
+    
+    public static String Menzies11(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
@@ -177,10 +275,11 @@
         trainersLocalWhere(configFile);        
         configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
-        
-        postamble(configFile);
-        return configFile.toString();
-    }
-    
-    public static String Ma2012(Dataset dataset) {
+        configFile.append(" <repetitions number=\"10\" />\n");
+        
+        postamble(configFile);
+        return configFile.toString();
+    }
+    
+    public static String Ma12(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
@@ -195,5 +294,5 @@
     }
     
-    public static String Peters2012(Dataset dataset) {
+    public static String Peters12(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
@@ -203,10 +302,11 @@
         configFile.append(" <preprocessor name=\"MORPH\" param=\"\" />\n");
         configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
-        
-        postamble(configFile);
-        return configFile.toString();
-    }
-    
-    public static String Uchigaki2012(Dataset dataset) {
+        configFile.append(" <repetitions number=\"10\" />\n");
+        
+        postamble(configFile);
+        return configFile.toString();
+    }
+    
+    public static String Uchigaki12(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
@@ -214,12 +314,12 @@
         
         configFile.append(" <preprocessor name=\"ZScoreNormalization\" param=\"\" />\n");
-        configFile.append(" <trainer name=\"WekaTraining\" param=\"LogisticEnsemble de.ugoe.cs.cpdp.wekaclassifier.LogisticEnsemble\" />\n");
-        configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
-        
-        postamble(configFile);
-        return configFile.toString();
-    }
-    
-    public static String Canfora2013(Dataset dataset) {
+        configFile.append(" <trainer name=\"WekaTraining\" param=\"LE de.ugoe.cs.cpdp.wekaclassifier.LogisticEnsemble\" />\n");
+        configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
+        
+        postamble(configFile);
+        return configFile.toString();
+    }
+    
+    public static String Canfora13(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
@@ -229,10 +329,11 @@
         configFile.append(" <trainer name=\"WekaTraining\" param=\"MODEP de.ugoe.cs.cpdp.wekaclassifier.MODEPClassifier -R 0.7\" />\n");
         configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
-        
-        postamble(configFile);
-        return configFile.toString();
-    }
-    
-    public static String Peters2013(Dataset dataset) {
+        configFile.append(" <repetitions number=\"10\" />\n");
+        
+        postamble(configFile);
+        return configFile.toString();
+    }
+    
+    public static String Peters13(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
@@ -241,19 +342,49 @@
         
         configFile.append(" <preprocessor name=\"MORPH\" param=\"\" />\n");
-        configFile.append(" <pointwiseselector name=\"CLIFF\" param=\"0.10\" />");
-        configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
-        
-        postamble(configFile);
-        return configFile.toString();
-    }
-    
-    public static String Herbold2013(Dataset dataset) {
-        StringBuilder configFile = new StringBuilder();
-        preamble(configFile);
-        dataset(configFile, dataset);
-        trainers(configFile);
+        configFile.append(" <pointwiseselector name=\"CLIFF\" param=\"0.40\" />");
+        configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
+        configFile.append(" <repetitions number=\"10\" />\n");
+        
+        postamble(configFile);
+        return configFile.toString();
+    }
+    
+    public static String Herbold13(Dataset dataset) {
+        StringBuilder configFile = new StringBuilder();
+        preamble(configFile);
+        dataset(configFile, dataset);
+        trainers(configFile);
+        
+        int numNeighbors;
+        switch (dataset)
+        {
+            case AEEEM:
+                numNeighbors = 2;
+                break;
+            case MDP:
+                numNeighbors = 5;
+                break;
+            case JURECZKO:
+                numNeighbors = 30;
+                break;
+            case FILTERJURECZKO:
+                numNeighbors = 20;
+                break;
+            case RELINK:
+                numNeighbors = 1;
+                break;
+            case NETGENE:
+                numNeighbors = 1;
+                break;
+            case SELECTEDJURECZKO:
+                numNeighbors = 4;
+                break;
+            default:
+                numNeighbors = 10;
+                break;
+        }
         
         configFile.append(" <setwisepreprocessor name=\"Normalization\" param=\"\" />\n");
-        configFile.append(" <setwiseselector name=\"SetWiseEMClusterSelection\" param=\"mean stddev\" />\n");
+        configFile.append(" <setwiseselector name=\"SetWiseKNNSelection\" param=\""+ numNeighbors +"\" />\n");
         configFile.append(" <postprocessor name=\"BiasedWeights\" param=\"0.5\" />\n");
         configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
@@ -263,5 +394,5 @@
     }
     
-    public static String ZHe2013(Dataset dataset) {
+    public static String ZHe13(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
@@ -269,14 +400,44 @@
         trainersBagging(configFile);
         
+        int numNeighbors;
+        switch (dataset)
+        {
+            case AEEEM:
+                numNeighbors = 1;
+                break;
+            case MDP:
+                numNeighbors = 4;
+                break;
+            case JURECZKO:
+                numNeighbors = 16;
+                break;
+            case FILTERJURECZKO:
+                numNeighbors = 13;
+                break;
+            case RELINK:
+                numNeighbors = 1;
+                break;
+            case NETGENE:
+                numNeighbors = 1;
+                break;
+            case SELECTEDJURECZKO:
+                numNeighbors = 4;
+                break;
+            default:
+                numNeighbors = 10;
+                break;
+        }
+        
         configFile.append(" <setwisepreprocessor name=\"Normalization\" param=\"\" />\n");
-        configFile.append(" <setwiseselector name=\"SeparatabilitySelection\" param=\"\" />\n");
+        configFile.append(" <setwiseselector name=\"SeparatabilitySelection\" param=\"" + numNeighbors + "\" />\n");
         configFile.append(" <setwisepostprocessor name=\"Undersampling\" param=\"\" />\n");
         configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
-        
-        postamble(configFile);
-        return configFile.toString();
-    }
-    
-    public static String Nam2013(Dataset dataset) {
+        configFile.append(" <repetitions number=\"10\" />\n");
+        
+        postamble(configFile);
+        return configFile.toString();
+    }
+    
+    public static String Nam13(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
@@ -292,22 +453,18 @@
     }
     
-    public static String Panichella2014(Dataset dataset) {
-        StringBuilder configFile = new StringBuilder();
-        preamble(configFile);
-        dataset(configFile, dataset);
-        
-        configFile.append(" <trainer name=\"WekaTraining\" param=\"LogisticCODEP de.ugoe.cs.cpdp.wekaclassifier.LogisticCODEP\" />\n");
-        configFile.append(" <trainer name=\"WekaTraining\" param=\"BayesNetCODEP de.ugoe.cs.cpdp.wekaclassifier.BayesNetCODEP\" />\n");
-        configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
-        
-        postamble(configFile);
-        return configFile.toString();
-    }
-    
-    // TODO F.Zhang 2014
-    
-    // TODO Mizuno 2014: data not public
-    
-    public static String Ryu2014(Dataset dataset) {
+    public static String Panichella14(Dataset dataset) {
+        StringBuilder configFile = new StringBuilder();
+        preamble(configFile);
+        dataset(configFile, dataset);
+        
+        configFile.append(" <trainer name=\"WekaTraining\" param=\"CODEP-LR de.ugoe.cs.cpdp.wekaclassifier.LogisticCODEP\" />\n");
+        configFile.append(" <trainer name=\"WekaTraining\" param=\"CODEP-BN de.ugoe.cs.cpdp.wekaclassifier.BayesNetCODEP\" />\n");
+        configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
+        
+        postamble(configFile);
+        return configFile.toString();
+    }
+    
+    public static String Ryu14(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
@@ -317,10 +474,11 @@
         configFile.append(" <testawaretrainer name=\"WekaTestAwareTraining\" param=\"VCBSVM de.ugoe.cs.cpdp.wekaclassifier.VCBSVM -L 0.1 -B 10\" />\n");
         configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
-        
-        postamble(configFile);
-        return configFile.toString();
-    }
-    
-    public static String PHe2015(Dataset dataset) {
+        configFile.append(" <repetitions number=\"10\" />\n");
+        
+        postamble(configFile);
+        return configFile.toString();
+    }
+    
+    public static String PHe15(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
@@ -336,7 +494,21 @@
     }
     
-    // TODO Peters 2015 (LACE2)
-    
-    public static String Kawata2015(Dataset dataset) {
+    public static String Peters15(Dataset dataset) {
+        StringBuilder configFile = new StringBuilder();
+        preamble(configFile);
+        dataset(configFile, dataset);
+        trainers(configFile);
+        
+        configFile.append(" <setwisepreprocessor name=\"LogarithmTransform\" param=\"\" />\n");
+        configFile.append(" <setwiseselector name=\"LACE2\" param=\"0.4\" />\n");
+        configFile.append(" <pointwiseselector name=\"TurhanFilter\" param=\"1\" />\n");
+        configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
+        configFile.append(" <repetitions number=\"10\" />\n");
+        
+        postamble(configFile);
+        return configFile.toString();
+    }
+    
+    public static String Kawata15(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
@@ -351,22 +523,22 @@
     }
     
-    public static String YZhang2015(Dataset dataset) {
-        StringBuilder configFile = new StringBuilder();
-        preamble(configFile);
-        dataset(configFile, dataset);
-        
-        configFile.append(" <trainer name=\"WekaTraining\" param=\"AVGVote weka.classifiers.meta.Vote -S 1 -B &quot;weka.classifiers.trees.ADTree&quot; -B &quot;weka.classifiers.rules.DecisionTable&quot; -B &quot;weka.classifiers.bayes.BayesNet&quot; -B &quot;weka.classifiers.functions.MultilayerPerceptron&quot; -B &quot;weka.classifiers.functions.RBFNetwork&quot; -R AVG\" />\n");
-        configFile.append(" <trainer name=\"WekaTraining\" param=\"MAXVote weka.classifiers.meta.Vote -S 1 -B &quot;weka.classifiers.trees.ADTree&quot; -B &quot;weka.classifiers.rules.DecisionTable&quot; -B &quot;weka.classifiers.bayes.BayesNet&quot; -B &quot;weka.classifiers.functions.MultilayerPerceptron&quot; -B &quot;weka.classifiers.functions.RBFNetwork&quot; -R MAX\" />\n");
-        configFile.append(" <trainer name=\"WekaTraining\" param=\"BAGGINGC4.5 weka.classifiers.meta.Bagging -P 100 -S 1 -I 10 -W weka.classifiers.trees.J48\" />\n");
-        configFile.append(" <trainer name=\"WekaTraining\" param=\"BAGGINGNaiveBayes weka.classifiers.meta.Bagging -P 100 -S 1 -I 10 -W weka.classifiers.bayes.NaiveBayes\" />\n");
-        configFile.append(" <trainer name=\"WekaTraining\" param=\"BOOSTINGC4.5 weka.classifiers.meta.AdaBoostM1 -P 100 -S 1 -I 10 -W weka.classifiers.trees.J48\" />\n");
-        configFile.append(" <trainer name=\"WekaTraining\" param=\"BOOSTINGNaiveBayes weka.classifiers.meta.AdaBoostM1 -P 100 -S 1 -I 10 -W weka.classifiers.bayes.NaiveBayes\" />\n");
-        configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
-        
-        postamble(configFile);
-        return configFile.toString();
-    }
-    
-    public static String Amasaki2015(Dataset dataset) {
+    public static String YZhang15(Dataset dataset) {
+        StringBuilder configFile = new StringBuilder();
+        preamble(configFile);
+        dataset(configFile, dataset);
+        
+        configFile.append(" <trainer name=\"WekaTraining\" param=\"AVGVOTE weka.classifiers.meta.Vote -S 1 -B &quot;weka.classifiers.trees.ADTree&quot; -B &quot;de.ugoe.cs.cpdp.wekaclassifier.DecisionTableWrapper&quot; -B &quot;de.ugoe.cs.cpdp.wekaclassifier.BayesNetWrapper&quot; -B &quot;weka.classifiers.functions.MultilayerPerceptron&quot; -B &quot;weka.classifiers.functions.RBFNetwork&quot; -R AVG\" />\n");
+        configFile.append(" <trainer name=\"WekaTraining\" param=\"MAXVOTE weka.classifiers.meta.Vote -S 1 -B &quot;weka.classifiers.trees.ADTree&quot; -B &quot;de.ugoe.cs.cpdp.wekaclassifier.DecisionTableWrapper&quot; -B &quot;de.ugoe.cs.cpdp.wekaclassifier.BayesNetWrapper&quot; -B &quot;weka.classifiers.functions.MultilayerPerceptron&quot; -B &quot;weka.classifiers.functions.RBFNetwork&quot; -R MAX\" />\n");
+        configFile.append(" <trainer name=\"WekaTraining\" param=\"BAG-DT weka.classifiers.meta.Bagging -P 100 -S 1 -I 10 -W weka.classifiers.trees.J48\" />\n");
+        configFile.append(" <trainer name=\"WekaTraining\" param=\"BAG-NB weka.classifiers.meta.Bagging -P 100 -S 1 -I 10 -W weka.classifiers.bayes.NaiveBayes\" />\n");
+        configFile.append(" <trainer name=\"WekaTraining\" param=\"BOOST-DT weka.classifiers.meta.AdaBoostM1 -P 100 -S 1 -I 10 -W weka.classifiers.trees.J48\" />\n");
+        configFile.append(" <trainer name=\"WekaTraining\" param=\"BOOST-NB weka.classifiers.meta.AdaBoostM1 -P 100 -S 1 -I 10 -W weka.classifiers.bayes.NaiveBayes\" />\n");
+        configFile.append(" <eval name=\"NormalWekaEvaluation\" param=\"\" />\n");
+        
+        postamble(configFile);
+        return configFile.toString();
+    }
+    
+    public static String Amasaki15(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
@@ -383,5 +555,5 @@
     }
     
-    public static String Ryu2015b(Dataset dataset) {
+    public static String Ryu15(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
@@ -397,7 +569,5 @@
     }
     
-    // TODO Cao 2015
-    
-    public static String Nam2015b(Dataset dataset) {
+    public static String Nam15(Dataset dataset) {
         StringBuilder configFile = new StringBuilder();
         preamble(configFile);
