diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierLinearScaling.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierLinearScaling.java | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierLinearScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierLinearScaling.java index e7222b96..8f008176 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierLinearScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierLinearScaling.java @@ -25,8 +25,8 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; import java.util.ArrayList; -import de.lmu.ifi.dbs.elki.database.ids.DBID; import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; +import de.lmu.ifi.dbs.elki.database.relation.Relation; import de.lmu.ifi.dbs.elki.math.DoubleMinMax; import de.lmu.ifi.dbs.elki.math.MeanVariance; import de.lmu.ifi.dbs.elki.result.outlier.OutlierResult; @@ -54,7 +54,7 @@ public class OutlierLinearScaling implements OutlierScalingFunction { * Key: {@code -linearscale.min} * </p> */ - public static final OptionID MIN_ID = OptionID.getOrCreateOptionID("linearscale.min", "Fixed minimum to use in linear scaling."); + public static final OptionID MIN_ID = new OptionID("linearscale.min", "Fixed minimum to use in linear scaling."); /** * Parameter to specify the maximum value. @@ -62,7 +62,7 @@ public class OutlierLinearScaling implements OutlierScalingFunction { * Key: {@code -linearscale.max} * </p> */ - public static final OptionID MAX_ID = OptionID.getOrCreateOptionID("linearscale.max", "Fixed maximum to use in linear scaling."); + public static final OptionID MAX_ID = new OptionID("linearscale.max", "Fixed maximum to use in linear scaling."); /** * Flag to use the mean as minimum for scaling. @@ -71,7 +71,7 @@ public class OutlierLinearScaling implements OutlierScalingFunction { * Key: {@code -linearscale.usemean} * </p> */ - public static final OptionID MEAN_ID = OptionID.getOrCreateOptionID("linearscale.usemean", "Use the mean as minimum for scaling."); + public static final OptionID MEAN_ID = new OptionID("linearscale.usemean", "Use the mean as minimum for scaling."); /** * Flag to use ignore zeros when computing the min and max. @@ -80,7 +80,7 @@ public class OutlierLinearScaling implements OutlierScalingFunction { * Key: {@code -linearscale.ignorezero} * </p> */ - public static final OptionID NOZEROS_ID = OptionID.getOrCreateOptionID("linearscale.ignorezero", "Ignore zero entries when computing the minimum and maximum."); + public static final OptionID NOZEROS_ID = new OptionID("linearscale.ignorezero", "Ignore zero entries when computing the minimum and maximum."); /** * Field storing the Minimum to use @@ -148,9 +148,9 @@ public class OutlierLinearScaling implements OutlierScalingFunction { MeanVariance mv = new MeanVariance(); DoubleMinMax mm = (max == null) ? new DoubleMinMax() : null; boolean skippedzeros = false; - for(DBIDIter iditer = or.getScores().iterDBIDs(); iditer.valid(); iditer.advance()) { - DBID id = iditer.getDBID(); - double val = or.getScores().get(id); + Relation<Double> scores = or.getScores(); + for(DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { + double val = scores.get(id); if(nozeros && val == 0.0) { skippedzeros = true; continue; @@ -175,9 +175,9 @@ public class OutlierLinearScaling implements OutlierScalingFunction { if(min == null || max == null) { boolean skippedzeros = false; DoubleMinMax mm = new DoubleMinMax(); - for(DBIDIter iditer = or.getScores().iterDBIDs(); iditer.valid(); iditer.advance()) { - DBID id = iditer.getDBID(); - double val = or.getScores().get(id); + Relation<Double> scores = or.getScores(); + for(DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { + double val = scores.get(id); if(nozeros && val == 0.0) { skippedzeros = true; continue; @@ -239,12 +239,14 @@ public class OutlierLinearScaling implements OutlierScalingFunction { @Override protected void makeOptions(Parameterization config) { super.makeOptions(config); - DoubleParameter minP = new DoubleParameter(MIN_ID, true); + DoubleParameter minP = new DoubleParameter(MIN_ID); + minP.setOptional(true); if(config.grab(minP)) { min = minP.getValue(); } - DoubleParameter maxP = new DoubleParameter(MAX_ID, true); + DoubleParameter maxP = new DoubleParameter(MAX_ID); + maxP.setOptional(true); if(config.grab(maxP)) { max = maxP.getValue(); } @@ -260,7 +262,7 @@ public class OutlierLinearScaling implements OutlierScalingFunction { } // Use-Mean and Minimum value must not be set at the same time! - ArrayList<Parameter<?, ?>> minmean = new ArrayList<Parameter<?, ?>>(); + ArrayList<Parameter<?>> minmean = new ArrayList<Parameter<?>>(); minmean.add(minP); minmean.add(meanF); GlobalParameterConstraint gpc = new OnlyOneIsAllowedToBeSetGlobalConstraint(minmean); |