summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierLinearScaling.java
diff options
context:
space:
mode:
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.java30
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);