本文整理了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
[英]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);
}
内容来源于网络,如有侵权,请联系作者删除!