From 984f38f797cefe836256326168a25dc197ec7334 Mon Sep 17 00:00:00 2001 From: Fabian Prasser Date: Fri, 9 Feb 2024 17:53:45 +0100 Subject: [PATCH] Try to address issue #457 --- .../metric/v2/MetricSDNMEntropyBasedInformationLoss.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/org/deidentifier/arx/metric/v2/MetricSDNMEntropyBasedInformationLoss.java b/src/main/org/deidentifier/arx/metric/v2/MetricSDNMEntropyBasedInformationLoss.java index bc04419267..bdb10f655a 100644 --- a/src/main/org/deidentifier/arx/metric/v2/MetricSDNMEntropyBasedInformationLoss.java +++ b/src/main/org/deidentifier/arx/metric/v2/MetricSDNMEntropyBasedInformationLoss.java @@ -83,7 +83,12 @@ public static double getEntropyBasedInformationLoss(Transformation transforma // IL = log(share_1 * share_2 * ... * share_n) / maxIL + 1 // // For attributes transformed with microaggregation, we set share_i to 1/#distinct-values-in-eq-class and size_i to the #distinct-values-in-dataset - + + // If there is no information, no information can be lost + if (maxIL == 0 || Double.isNaN(maxIL) || Double.isInfinite(maxIL)) { + return 0d; + } + int[] generalization = transformation.getGeneralization(); double infoLoss = 1d; entry.read();