diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/utilities/scaling')
25 files changed, 91 insertions, 92 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/ClipScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/ClipScaling.java index 068e1230..3fa42408 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/ClipScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/ClipScaling.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/GammaScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/GammaScaling.java index daff7275..998b3c52 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/GammaScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/GammaScaling.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/IdentityScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/IdentityScaling.java index 7f24431d..6820f3c1 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/IdentityScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/IdentityScaling.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/LinearScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/LinearScaling.java index ef28c434..01721c34 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/LinearScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/LinearScaling.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/MinusLogScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/MinusLogScaling.java index 8e497dd9..0a18ca00 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/MinusLogScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/MinusLogScaling.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/ScalingFunction.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/ScalingFunction.java index c738aa9a..9aedddc9 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/ScalingFunction.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/ScalingFunction.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -23,8 +23,6 @@ package de.lmu.ifi.dbs.elki.utilities.scaling; along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import de.lmu.ifi.dbs.elki.utilities.optionhandling.Parameterizable; - /** * Interface for scaling functions used e.g. by outlier evaluation such as * Histograms and visualization. @@ -39,7 +37,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.Parameterizable; * * @author Erich Schubert */ -public interface ScalingFunction extends Parameterizable { +public interface ScalingFunction { /** * Transform a given value using the scaling function. * diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/StaticScalingFunction.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/StaticScalingFunction.java index 27d12db4..633fad16 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/StaticScalingFunction.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/StaticScalingFunction.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/COPOutlierScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/COPOutlierScaling.java index 202d1044..9f00d9ab 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/COPOutlierScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/COPOutlierScaling.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -26,7 +26,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; import java.util.Arrays; import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; -import de.lmu.ifi.dbs.elki.database.relation.Relation; +import de.lmu.ifi.dbs.elki.database.relation.DoubleRelation; import de.lmu.ifi.dbs.elki.math.statistics.distribution.Distribution; import de.lmu.ifi.dbs.elki.math.statistics.distribution.estimator.meta.BestFitEstimator; import de.lmu.ifi.dbs.elki.result.outlier.InvertedOutlierScoreMeta; @@ -117,11 +117,11 @@ public class COPOutlierScaling implements OutlierScalingFunction { public void prepare(OutlierResult or) { double[] s; { - Relation<Double> scores = or.getScores(); + DoubleRelation scores = or.getScores(); s = new double[scores.size()]; int i = 0; for (DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance(), i++) { - s[i] = scores.get(id); + s[i] = scores.doubleValue(id); } } Arrays.sort(s); diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/HeDESNormalizationOutlierScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/HeDESNormalizationOutlierScaling.java index 5e55c2e0..4d7d4d9f 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/HeDESNormalizationOutlierScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/HeDESNormalizationOutlierScaling.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -24,7 +24,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; */ import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; -import de.lmu.ifi.dbs.elki.database.relation.Relation; +import de.lmu.ifi.dbs.elki.database.relation.DoubleRelation; 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; @@ -63,9 +63,9 @@ public class HeDESNormalizationOutlierScaling implements OutlierScalingFunction MeanVariance mv = new MeanVariance(); DoubleMinMax minmax = new DoubleMinMax(); - Relation<Double> scores = or.getScores(); + DoubleRelation scores = or.getScores(); for (DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { - double val = scores.get(id); + double val = scores.doubleValue(id); if (!Double.isNaN(val) && !Double.isInfinite(val)) { mv.put(val); minmax.put(val); diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/MinusLogGammaScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/MinusLogGammaScaling.java index effbcfe0..0ba85d79 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/MinusLogGammaScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/MinusLogGammaScaling.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -24,7 +24,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; */ import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; -import de.lmu.ifi.dbs.elki.database.relation.Relation; +import de.lmu.ifi.dbs.elki.database.relation.DoubleRelation; import de.lmu.ifi.dbs.elki.math.DoubleMinMax; import de.lmu.ifi.dbs.elki.math.MeanVariance; import de.lmu.ifi.dbs.elki.math.statistics.distribution.GammaDistribution; @@ -68,9 +68,9 @@ public class MinusLogGammaScaling extends OutlierGammaScaling { meta = or.getOutlierMeta(); // Determine Minimum and Maximum. DoubleMinMax mm = new DoubleMinMax(); - Relation<Double> scores = or.getScores(); + DoubleRelation scores = or.getScores(); for(DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { - double score = scores.get(id); + double score = scores.doubleValue(id); if(!Double.isNaN(score) && !Double.isInfinite(score)) { mm.put(score); } @@ -80,7 +80,7 @@ public class MinusLogGammaScaling extends OutlierGammaScaling { // with the prescaling, do Gamma Scaling. MeanVariance mv = new MeanVariance(); for(DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { - double score = scores.get(id); + double score = scores.doubleValue(id); score = preScale(score); if(!Double.isNaN(score) && !Double.isInfinite(score)) { mv.put(score); diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/MinusLogStandardDeviationScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/MinusLogStandardDeviationScaling.java index d30fbac7..1b5c7023 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/MinusLogStandardDeviationScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/MinusLogStandardDeviationScaling.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -24,7 +24,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; */ import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; -import de.lmu.ifi.dbs.elki.database.relation.Relation; +import de.lmu.ifi.dbs.elki.database.relation.DoubleRelation; import de.lmu.ifi.dbs.elki.math.MathUtil; import de.lmu.ifi.dbs.elki.math.Mean; import de.lmu.ifi.dbs.elki.math.MeanVariance; @@ -69,9 +69,9 @@ public class MinusLogStandardDeviationScaling extends StandardDeviationScaling { public void prepare(OutlierResult or) { if(fixedmean == null) { MeanVariance mv = new MeanVariance(); - Relation<Double> scores = or.getScores(); + DoubleRelation scores = or.getScores(); for(DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { - double val = -Math.log(scores.get(id)); + double val = -Math.log(scores.doubleValue(id)); if(!Double.isNaN(val) && !Double.isInfinite(val)) { mv.put(val); } @@ -82,9 +82,9 @@ public class MinusLogStandardDeviationScaling extends StandardDeviationScaling { else { mean = fixedmean; Mean sqsum = new Mean(); - Relation<Double> scores = or.getScores(); + DoubleRelation scores = or.getScores(); for(DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { - double val = -Math.log(scores.get(id)); + double val = -Math.log(scores.doubleValue(id)); if(!Double.isNaN(val) && !Double.isInfinite(val)) { sqsum.put((val - mean) * (val - mean)); } diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/MixtureModelOutlierScalingFunction.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/MixtureModelOutlierScalingFunction.java index 9c5ad920..5c1d8f5f 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/MixtureModelOutlierScalingFunction.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/MixtureModelOutlierScalingFunction.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -26,7 +26,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; import de.lmu.ifi.dbs.elki.database.ids.ArrayDBIDs; import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; import de.lmu.ifi.dbs.elki.database.ids.DBIDUtil; -import de.lmu.ifi.dbs.elki.database.relation.Relation; +import de.lmu.ifi.dbs.elki.database.relation.DoubleRelation; import de.lmu.ifi.dbs.elki.logging.Logging; import de.lmu.ifi.dbs.elki.math.MathUtil; import de.lmu.ifi.dbs.elki.math.MeanVariance; @@ -122,9 +122,9 @@ public class MixtureModelOutlierScalingFunction implements OutlierScalingFunctio public void prepare(OutlierResult or) { // Initial parameters - are these defaults sounds? MeanVariance mv = new MeanVariance(); - Relation<Double> scores = or.getScores(); + DoubleRelation scores = or.getScores(); for (DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { - double val = scores.get(id); + double val = scores.doubleValue(id); if (!Double.isNaN(val) && !Double.isInfinite(val)) { mv.put(val); } @@ -151,7 +151,7 @@ public class MixtureModelOutlierScalingFunction implements OutlierScalingFunctio // Weighted deviation from previous mean double sqsum = 0.0; for (int i = 0; i < ids.size(); i++) { - double val = or.getScores().get(ids.get(i)); + double val = or.getScores().doubleValue(ids.get(i)); // E-Step double ti = calcPosterior(val, curAlpha, curMu, curSigma, curLambda); // M-Step diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/MultiplicativeInverseScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/MultiplicativeInverseScaling.java index d5cd3f40..718ca3be 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/MultiplicativeInverseScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/MultiplicativeInverseScaling.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -24,7 +24,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; */ import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; -import de.lmu.ifi.dbs.elki.database.relation.Relation; +import de.lmu.ifi.dbs.elki.database.relation.DoubleRelation; import de.lmu.ifi.dbs.elki.result.outlier.OutlierResult; import de.lmu.ifi.dbs.elki.utilities.datastructures.arraylike.NumberArrayAdapter; import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; @@ -41,11 +41,13 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; * * @author Erich Schubert */ -@Reference(authors="H.-P. Kriegel, P. Kröger, E. Schubert, A. Zimek", title="Interpreting and Unifying Outlier Scores", booktitle="Proc. 11th SIAM International Conference on Data Mining (SDM), Mesa, AZ, 2011", url="http://siam.omnibooksonline.com/2011datamining/data/papers/018.pdf") +@Reference(authors="H.-P. Kriegel, P. Kröger, E. Schubert, A. Zimek", // +title="Interpreting and Unifying Outlier Scores", // +booktitle="Proc. 11th SIAM International Conference on Data Mining (SDM), Mesa, AZ, 2011", // +url="http://siam.omnibooksonline.com/2011datamining/data/papers/018.pdf") public class MultiplicativeInverseScaling implements OutlierScalingFunction { /** - * Constructor, adhering to - * {@link de.lmu.ifi.dbs.elki.utilities.optionhandling.Parameterizable} + * Constructor. */ public MultiplicativeInverseScaling() { super(); @@ -70,9 +72,9 @@ public class MultiplicativeInverseScaling implements OutlierScalingFunction { @Override public void prepare(OutlierResult or) { double max = Double.MIN_VALUE; - Relation<Double> scores = or.getScores(); + DoubleRelation scores = or.getScores(); for(DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { - double val = scores.get(id); + double val = scores.doubleValue(id); double inv = Math.abs(1.0 / val); if(!Double.isInfinite(inv) && !Double.isNaN(inv)) { max = Math.max(max, inv); diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierGammaScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierGammaScaling.java index 7da0c933..b8c4e23a 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierGammaScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierGammaScaling.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -24,7 +24,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; */ import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; -import de.lmu.ifi.dbs.elki.database.relation.Relation; +import de.lmu.ifi.dbs.elki.database.relation.DoubleRelation; import de.lmu.ifi.dbs.elki.math.MeanVariance; import de.lmu.ifi.dbs.elki.math.statistics.distribution.GammaDistribution; import de.lmu.ifi.dbs.elki.result.outlier.OutlierResult; @@ -102,9 +102,9 @@ public class OutlierGammaScaling implements OutlierScalingFunction { public void prepare(OutlierResult or) { meta = or.getOutlierMeta(); MeanVariance mv = new MeanVariance(); - Relation<Double> scores = or.getScores(); + DoubleRelation scores = or.getScores(); for (DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { - double score = scores.get(id); + double score = scores.doubleValue(id); score = preScale(score); if (!Double.isNaN(score) && !Double.isInfinite(score)) { mv.put(score); 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 dfae1068..710ddc91 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 @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -26,7 +26,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; import java.util.ArrayList; import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; -import de.lmu.ifi.dbs.elki.database.relation.Relation; +import de.lmu.ifi.dbs.elki.database.relation.DoubleRelation; 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; @@ -149,9 +149,9 @@ public class OutlierLinearScaling implements OutlierScalingFunction { MeanVariance mv = new MeanVariance(); DoubleMinMax mm = (max == null) ? new DoubleMinMax() : null; boolean skippedzeros = false; - Relation<Double> scores = or.getScores(); + DoubleRelation scores = or.getScores(); for (DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { - double val = scores.get(id); + double val = scores.doubleValue(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(); - Relation<Double> scores = or.getScores(); + DoubleRelation scores = or.getScores(); for (DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { - double val = scores.get(id); + double val = scores.doubleValue(id); if (nozeros && val == 0.0) { skippedzeros = true; continue; diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierMinusLogScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierMinusLogScaling.java index f0e04913..932ee691 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierMinusLogScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierMinusLogScaling.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -24,7 +24,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; */ import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; -import de.lmu.ifi.dbs.elki.database.relation.Relation; +import de.lmu.ifi.dbs.elki.database.relation.DoubleRelation; import de.lmu.ifi.dbs.elki.math.DoubleMinMax; import de.lmu.ifi.dbs.elki.result.outlier.OutlierResult; import de.lmu.ifi.dbs.elki.utilities.datastructures.arraylike.NumberArrayAdapter; @@ -34,7 +34,7 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Reference; * Scaling function to invert values by computing -1 * Math.log(x) * * Useful for example for scaling - * {@link de.lmu.ifi.dbs.elki.algorithm.outlier.ABOD}, but see + * {@link de.lmu.ifi.dbs.elki.algorithm.outlier.anglebased.ABOD}, but see * {@link MinusLogStandardDeviationScaling} and {@link MinusLogGammaScaling} for * more advanced scalings for this algorithm. * @@ -53,8 +53,7 @@ public class OutlierMinusLogScaling implements OutlierScalingFunction { double mlogmax; /** - * Constructor, adhering to - * {@link de.lmu.ifi.dbs.elki.utilities.optionhandling.Parameterizable} + * Constructor. */ public OutlierMinusLogScaling() { super(); @@ -79,9 +78,9 @@ public class OutlierMinusLogScaling implements OutlierScalingFunction { @Override public void prepare(OutlierResult or) { DoubleMinMax mm = new DoubleMinMax(); - Relation<Double> scores = or.getScores(); + DoubleRelation scores = or.getScores(); for (DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { - double val = scores.get(id); + double val = scores.doubleValue(id); if (!Double.isNaN(val) && !Double.isInfinite(val)) { mm.put(val); } diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierScalingFunction.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierScalingFunction.java index 9de05e78..ac2533c1 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierScalingFunction.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierScalingFunction.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierSqrtScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierSqrtScaling.java index 302602d4..2f318ea4 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierSqrtScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/OutlierSqrtScaling.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -24,7 +24,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; */ import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; -import de.lmu.ifi.dbs.elki.database.relation.Relation; +import de.lmu.ifi.dbs.elki.database.relation.DoubleRelation; import de.lmu.ifi.dbs.elki.math.DoubleMinMax; import de.lmu.ifi.dbs.elki.result.outlier.OutlierResult; import de.lmu.ifi.dbs.elki.utilities.datastructures.arraylike.NumberArrayAdapter; @@ -83,9 +83,9 @@ public class OutlierSqrtScaling implements OutlierScalingFunction { public void prepare(OutlierResult or) { if (pmin == null || pmax == null) { DoubleMinMax mm = new DoubleMinMax(); - Relation<Double> scores = or.getScores(); + DoubleRelation scores = or.getScores(); for (DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { - double val = scores.get(id); + double val = scores.doubleValue(id); if (!Double.isInfinite(val)) { mm.put(val); } diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/RankingPseudoOutlierScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/RankingPseudoOutlierScaling.java index 505f2002..4f8fec79 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/RankingPseudoOutlierScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/RankingPseudoOutlierScaling.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -26,7 +26,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; import java.util.Arrays; import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; -import de.lmu.ifi.dbs.elki.database.relation.Relation; +import de.lmu.ifi.dbs.elki.database.relation.DoubleRelation; import de.lmu.ifi.dbs.elki.result.outlier.InvertedOutlierScoreMeta; import de.lmu.ifi.dbs.elki.result.outlier.OutlierResult; import de.lmu.ifi.dbs.elki.utilities.datastructures.arraylike.ArrayLikeUtil; @@ -54,14 +54,14 @@ public class RankingPseudoOutlierScaling implements OutlierScalingFunction { @Override public void prepare(OutlierResult or) { // collect all outlier scores - Relation<Double> oscores = or.getScores(); + DoubleRelation oscores = or.getScores(); scores = new double[oscores.size()]; int pos = 0; if(or.getOutlierMeta() instanceof InvertedOutlierScoreMeta) { inverted = true; } for(DBIDIter iditer = oscores.iterDBIDs(); iditer.valid(); iditer.advance()) { - scores[pos] = oscores.get(iditer); + scores[pos] = oscores.doubleValue(iditer); pos++; } if(pos != oscores.size()) { diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/SigmoidOutlierScalingFunction.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/SigmoidOutlierScalingFunction.java index 34911169..0887933f 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/SigmoidOutlierScalingFunction.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/SigmoidOutlierScalingFunction.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -29,7 +29,7 @@ import de.lmu.ifi.dbs.elki.database.ids.ArrayDBIDs; import de.lmu.ifi.dbs.elki.database.ids.DBIDArrayIter; import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; import de.lmu.ifi.dbs.elki.database.ids.DBIDUtil; -import de.lmu.ifi.dbs.elki.database.relation.Relation; +import de.lmu.ifi.dbs.elki.database.relation.DoubleRelation; import de.lmu.ifi.dbs.elki.logging.Logging; import de.lmu.ifi.dbs.elki.math.MeanVariance; import de.lmu.ifi.dbs.elki.result.outlier.OutlierResult; @@ -63,9 +63,9 @@ public class SigmoidOutlierScalingFunction implements OutlierScalingFunction { public void prepare(OutlierResult or) { // Initial parameters - are these defaults sounds? MeanVariance mv = new MeanVariance(); - Relation<Double> scores = or.getScores(); + DoubleRelation scores = or.getScores(); for (DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { - double val = scores.get(id); + double val = scores.doubleValue(id); mv.put(val); } double a = 1.0; @@ -81,7 +81,7 @@ public class SigmoidOutlierScalingFunction implements OutlierScalingFunction { // E-Step it.seek(0); for (int i = 0; i < ids.size(); i++, it.advance()) { - double val = or.getScores().get(it); + double val = or.getScores().doubleValue(it); double targ = a * val + b; if (targ > 0) { if (!t.get(i)) { @@ -196,7 +196,7 @@ public class SigmoidOutlierScalingFunction implements OutlierScalingFunction { * @param scores Scores * @return new values for A and B. */ - private final double[] MStepLevenbergMarquardt(double a, double b, ArrayDBIDs ids, BitSet t, Relation<Double> scores) { + private final double[] MStepLevenbergMarquardt(double a, double b, ArrayDBIDs ids, BitSet t, DoubleRelation scores) { final int prior1 = t.cardinality(); final int prior0 = ids.size() - prior1; DBIDArrayIter iter = ids.iter(); @@ -216,7 +216,7 @@ public class SigmoidOutlierScalingFunction implements OutlierScalingFunction { double fval = 0.0; iter.seek(0); for (int i = 0; i < ids.size(); i++, iter.advance()) { - final double val = scores.get(iter); + final double val = scores.doubleValue(iter); final double fApB = val * a + b; final double ti = t.get(i) ? hiTarget : loTarget; if (fApB >= 0) { @@ -235,7 +235,7 @@ public class SigmoidOutlierScalingFunction implements OutlierScalingFunction { double g2 = 0.0; iter.seek(0); for (int i = 0; i < ids.size(); i++, iter.advance()) { - final double val = scores.get(iter); + final double val = scores.doubleValue(iter); final double fApB = val * a + b; final double p; final double q; @@ -270,7 +270,7 @@ public class SigmoidOutlierScalingFunction implements OutlierScalingFunction { double newf = 0.0; iter.seek(0); for (int i = 0; i < ids.size(); i++, iter.advance()) { - final double val = scores.get(iter); + final double val = scores.doubleValue(iter); final double fApB = val * newA + newB; final double ti = t.get(i) ? hiTarget : loTarget; if (fApB >= 0) { diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/SqrtStandardDeviationScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/SqrtStandardDeviationScaling.java index 2110570e..ad631bb7 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/SqrtStandardDeviationScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/SqrtStandardDeviationScaling.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -24,7 +24,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; */ import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; -import de.lmu.ifi.dbs.elki.database.relation.Relation; +import de.lmu.ifi.dbs.elki.database.relation.DoubleRelation; import de.lmu.ifi.dbs.elki.math.MathUtil; import de.lmu.ifi.dbs.elki.math.Mean; import de.lmu.ifi.dbs.elki.math.MeanVarianceMinMax; @@ -99,9 +99,9 @@ public class SqrtStandardDeviationScaling implements OutlierScalingFunction { public void prepare(OutlierResult or) { if (pmean == null) { MeanVarianceMinMax mv = new MeanVarianceMinMax(); - Relation<Double> scores = or.getScores(); + DoubleRelation scores = or.getScores(); for (DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { - double val = scores.get(id); + double val = scores.doubleValue(id); val = (val <= min) ? 0 : Math.sqrt(val - min); mv.put(val); } @@ -112,10 +112,10 @@ public class SqrtStandardDeviationScaling implements OutlierScalingFunction { mean = pmean; double sqsum = 0; int cnt = 0; - Relation<Double> scores = or.getScores(); + DoubleRelation scores = or.getScores(); double mm = Double.POSITIVE_INFINITY; for (DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { - double val = scores.get(id); + double val = scores.doubleValue(id); mm = Math.min(mm, val); val = (val <= min) ? 0 : Math.sqrt(val - min); sqsum += (val - mean) * (val - mean); diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/StandardDeviationScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/StandardDeviationScaling.java index b0040571..c9486b9d 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/StandardDeviationScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/StandardDeviationScaling.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -24,7 +24,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; */ import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; -import de.lmu.ifi.dbs.elki.database.relation.Relation; +import de.lmu.ifi.dbs.elki.database.relation.DoubleRelation; import de.lmu.ifi.dbs.elki.math.MathUtil; import de.lmu.ifi.dbs.elki.math.Mean; import de.lmu.ifi.dbs.elki.math.MeanVariance; @@ -109,9 +109,9 @@ public class StandardDeviationScaling implements OutlierScalingFunction { public void prepare(OutlierResult or) { if (fixedmean == null) { MeanVariance mv = new MeanVariance(); - Relation<Double> scores = or.getScores(); + DoubleRelation scores = or.getScores(); for (DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { - double val = scores.get(id); + double val = scores.doubleValue(id); if (!Double.isNaN(val) && !Double.isInfinite(val)) { mv.put(val); } @@ -124,9 +124,9 @@ public class StandardDeviationScaling implements OutlierScalingFunction { } else { mean = fixedmean; Mean sqsum = new Mean(); - Relation<Double> scores = or.getScores(); + DoubleRelation scores = or.getScores(); for (DBIDIter id = scores.iterDBIDs(); id.valid(); id.advance()) { - double val = scores.get(id); + double val = scores.doubleValue(id); if (!Double.isNaN(val) && !Double.isInfinite(val)) { sqsum.put((val - mean) * (val - mean)); } diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/TopKOutlierScaling.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/TopKOutlierScaling.java index 71a495a6..f00a18b3 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/TopKOutlierScaling.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/TopKOutlierScaling.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.utilities.scaling.outlier; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -102,7 +102,7 @@ public class TopKOutlierScaling implements OutlierScalingFunction { } DBIDIter order = or.getOrdering().iter(or.getOrdering().getDBIDs()).iter(); for(int i = 0; i < k && order.valid(); i++, order.advance()) { - cutoff = or.getScores().get(order); + cutoff = or.getScores().doubleValue(order); } max = or.getOutlierMeta().getActualMaximum(); ground = or.getOutlierMeta().getTheoreticalBaseline(); diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/package-info.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/package-info.java index a34aac08..80c9c2d5 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/package-info.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/outlier/package-info.java @@ -5,7 +5,7 @@ This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures -Copyright (C) 2013 +Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team diff --git a/src/de/lmu/ifi/dbs/elki/utilities/scaling/package-info.java b/src/de/lmu/ifi/dbs/elki/utilities/scaling/package-info.java index 633aa65a..e88a2df5 100644 --- a/src/de/lmu/ifi/dbs/elki/utilities/scaling/package-info.java +++ b/src/de/lmu/ifi/dbs/elki/utilities/scaling/package-info.java @@ -5,7 +5,7 @@ This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures -Copyright (C) 2013 +Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team |