Skip to content
Snippets Groups Projects
Commit a00ee981 authored by VERNEREY Charles's avatar VERNEREY Charles
Browse files

Add rules ranked with the oracle

parent ff12856a
No related branches found
No related tags found
No related merge requests found
......@@ -72,10 +72,11 @@ L'usage de `-d`, `-m` et `--seed` est le même que précédemment (ces paramètr
- **kappalab**
- **ahp**
- **svm**
- `-r` : chemin où sera stocké les résultats de l'apprentissage, 3 fichiers vont être créés dans cet exemple :
- `-r` : chemin où sera stocké les résultats de l'apprentissage, 4 fichiers vont être créés dans cet exemple :
- *results/train/iris_func.jsonl* : représente la fonction apprise du modèle
- *results/train/iris_metrics.jsonl* : représente les métriques utilisées pour évaluer la qualité du modèle
- *results/train/iris_ordered_test_rules.jsonl* : fichier avec les règles du jeu de test classées à l'aide la fonction apprise du modèle
- *results/train/iris_ordered_test_rules_oracle.jsonl* : fichier avec les règles du jeu de test classées à l'aide de l'oracle
Il est également possible de préciser des paramètres supplémentaires en fonction de l'algorithme d'apprentissage choisi. Si c'est kappalab, alors les paramètres suivants peuvent être rajoutés :
......@@ -195,7 +196,7 @@ Le fichier `iris_metrics.jsonl` a la forme suivante :
Il représente un ensemble de métriques utilisées pour évaluer la qualité de la fonction apprise.
Enfin, le fichier `iris_ordered_test_rules.jsonl` a la forme suivante :
Enfin, le fichier `iris_ordered_test_rules.jsonl` a la forme suivante (même forme pour le fichier de règles classées à l'aide de l'oracle `iris_ordered_test_rules_oracle.jsonl` sauf qu'il n'y a pas de score pour elles) :
```json
{"x":[13],"y":[1,10],"measureValues":{"phi":1.0,"yuleQ":1.0,"kruskal":1.0},"score":1.0}
......
......@@ -191,7 +191,12 @@ public class LearnFunctionAndRankCli implements Callable<Integer> {
IAlternative a = testAlternatives.get(pos);
testRulesRankedWithLearnedFunc.get(i).setScore(func.computeScore(a));
}
List<RuleWithMeasures> testRulesRankedWithOracle = Arrays
.stream(expectedTestAlternativesRanking.getRanking())
.mapToObj(i -> new RuleWithMeasures(testRules.get(i), false))
.collect(Collectors.toCollection(ArrayList::new));
writeRules(resPath + "_ordered_test_rules.jsonl", testRulesRankedWithLearnedFunc);
writeRules(resPath + "_ordered_test_rules_oracle.jsonl", testRulesRankedWithOracle);
writeObject(resPath + "_func.jsonl", functionParameters);
writeObject(resPath + "_metrics.jsonl", rankingMetricValues);
return 0;
......
......@@ -24,4 +24,11 @@ public class RuleWithMeasures {
measureValues.put(measures[i], a.getVector()[i]);
}
}
public RuleWithMeasures(RuleWithMeasures copy, boolean withScore) {
x = copy.getX();
y = copy.getY();
measureValues = copy.getMeasureValues();
score = withScore ? copy.score : null;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment