diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/algorithm/statistics/AveragePrecisionAtK.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/algorithm/statistics/AveragePrecisionAtK.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/algorithm/statistics/AveragePrecisionAtK.java b/src/de/lmu/ifi/dbs/elki/algorithm/statistics/AveragePrecisionAtK.java index 1c74621b..f6f1d16f 100644 --- a/src/de/lmu/ifi/dbs/elki/algorithm/statistics/AveragePrecisionAtK.java +++ b/src/de/lmu/ifi/dbs/elki/algorithm/statistics/AveragePrecisionAtK.java @@ -34,6 +34,7 @@ import de.lmu.ifi.dbs.elki.data.type.TypeInformation; import de.lmu.ifi.dbs.elki.data.type.TypeUtil; import de.lmu.ifi.dbs.elki.database.Database; 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.ids.DBIDUtil; import de.lmu.ifi.dbs.elki.database.ids.DBIDs; import de.lmu.ifi.dbs.elki.database.query.DistanceResultPair; @@ -101,7 +102,7 @@ public class AveragePrecisionAtK<V extends Object, D extends NumberDistance<D, ? } @Override - public HistogramResult<DoubleVector> run(Database database) throws IllegalStateException { + public HistogramResult<DoubleVector> run(Database database) { final Relation<V> relation = database.getRelation(getInputTypeRestriction()[0]); final Relation<Object> lrelation = database.getRelation(getInputTypeRestriction()[1]); final DistanceQuery<V, D> distQuery = database.getDistanceQuery(relation, getDistanceFunction()); @@ -122,7 +123,8 @@ public class AveragePrecisionAtK<V extends Object, D extends NumberDistance<D, ? } FiniteProgress objloop = logger.isVerbose() ? new FiniteProgress("Computing nearest neighbors", ids.size(), logger) : null; // sort neighbors - for(DBID id : ids) { + for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) { + DBID id = iter.getDBID(); KNNResult<D> knn = knnQuery.getKNNForDBID(id, k); Object label = lrelation.get(id); |