de.lmu.ifi.dbs.elki.database.query.knn.KNNQuery.getKNNForDBID()方法的使用及代码示例

x33g5p2x  于2022-01-23 转载在 其他  
字(10.4k)|赞(0)|评价(0)|浏览(109)

本文整理了Java中de.lmu.ifi.dbs.elki.database.query.knn.KNNQuery.getKNNForDBID()方法的一些代码示例,展示了KNNQuery.getKNNForDBID()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。KNNQuery.getKNNForDBID()方法的具体详情如下:
包路径:de.lmu.ifi.dbs.elki.database.query.knn.KNNQuery
类名称:KNNQuery
方法名:getKNNForDBID

KNNQuery.getKNNForDBID介绍

[英]Get the k nearest neighbors for a particular id.
[中]获取特定id的k个最近邻居。

代码示例

代码示例来源:origin: elki-project/elki

@Override
protected KNNList objectsForPCA(DBIDRef id) {
 return knnQuery.getKNNForDBID(id, k);
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki

@Override
protected KNNList objectsForPCA(DBIDRef id) {
 return knnQuery.getKNNForDBID(id, k);
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki-clustering

@Override
protected KNNList objectsForPCA(DBIDRef id) {
 return knnQuery.getKNNForDBID(id, k);
}

代码示例来源:origin: elki-project/elki

@Override
 public void map(DBIDRef id) {
  out.set(knnq.getKNNForDBID(id, k));
 }
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki

@Override
 public void map(DBIDRef id) {
  out.set(knnq.getKNNForDBID(id, k));
 }
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki-core-parallel

@Override
 public void map(DBIDRef id) {
  out.set(knnq.getKNNForDBID(id, k));
 }
}

代码示例来源:origin: elki-project/elki

/**
  * Performs a batch k-nearest neighbor query for a list of query objects.
  * 
  * @param node the node representing the subtree on which the query should be
  *        performed
  * @param ids the ids of the query objects
  * @param kmax Maximum k value
  * 
  * @deprecated Change to use by-object NN lookups instead.
  */
 @Deprecated
 protected final Map<DBID, KNNList> batchNN(N node, DBIDs ids, int kmax) {
  Map<DBID, KNNList> res = new HashMap<>(ids.size());
  for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) {
   DBID id = DBIDUtil.deref(iter);
   res.put(id, knnq.getKNNForDBID(id, kmax));
  }
  return res;
 }
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki

/**
 * Get the (forward only) kNN of an object, including the query point
 *
 * @param q Query point
 * @param knnQuery Query function
 * @param knns kNN storage
 * @param density Density storage
 * @return Neighbor list
 */
protected DBIDs getKNN(DBIDIter q, KNNQuery<O> knnQuery, WritableDataStore<ModifiableDBIDs> knns, WritableDoubleDataStore density) {
 ModifiableDBIDs s = knns.get(q);
 if(s.size() == 0) {
  KNNList listQ = knnQuery.getKNNForDBID(q, k + 1);
  s.addDBIDs(listQ);
  density.putDouble(q, 1. / listQ.getKNNDistance());
 }
 return s;
}

代码示例来源:origin: elki-project/elki

/**
 * Run the algorithm.
 * 
 * @param database Database
 * @param relation Relation
 * @return Null result
 */
public Result run(Database database, Relation<O> relation) {
 // Get a distance and knn query for the Euclidean distance
 // Hardcoded, only use this if you only allow the eucliden distance
 DistanceQuery<O> distQuery = database.getDistanceQuery(relation, EuclideanDistanceFunction.STATIC);
 KNNQuery<O> knnQuery = database.getKNNQuery(distQuery, 10);
 for(DBIDIter iditer = relation.iterDBIDs(); iditer.valid(); iditer.advance()) {
  // Get the actual object from the database (but discard the result)
  relation.get(iditer);
  // run a 10NN query for each point (but discard the result)
  knnQuery.getKNNForDBID(iditer, 10);
 }
 return null;
}

代码示例来源:origin: elki-project/elki

/**
 * Search nearest neighbors for <em>real</em> data members.
 *
 * @param knnQuery KNN query
 * @param relation Data relation
 * @return Aggregated 1NN distances
 */
protected double computeNNForRealData(final KNNQuery<NumberVector> knnQuery, Relation<NumberVector> relation, final int dim) {
 double w = 0.;
 ModifiableDBIDs dataSampleIds = DBIDUtil.randomSample(relation.getDBIDs(), sampleSize, random);
 for(DBIDIter iter = dataSampleIds.iter(); iter.valid(); iter.advance()) {
  final double kdist = knnQuery.getKNNForDBID(iter, k + 1).getKNNDistance();
  w += MathUtil.powi(kdist, dim);
 }
 return w;
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki

/**
 * Search nearest neighbors for <em>real</em> data members.
 *
 * @param knnQuery KNN query
 * @param relation Data relation
 * @return Aggregated 1NN distances
 */
protected double computeNNForRealData(final KNNQuery<NumberVector> knnQuery, Relation<NumberVector> relation, final int dim) {
 double w = 0.;
 ModifiableDBIDs dataSampleIds = DBIDUtil.randomSample(relation.getDBIDs(), sampleSize, random);
 for(DBIDIter iter = dataSampleIds.iter(); iter.valid(); iter.advance()) {
  final double kdist = knnQuery.getKNNForDBID(iter, k + 1).getKNNDistance();
  w += MathUtil.powi(kdist, dim);
 }
 return w;
}

代码示例来源:origin: elki-project/elki

@Override
public void initialize() {
 if(relation == null || relation.size() <= 0) {
  throw new EmptyDataException();
 }
 storage = DataStoreUtil.makeStorage(relation.getDBIDs(), DataStoreFactory.HINT_HOT | DataStoreFactory.HINT_TEMP, long[].class);
 KNNQuery<V> knnQuery = QueryUtil.getKNNQuery(relation, EuclideanDistanceFunction.STATIC, k);
 FiniteProgress progress = LOG.isVerbose() ? new FiniteProgress("Preprocessing preference vector", relation.size(), LOG) : null;
 long start = System.currentTimeMillis();
 for(DBIDIter it = relation.iterDBIDs(); it.valid(); it.advance()) {
  storage.put(it, determinePreferenceVector(relation, it, knnQuery.getKNNForDBID(it, k)));
  LOG.incrementProcessed(progress);
 }
 LOG.ensureCompleted(progress);
 if(LOG.isStatistics()) {
  LOG.statistics(new LongStatistic(this.getClass().getName() + ".runtime.ms", System.currentTimeMillis() - start));
 }
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki-clustering

@Override
public void initialize() {
 if(relation == null || relation.size() <= 0) {
  throw new EmptyDataException();
 }
 storage = DataStoreUtil.makeStorage(relation.getDBIDs(), DataStoreFactory.HINT_HOT | DataStoreFactory.HINT_TEMP, long[].class);
 KNNQuery<V> knnQuery = QueryUtil.getKNNQuery(relation, EuclideanDistanceFunction.STATIC, k);
 FiniteProgress progress = LOG.isVerbose() ? new FiniteProgress("Preprocessing preference vector", relation.size(), LOG) : null;
 long start = System.currentTimeMillis();
 for(DBIDIter it = relation.iterDBIDs(); it.valid(); it.advance()) {
  storage.put(it, determinePreferenceVector(relation, it, knnQuery.getKNNForDBID(it, k)));
  LOG.incrementProcessed(progress);
 }
 LOG.ensureCompleted(progress);
 if(LOG.isStatistics()) {
  LOG.statistics(new LongStatistic(this.getClass().getName() + ".runtime.ms", System.currentTimeMillis() - start));
 }
}

代码示例来源:origin: elki-project/elki

/**
 * Collect all densities into an array for sorting.
 *
 * @param knnq kNN query
 * @param ids DBIDs to process
 * @param dens Density storage
 */
private void fillDensities(KNNQuery<O> knnq, DBIDs ids, WritableDoubleDataStore dens) {
 FiniteProgress prog = LOG.isVerbose() ? new FiniteProgress("Densities", ids.size(), LOG) : null;
 for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) {
  final KNNList neighbors = knnq.getKNNForDBID(iter, k);
  dens.putDouble(iter, neighbors.getKNNDistance());
  LOG.incrementProcessed(prog);
 }
 LOG.ensureCompleted(prog);
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki

/**
 * Collect all densities into an array for sorting.
 *
 * @param knnq kNN query
 * @param ids DBIDs to process
 * @param dens Density storage
 */
private void fillDensities(KNNQuery<O> knnq, DBIDs ids, WritableDoubleDataStore dens) {
 FiniteProgress prog = LOG.isVerbose() ? new FiniteProgress("Densities", ids.size(), LOG) : null;
 for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) {
  final KNNList neighbors = knnq.getKNNForDBID(iter, k);
  dens.putDouble(iter, neighbors.getKNNDistance());
  LOG.incrementProcessed(prog);
 }
 LOG.ensureCompleted(prog);
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki-clustering

/**
 * Collect all densities into an array for sorting.
 *
 * @param knnq kNN query
 * @param ids DBIDs to process
 * @param dens Density storage
 */
private void fillDensities(KNNQuery<O> knnq, DBIDs ids, WritableDoubleDataStore dens) {
 FiniteProgress prog = LOG.isVerbose() ? new FiniteProgress("Densities", ids.size(), LOG) : null;
 for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) {
  final KNNList neighbors = knnq.getKNNForDBID(iter, k);
  dens.putDouble(iter, neighbors.getKNNDistance());
  LOG.incrementProcessed(prog);
 }
 LOG.ensureCompleted(prog);
}

代码示例来源:origin: elki-project/elki

/**
 * Compute the core distances for all objects.
 *
 * @param ids Objects
 * @param knnQ kNN query
 * @param minPts Minimum neighborhood size
 * @return Data store with core distances
 */
protected WritableDoubleDataStore computeCoreDists(DBIDs ids, KNNQuery<O> knnQ, int minPts) {
 final Logging LOG = getLogger();
 final WritableDoubleDataStore coredists = DataStoreUtil.makeDoubleStorage(ids, DataStoreFactory.HINT_HOT | DataStoreFactory.HINT_DB);
 FiniteProgress cprog = LOG.isVerbose() ? new FiniteProgress("Computing core sizes", ids.size(), LOG) : null;
 for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) {
  coredists.put(iter, knnQ.getKNNForDBID(iter, minPts).getKNNDistance());
  LOG.incrementProcessed(cprog);
 }
 LOG.ensureCompleted(cprog);
 return coredists;
}

