package controller.effectiveoutlierness; import controller.ElementData; import controller.Feature; import gui.settings.Settings; /** * This class calculates the effective outlierness according to the average. */ public class Average extends Calculation { /** * The name of this calculation method */ private String name = null; /** * Constructor of a new effective outlierness calculation by average */ public Average() { super(); this.name = Settings.getInstance().getResourceBundle().getString("effectiveAverage"); } @Override public void calculate(Feature[] features, ElementData element) { float sum = 0; int count = 0; for (Feature current : features) { if (current.isOutlier()) { sum += element.getValue(current); count++; } } // divide by zero is not possible, b/c the import checks that there is at least one outlier feature float result = sum / count; // reset the min if needed if (result < this.getMinValue()) { this.setMinValue(result); } // reset the max if needed if (result > this.getMaxValue()) { this.setMaxValue(result); } element.addValue(features[0].getId(), result); } @Override public String getName() { return this.name; } }