Skip to content
Snippets Groups Projects
Commit 67f2e923 authored by AjUm-HEIDI's avatar AjUm-HEIDI
Browse files

Add penalty

parent 27296f36
No related branches found
No related tags found
No related merge requests found
......@@ -17,6 +17,20 @@ from ontolearn.owlapy.model import OWLNamedIndividual, IRI, OWLObjectIntersectio
OWLObjectSomeValuesFrom, OWLClass, OWLNothing
import re
class LinearPressureFitness():
"""Linear parametric parsimony pressure."""
__slots__ = 'gain', 'penalty'
def __init__(self, gain: float = 2048.0, penalty: float = 1.0):
self.gain = gain
self.penalty = penalty
def apply(self, individual):
quality = individual.quality.values[0]
fitness = self.gain*quality - self.penalty*len(individual)
individual.fitness.values = (round(fitness, 5),)
class DiscriminativeExplainer:
"""An abstract class that represents a model explainer for a Graph Neural Network (GNN).
......@@ -98,7 +112,8 @@ class DiscriminativeExplainer:
debug: Optional[bool] = False,
max_runtime: Optional[int] = 60,
num_generations: Optional[int] = 600,
quality_func: Optional[AbstractScorer] = None):
quality_func: Optional[AbstractScorer] = None,
penalty=1.0):
"""Generates an explanation for the given label using the GNN and dataset.
Args:
......@@ -121,7 +136,8 @@ class DiscriminativeExplainer:
max_runtime=max_runtime,
num_generations=num_generations,
quality_func=quality_func,
population_size=1000
population_size=1000,
fitness_func=LinearPressureFitness(penalty=penalty)
)
positive_examples = []
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment