diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/algorithm/clustering/SLINK.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/algorithm/clustering/SLINK.java | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/algorithm/clustering/SLINK.java b/src/de/lmu/ifi/dbs/elki/algorithm/clustering/SLINK.java index e1329888..45b12c43 100644 --- a/src/de/lmu/ifi/dbs/elki/algorithm/clustering/SLINK.java +++ b/src/de/lmu/ifi/dbs/elki/algorithm/clustering/SLINK.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.algorithm.clustering; 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 @@ -133,18 +133,18 @@ public class SLINK<O, D extends Distance<D>> extends AbstractDistanceBasedAlgori public Result run(Database database, Relation<O> relation) { DistanceQuery<O, D> distQuery = database.getDistanceQuery(relation, getDistanceFunction()); Class<D> distCls = (Class<D>) getDistanceFunction().getDistanceFactory().getClass(); - WritableRecordStore store = DataStoreUtil.makeRecordStorage(distQuery.getRelation().getDBIDs(), DataStoreFactory.HINT_HOT | DataStoreFactory.HINT_STATIC, DBID.class, distCls); + WritableRecordStore store = DataStoreUtil.makeRecordStorage(relation.getDBIDs(), DataStoreFactory.HINT_HOT | DataStoreFactory.HINT_STATIC, DBID.class, distCls); pi = store.getStorage(0, DBID.class); lambda = store.getStorage(1, distCls); // Temporary storage for m. - WritableDataStore<D> m = DataStoreUtil.makeStorage(distQuery.getRelation().getDBIDs(), DataStoreFactory.HINT_HOT | DataStoreFactory.HINT_TEMP, distCls); + WritableDataStore<D> m = DataStoreUtil.makeStorage(relation.getDBIDs(), DataStoreFactory.HINT_HOT | DataStoreFactory.HINT_TEMP, distCls); - FiniteProgress progress = logger.isVerbose() ? new FiniteProgress("Clustering", distQuery.getRelation().size(), logger) : null; + FiniteProgress progress = logger.isVerbose() ? new FiniteProgress("Clustering", relation.size(), logger) : null; // has to be an array for monotonicity reasons! - ModifiableDBIDs processedIDs = DBIDUtil.newArray(distQuery.getRelation().size()); + ModifiableDBIDs processedIDs = DBIDUtil.newArray(relation.size()); // apply the algorithm - for(DBID id : distQuery.getRelation().iterDBIDs()) { + for(DBID id : relation.iterDBIDs()) { step1(id); step2(id, processedIDs, distQuery, m); step3(id, processedIDs, m); @@ -168,8 +168,8 @@ public class SLINK<O, D extends Distance<D>> extends AbstractDistanceBasedAlgori BasicResult result = null; // Build clusters identified by their target object - int minc = minclusters != null ? minclusters : distQuery.getRelation().size(); - result = extractClusters(distQuery.getRelation().getDBIDs(), pi, lambda, minc); + int minc = minclusters != null ? minclusters : relation.size(); + result = extractClusters(relation.getDBIDs(), pi, lambda, minc); result.addChildResult(new MaterializedRelation<DBID>("SLINK pi", "slink-order", TypeUtil.DBID, pi, processedIDs)); result.addChildResult(new MaterializedRelation<D>("SLINK lambda", "slink-order", new SimpleTypeInformation<D>(distCls), lambda, processedIDs)); @@ -288,7 +288,7 @@ public class SLINK<O, D extends Distance<D>> extends AbstractDistanceBasedAlgori D stopdist = null; // sort by lambda ArrayModifiableDBIDs order = DBIDUtil.newArray(ids); - Collections.sort(order, new CompareByLambda<D>(lambda)); + order.sort(new CompareByLambda<D>(lambda)); int index = ids.size() - minclusters - 1; while(index >= 0) { if(lambda.get(order.get(index)).equals(lambda.get(order.get(index + 1)))) { @@ -458,7 +458,7 @@ public class SLINK<O, D extends Distance<D>> extends AbstractDistanceBasedAlgori // extract a hierarchical clustering ArrayModifiableDBIDs order = DBIDUtil.newArray(ids); // sort by lambda - Collections.sort(order, new CompareByLambda<D>(lambda)); + order.sort(new CompareByLambda<D>(lambda)); D curdist = null; D stopdist = null; |