/* * ARX: Powerful Data Anonymization * Copyright 2012 - 2017 Fabian Prasser, Florian Kohlmayer and contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.deidentifier.arx.aggregates; /** * Statistics about the equivalence classes. * * @author Fabian Prasser */ public class StatisticsEquivalenceClasses { /** Statistic value */ private final double averageEquivalenceClassSize; /** Statistic value */ private final double averageEquivalenceClassSizeIncludingOutliers; /** Statistic value */ private final int maximalEquivalenceClassSize; /** Statistic value */ private final int maximalEquivalenceClassSizeIncludingOutliers; /** Statistic value */ private final int minimalEquivalenceClassSize; /** Statistic value */ private final int minimalEquivalenceClassSizeIncludingOutliers; /** Statistic value */ private final int numberOfEquivalenceClasses; /** Statistic value */ private final int numberOfEquivalenceClassesIncludingOutliers; /** Statistic value */ private final int numberOfTuples; /** Statistic value */ private final int numberOfOutlyingTuples; /** * Creates a new instance * @param averageEquivalenceClassSize * @param averageEquivalenceClassSizeIncludingOutliers * @param maximalEquivalenceClassSize * @param maximalEquivalenceClassSizeIncludingOutliers * @param minimalEquivalenceClassSize * @param minimalEquivalenceClassSizeIncludingOutliers * @param numberOfEquivalenceClasses * @param numberOfEquivalenceClassesIncludingOutliers * @param numberOfTuples * @param numberOfOutlyingTuples */ public StatisticsEquivalenceClasses(double averageEquivalenceClassSize, double averageEquivalenceClassSizeIncludingOutliers, int maximalEquivalenceClassSize, int maximalEquivalenceClassSizeIncludingOutliers, int minimalEquivalenceClassSize, int minimalEquivalenceClassSizeIncludingOutliers, int numberOfEquivalenceClasses, int numberOfEquivalenceClassesIncludingOutliers, int numberOfTuples, int numberOfOutlyingTuples) { this.averageEquivalenceClassSize = averageEquivalenceClassSize; this.averageEquivalenceClassSizeIncludingOutliers = averageEquivalenceClassSizeIncludingOutliers; this.maximalEquivalenceClassSize = maximalEquivalenceClassSize; this.maximalEquivalenceClassSizeIncludingOutliers = maximalEquivalenceClassSizeIncludingOutliers; this.minimalEquivalenceClassSize = minimalEquivalenceClassSize; this.minimalEquivalenceClassSizeIncludingOutliers = minimalEquivalenceClassSizeIncludingOutliers; this.numberOfEquivalenceClasses = numberOfEquivalenceClasses; this.numberOfEquivalenceClassesIncludingOutliers = numberOfEquivalenceClassesIncludingOutliers; this.numberOfTuples = numberOfTuples; this.numberOfOutlyingTuples = numberOfOutlyingTuples; } /** * Returns the maximal size of an equivalence class. * * @return */ public double getAverageEquivalenceClassSize(){ return averageEquivalenceClassSize; } /** * Returns the maximal size of an equivalence class. * This number takes into account one additional equivalence class containing all outliers * @return */ public double getAverageEquivalenceClassSizeIncludingOutliers(){ return averageEquivalenceClassSizeIncludingOutliers; } /** * Returns the maximal size of an equivalence class. * * @return */ public int getMaximalEquivalenceClassSize(){ return maximalEquivalenceClassSize; } /** * Returns the maximal size of an equivalence class. * This number takes into account one additional equivalence class containing all outliers * @return */ public int getMaximalEquivalenceClassSizeIncludingOutliers(){ return maximalEquivalenceClassSizeIncludingOutliers; } /** * Returns the minimal size of an equivalence class. * * @return */ public int getMinimalEquivalenceClassSize(){ return minimalEquivalenceClassSize; } /** * Returns the minimal size of an equivalence class. * This number takes into account one additional equivalence class containing all outliers * @return */ public int getMinimalEquivalenceClassSizeIncludingOutliers(){ return minimalEquivalenceClassSizeIncludingOutliers; } /** * Returns the number of equivalence classes in the currently selected data * representation. * * @return */ public int getNumberOfEquivalenceClasses() { return numberOfEquivalenceClasses; } /** * Returns the number of outlying equivalence classes in the currently selected data * representation. * * @return */ public int getNumberOfEquivalenceClassesIncludingOutliers() { return numberOfEquivalenceClassesIncludingOutliers; } /** * Returns the number of outliers in the currently selected data * representation. * * @return */ public int getNumberOfOutlyingTuples() { return numberOfOutlyingTuples; } /** * Returns the number of tuples in the currently selected data * representation. * * @return */ public int getNumberOfTuples() { return numberOfTuples - numberOfOutlyingTuples; } /** * Returns the number of tuples in the currently selected data * representation. * * @return */ public int getNumberOfTuplesIncludingOutliers() { return numberOfTuples; } @Override public String toString() { return "EquivalenceClassStatistics {\n- Average equivalence class size = " + getAverageEquivalenceClassSize() + "\n" + "- Average equivalence class size (including outliers) = " + getAverageEquivalenceClassSizeIncludingOutliers() + "\n" + "- Maximal equivalence class size = " + getMaximalEquivalenceClassSize() + "\n" + "- Maximal equivalence class size (including outliers) = " + getMaximalEquivalenceClassSizeIncludingOutliers() + "\n" + "- Minimal equivalence class size = " + getMinimalEquivalenceClassSize() + "\n" + "- Minimal equivalence class size (including outliers) = " + getMinimalEquivalenceClassSizeIncludingOutliers() + "\n" + "- Number of equivalence classes = " + getNumberOfEquivalenceClasses() + "\n" + "- Number of equivalence classes (including outliers) = " + getNumberOfEquivalenceClassesIncludingOutliers() + "\n" + "- Number of tuples = " + getNumberOfTuples() + "\n" + "- Number of outlying tuples = " + getNumberOfOutlyingTuples() + "\n}"; } }