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();