diff options
author | Erich Schubert <erich@debian.org> | 2016-02-13 17:05:40 +0100 |
---|---|---|
committer | Andrej Shadura <andrewsh@debian.org> | 2019-03-09 22:30:47 +0000 |
commit | defdc6d2d24cb1cefca77aa63ca6c436a8f3672c (patch) | |
tree | a017235849736e0a0ea8a2b28de23f46dc47b082 /elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/outlier/lof/LOCI.java | |
parent | aee1a6e43bd1a264226de31eadf10003c46d47c6 (diff) | |
parent | 0a055548ae9f9d5c639bb29ca32e0fd88de37c1d (diff) |
Import Debian changes 0.7.1-1
elki (0.7.1-1) unstable; urgency=low
* New upstream release (mostly bug fixes)
* Drop patches included upstream
* Build-dep on default-jdk instead of openjdk7-jdk (Closes: #814163)
Diffstat (limited to 'elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/outlier/lof/LOCI.java')
-rw-r--r-- | elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/outlier/lof/LOCI.java | 108 |
1 files changed, 62 insertions, 46 deletions
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/outlier/lof/LOCI.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/outlier/lof/LOCI.java index 7b332639..f8623bcc 100644 --- a/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/outlier/lof/LOCI.java +++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/outlier/lof/LOCI.java @@ -63,26 +63,33 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.IntParameter; /** * Fast Outlier Detection Using the "Local Correlation Integral". - * + * * Exact implementation only, not aLOCI. See {@link ALOCI}. - * + * * Outlier detection using multiple epsilon neighborhoods. - * + * * This implementation has O(n<sup>3</sup> log n) runtime complexity! - * - * Based on: S. Papadimitriou, H. Kitagawa, P. B. Gibbons and C. Faloutsos: - * LOCI: Fast Outlier Detection Using the Local Correlation Integral. In: Proc. - * 19th IEEE Int. Conf. on Data Engineering (ICDE '03), Bangalore, India, 2003. - * + * + * Reference: + * <p> + * S. Papadimitriou, H. Kitagawa, P. B. Gibbons and C. Faloutsos: <br /> + * LOCI: Fast Outlier Detection Using the Local Correlation Integral. <br /> + * In: Proc. 19th IEEE Int. Conf. on Data Engineering (ICDE '03) + * </p> + * * @author Erich Schubert - * + * @since 0.2 + * * @apiviz.has RangeQuery - * + * * @param <O> Object type */ @Title("LOCI: Fast Outlier Detection Using the Local Correlation Integral") @Description("Algorithm to compute outliers based on the Local Correlation Integral") -@Reference(authors = "S. Papadimitriou, H. Kitagawa, P. B. Gibbons, C. Faloutsos", title = "LOCI: Fast Outlier Detection Using the Local Correlation Integral", booktitle = "Proc. 19th IEEE Int. Conf. on Data Engineering (ICDE '03), Bangalore, India, 2003", url = "http://dx.doi.org/10.1109/ICDE.2003.1260802") +@Reference(authors = "S. Papadimitriou, H. Kitagawa, P. B. Gibbons, C. Faloutsos", // +title = "LOCI: Fast Outlier Detection Using the Local Correlation Integral", // +booktitle = "Proc. 19th IEEE Int. Conf. on Data Engineering (ICDE '03)", // +url = "http://dx.doi.org/10.1109/ICDE.2003.1260802") @Alias({ "de.lmu.ifi.dbs.elki.algorithm.outlier.LOCI" }) public class LOCI<O> extends AbstractDistanceBasedAlgorithm<O, OutlierResult> implements OutlierAlgorithm { /** @@ -91,39 +98,23 @@ public class LOCI<O> extends AbstractDistanceBasedAlgorithm<O, OutlierResult> im private static final Logging LOG = Logging.getLogger(LOCI.class); /** - * Parameter to specify the maximum radius of the neighborhood to be - * considered, must be suitable to the distance function specified. - */ - public static final OptionID RMAX_ID = new OptionID("loci.rmax", "The maximum radius of the neighborhood to be considered."); - - /** - * Parameter to specify the minimum neighborhood size - */ - public static final OptionID NMIN_ID = new OptionID("loci.nmin", "Minimum neighborhood size to be considered."); - - /** - * Parameter to specify the averaging neighborhood scaling. - */ - public static final OptionID ALPHA_ID = new OptionID("loci.alpha", "Scaling factor for averaging neighborhood"); - - /** - * Holds the value of {@link #RMAX_ID}. + * Maximum radius. */ private double rmax; /** - * Holds the value of {@link #NMIN_ID}. + * Minimum neighborhood size. */ - private int nmin; + private int nmin = 0; /** - * Holds the value of {@link #ALPHA_ID}. + * Scaling of averaging neighborhood. */ - private double alpha; + private double alpha = 0.5; /** * Constructor. - * + * * @param distanceFunction Distance function * @param rmax Maximum radius * @param nmin Minimum neighborhood size @@ -138,7 +129,7 @@ public class LOCI<O> extends AbstractDistanceBasedAlgorithm<O, OutlierResult> im /** * Run the algorithm - * + * * @param database Database to process * @param relation Relation to process * @return Outlier result @@ -228,7 +219,7 @@ public class LOCI<O> extends AbstractDistanceBasedAlgorithm<O, OutlierResult> im /** * Preprocessing step: determine the radii of interest for each point. - * + * * @param ids IDs to process * @param rangeQuery Range query * @param interestingDistances Distances of interest @@ -284,7 +275,7 @@ public class LOCI<O> extends AbstractDistanceBasedAlgorithm<O, OutlierResult> im /** * Array of double-int values. - * + * * @author Erich Schubert * * @apiviz.exclude @@ -307,7 +298,7 @@ public class LOCI<O> extends AbstractDistanceBasedAlgorithm<O, OutlierResult> im /** * Constructor. - * + * * @param alloc Initial allocation. */ public DoubleIntArrayList(int alloc) { @@ -318,7 +309,7 @@ public class LOCI<O> extends AbstractDistanceBasedAlgorithm<O, OutlierResult> im /** * Collection size. - * + * * @return Size */ public int size() { @@ -327,7 +318,7 @@ public class LOCI<O> extends AbstractDistanceBasedAlgorithm<O, OutlierResult> im /** * Get the key at the given position. - * + * * @param i Position * @return Key */ @@ -337,7 +328,7 @@ public class LOCI<O> extends AbstractDistanceBasedAlgorithm<O, OutlierResult> im /** * Get the value at the given position. - * + * * @param i Position * @return Value */ @@ -347,7 +338,7 @@ public class LOCI<O> extends AbstractDistanceBasedAlgorithm<O, OutlierResult> im /** * Get the value at the given position. - * + * * @param i Position * @param val New value */ @@ -357,7 +348,7 @@ public class LOCI<O> extends AbstractDistanceBasedAlgorithm<O, OutlierResult> im /** * Append a key-value pair. - * + * * @param key Key to append * @param val Value to append. */ @@ -373,7 +364,7 @@ public class LOCI<O> extends AbstractDistanceBasedAlgorithm<O, OutlierResult> im /** * Find the last position with a smaller or equal key. - * + * * @param search Key * @return Position */ @@ -412,18 +403,43 @@ public class LOCI<O> extends AbstractDistanceBasedAlgorithm<O, OutlierResult> im /** * Parameterization class. - * + * * @author Erich Schubert - * + * * @apiviz.exclude - * + * * @param <O> Object type */ public static class Parameterizer<O> extends AbstractDistanceBasedAlgorithm.Parameterizer<O> { + /** + * Parameter to specify the maximum radius of the neighborhood to be + * considered, must be suitable to the distance function specified. + */ + public static final OptionID RMAX_ID = new OptionID("loci.rmax", "The maximum radius of the neighborhood to be considered."); + + /** + * Parameter to specify the minimum neighborhood size + */ + public static final OptionID NMIN_ID = new OptionID("loci.nmin", "Minimum neighborhood size to be considered."); + + /** + * Parameter to specify the averaging neighborhood scaling. + */ + public static final OptionID ALPHA_ID = new OptionID("loci.alpha", "Scaling factor for averaging neighborhood"); + + /** + * Maximum radius. + */ protected double rmax; + /** + * Minimum neighborhood size. + */ protected int nmin = 0; + /** + * Scaling of averaging neighborhood. + */ protected double alpha = 0.5; @Override |