diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/distance/distancefunction/SharedNearestNeighborJaccardDistanceFunction.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/distance/distancefunction/SharedNearestNeighborJaccardDistanceFunction.java | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/distance/distancefunction/SharedNearestNeighborJaccardDistanceFunction.java b/src/de/lmu/ifi/dbs/elki/distance/distancefunction/SharedNearestNeighborJaccardDistanceFunction.java index 0b80f512..cfc4217e 100644 --- a/src/de/lmu/ifi/dbs/elki/distance/distancefunction/SharedNearestNeighborJaccardDistanceFunction.java +++ b/src/de/lmu/ifi/dbs/elki/distance/distancefunction/SharedNearestNeighborJaccardDistanceFunction.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.distance.distancefunction; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2011 + Copyright (C) 2012 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.distance.distancefunction; import java.util.Iterator; import de.lmu.ifi.dbs.elki.database.ids.DBID; -import de.lmu.ifi.dbs.elki.database.ids.TreeSetDBIDs; +import de.lmu.ifi.dbs.elki.database.ids.DBIDs; import de.lmu.ifi.dbs.elki.database.relation.Relation; import de.lmu.ifi.dbs.elki.distance.distancevalue.DoubleDistance; import de.lmu.ifi.dbs.elki.index.preprocessed.snn.SharedNearestNeighborIndex; @@ -39,7 +39,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.Parameteriz * * @author Erich Schubert * - * @apiviz.composedOf de.lmu.ifi.dbs.elki.index.preprocessed.snn.SharedNearestNeighborIndex.Factory + * @apiviz.composedOf SharedNearestNeighborIndex.Factory * @apiviz.has SharedNearestNeighborJaccardDistanceFunction.Instance oneway - - «create» * * @param <O> object type @@ -82,7 +82,14 @@ public class SharedNearestNeighborJaccardDistanceFunction<O> extends AbstractInd super(database, preprocessor, parent); } - static protected double jaccardCoefficient(TreeSetDBIDs neighbors1, TreeSetDBIDs neighbors2) { + /** + * Compute the Jaccard coefficient + * + * @param neighbors1 SORTED neighbor ids of first + * @param neighbors2 SORTED neighbor ids of second + * @return Jaccard coefficient + */ + static protected double jaccardCoefficient(DBIDs neighbors1, DBIDs neighbors2) { int intersection = 0; int union = 0; Iterator<DBID> iter1 = neighbors1.iterator(); @@ -118,8 +125,8 @@ public class SharedNearestNeighborJaccardDistanceFunction<O> extends AbstractInd @Override public DoubleDistance distance(DBID id1, DBID id2) { - TreeSetDBIDs neighbors1 = index.getNearestNeighborSet(id1); - TreeSetDBIDs neighbors2 = index.getNearestNeighborSet(id2); + DBIDs neighbors1 = index.getNearestNeighborSet(id1); + DBIDs neighbors2 = index.getNearestNeighborSet(id2); return new DoubleDistance(1.0 - jaccardCoefficient(neighbors1, neighbors2)); } |