代码示例来源:origin: elki-project/elki

@Override
public NeighborSetPredicate instantiate(Database database, Relation<? extends O> relation) {
 KNNQuery<?> knnQuery = QueryUtil.getKNNQuery(relation, distFunc);
 // TODO: use bulk?
 WritableDataStore<DBIDs> s = DataStoreUtil.makeStorage(relation.getDBIDs(), DataStoreFactory.HINT_HOT | DataStoreFactory.HINT_STATIC, DBIDs.class);
 for(DBIDIter iditer = relation.iterDBIDs(); iditer.valid(); iditer.advance()) {
  KNNList neighbors = knnQuery.getKNNForDBID(iditer, k);
  ArrayModifiableDBIDs neighbours = DBIDUtil.newArray(neighbors.size());
  for(DBIDIter neighbor = neighbors.iter(); neighbor.valid(); neighbor.advance()) {
   neighbours.add(neighbor);
  }
  s.put(iditer, neighbours);
 }
 return new PrecomputedKNearestNeighborNeighborhood(s);
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki

@Override
public NeighborSetPredicate instantiate(Database database, Relation<? extends O> relation) {
 KNNQuery<?> knnQuery = QueryUtil.getKNNQuery(relation, distFunc);
 // TODO: use bulk?
 WritableDataStore<DBIDs> s = DataStoreUtil.makeStorage(relation.getDBIDs(), DataStoreFactory.HINT_HOT | DataStoreFactory.HINT_STATIC, DBIDs.class);
 for(DBIDIter iditer = relation.iterDBIDs(); iditer.valid(); iditer.advance()) {
  KNNList neighbors = knnQuery.getKNNForDBID(iditer, k);
  ArrayModifiableDBIDs neighbours = DBIDUtil.newArray(neighbors.size());
  for(DBIDIter neighbor = neighbors.iter(); neighbor.valid(); neighbor.advance()) {
   neighbours.add(neighbor);
  }
  s.put(iditer, neighbours);
 }
 return new PrecomputedKNearestNeighborNeighborhood(s);
}

代码示例来源:origin: de.lmu.ifi.dbs.elki/elki-outlier

@Override
public NeighborSetPredicate instantiate(Database database, Relation<? extends O> relation) {
 KNNQuery<?> knnQuery = QueryUtil.getKNNQuery(relation, distFunc);
 // TODO: use bulk?
 WritableDataStore<DBIDs> s = DataStoreUtil.makeStorage(relation.getDBIDs(), DataStoreFactory.HINT_HOT | DataStoreFactory.HINT_STATIC, DBIDs.class);
 for(DBIDIter iditer = relation.iterDBIDs(); iditer.valid(); iditer.advance()) {
  KNNList neighbors = knnQuery.getKNNForDBID(iditer, k);
  ArrayModifiableDBIDs neighbours = DBIDUtil.newArray(neighbors.size());
  for(DBIDIter neighbor = neighbors.iter(); neighbor.valid(); neighbor.advance()) {
   neighbours.add(neighbor);
  }
  s.put(iditer, neighbours);
 }
 return new PrecomputedKNearestNeighborNeighborhood(s);
}

相关文章

微信公众号

最新文章

更多