Skip to content

Commit 927107d

Browse files
committed
Update log messages
1 parent 3da8c2e commit 927107d

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

swan-pipeline/src/main/java/de/fraunhofer/iem/swan/features/WekaFeatureSet.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@
66
import de.fraunhofer.iem.swan.io.dataset.Dataset;
77
import de.fraunhofer.iem.swan.model.ModelEvaluator;
88
import de.fraunhofer.iem.swan.util.Util;
9+
import org.slf4j.Logger;
10+
import org.slf4j.LoggerFactory;
11+
import weka.attributeSelection.AttributeSelection;
12+
import weka.attributeSelection.InfoGainAttributeEval;
13+
import weka.attributeSelection.Ranker;
914
import weka.core.Attribute;
1015
import weka.core.Instances;
1116
import weka.core.converters.ArffLoader;
@@ -20,6 +25,7 @@
2025
public class WekaFeatureSet extends FeatureSet implements IFeatureSet {
2126

2227
HashMap<String, Instances> structures;
28+
private static final Logger logger = LoggerFactory.getLogger(WekaFeatureSet.class);
2329

2430
public WekaFeatureSet(Dataset dataset, SwanOptions options) {
2531
super(dataset, options, ModelEvaluator.Toolkit.WEKA);
@@ -57,6 +63,9 @@ public void createFeatures() {
5763

5864
ArffLoader loader = new ArffLoader();
5965

66+
logger.info("Using default {} TRAIN dataset(s) file(s) in {}",
67+
options.getAllClasses(), options.getArffInstancesFiles());
68+
6069
for (Category category : options.getAllClasses().stream().map(Category::fromText).collect(Collectors.toList())) {
6170

6271
List<String> instancesFile = options.getArffInstancesFiles().stream().filter(c -> c.contains(category.getId().toLowerCase())).collect(Collectors.toList());
@@ -74,8 +83,8 @@ public void createFeatures() {
7483
ArffLoader arffLoader = new ArffLoader();
7584
arffLoader.setSource(new File(instancesFile.get(x)));
7685

77-
trainInstances = mergeInstances(trainInstances, arffLoader.getDataSet());
78-
structure = mergeInstances(structure, arffLoader.getStructure());
86+
trainInstances = joinInstances(trainInstances, arffLoader.getDataSet());
87+
structure = joinInstances(structure, arffLoader.getStructure());
7988
}
8089
}
8190

swan-pipeline/src/main/java/de/fraunhofer/iem/swan/model/MonteCarloValidator.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import weka.classifiers.evaluation.output.prediction.CSV;
77
import weka.core.Instances;
88

9+
import java.text.DecimalFormat;
910
import java.util.ArrayList;
1011
import java.util.Collections;
1112
import java.util.HashMap;
@@ -18,6 +19,7 @@ public class MonteCarloValidator {
1819

1920
private ArrayList<String> predictions;
2021
private HashMap<String, ArrayList<Double>> fMeasure;
22+
private DecimalFormat df = new DecimalFormat("####0.00");
2123

2224
public MonteCarloValidator() {
2325
predictions = new ArrayList<>();
@@ -98,9 +100,9 @@ public void updateResultSet(Instances instances, Evaluation eval) {
98100

99101
if (!currentClass.contentEquals("0")) {
100102
if (!fMeasure.containsKey(currentClass))
101-
fMeasure.put(currentClass, new ArrayList<>(Collections.singletonList(Double.isNaN(eval.fMeasure(c)) ? 0 : eval.fMeasure(c))));
103+
fMeasure.put(currentClass, new ArrayList<>(Collections.singletonList(Double.isNaN(eval.fMeasure(c)) ? 0 : Double.parseDouble(df.format(eval.fMeasure(c))))));
102104
else {
103-
fMeasure.get(currentClass).add(Double.isNaN(eval.fMeasure(c)) ? 0 : eval.fMeasure(c));
105+
fMeasure.get(currentClass).add(Double.isNaN(eval.fMeasure(c)) ? 0 : Double.parseDouble(df.format(eval.fMeasure(c))));
104106
}
105107
}
106108
}

swan-pipeline/src/main/java/de/fraunhofer/iem/swan/model/toolkit/Weka.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,13 @@ public HashMap<String, HashMap<String, String>> trainModel() {
5151
case VALIDATE:
5252

5353
//Phase 1: classify SRM classes
54+
logger.info("Performing {}-fold cross-validation for {} using WEKA", options.getIterations(), options.getSrmClasses());
5455
for (String srm : options.getSrmClasses())
5556
runManualEvaluation(features.getTrainInstances().get(srm));
5657

5758
//Filter methods from CWE instances that were not classified into one of the SRM classes
5859
//Phase 2: classify CWE classes
60+
logger.info("Performing {}-fold cross-validation for {} using WEKA", options.getIterations(), options.getCweClasses());
5961
for (String cwe : options.getCweClasses())
6062
runManualEvaluation(features.getTrainInstances().get(cwe));
6163

0 commit comments

Comments
 (0)