本文整理了Java中de.lmu.ifi.dbs.elki.database.query.knn.KNNQuery
类的一些代码示例,展示了KNNQuery
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。KNNQuery
类的具体详情如下:
包路径:de.lmu.ifi.dbs.elki.database.query.knn.KNNQuery
类名称:KNNQuery
[英]The interface of an actual instance.
[中]实际实例的接口。
代码示例来源:origin: elki-project/elki
@Override
protected KNNList objectsForPCA(DBIDRef id) {
return knnQuery.getKNNForDBID(id, k);
}
代码示例来源:origin: elki-project/elki
/**
* @return a new MkMaxLeafEntry representing the specified data object
*/
protected MkMaxLeafEntry createNewLeafEntry(DBID id, O object, double parentDistance) {
KNNList knns = knnq.getKNNForObject(object, getKmax() - 1);
double knnDistance = knns.getKNNDistance();
return new MkMaxLeafEntry(id, parentDistance, knnDistance);
}
代码示例来源:origin: elki-project/elki
/**
* Performs a bulk load on this RTree with the specified data. Is called by
* the constructor and should be overwritten by subclasses if necessary.
*/
@Override
protected void bulkLoad(List<RdKNNEntry> entries) {
super.bulkLoad(entries);
// adjust all knn distances
ArrayModifiableDBIDs ids = DBIDUtil.newArray(entries.size());
for(RdKNNEntry entry : entries) {
DBID id = ((RdKNNLeafEntry) entry).getDBID();
ids.add(id);
}
ids.sort();
List<? extends KNNList> knnLists = knnQuery.getKNNForBulkDBIDs(ids, settings.k_max);
adjustKNNDistance(getRootEntry(), ids, knnLists);
// test
doExtraIntegrityChecks();
}
代码示例来源:origin: de.lmu.ifi.dbs.elki/elki
/**
* Performs a bulk load on this RTree with the specified data. Is called by
* the constructor and should be overwritten by subclasses if necessary.
*/
@Override
protected void bulkLoad(List<RdKNNEntry> entries) {
super.bulkLoad(entries);
// adjust all knn distances
ArrayModifiableDBIDs ids = DBIDUtil.newArray(entries.size());
for(RdKNNEntry entry : entries) {
DBID id = ((RdKNNLeafEntry) entry).getDBID();
ids.add(id);
}
ids.sort();
List<? extends KNNList> knnLists = knnQuery.getKNNForBulkDBIDs(ids, settings.k_max);
adjustKNNDistance(getRootEntry(), ids, knnLists);
// test
doExtraIntegrityChecks();
}
代码示例来源:origin: de.lmu.ifi.dbs.elki/elki
@Override
protected KNNList objectsForPCA(DBIDRef id) {
return knnQuery.getKNNForDBID(id, k);
}
代码示例来源:origin: elki-project/elki
@Override
public DoubleDBIDList getRKNNForObject(O obj, int k) {
ModifiableDoubleDBIDList rNNlist = DBIDUtil.newDistanceDBIDList();
ArrayDBIDs allIDs = DBIDUtil.ensureArray(relation.getDBIDs());
List<? extends KNNList> kNNLists = knnQuery.getKNNForBulkDBIDs(allIDs, k);
for(DBIDArrayIter iter = allIDs.iter(); iter.valid(); iter.advance()) {
KNNList knn = kNNLists.get(iter.getOffset());
final double dist = distanceQuery.distance(obj, iter);
final int last = Math.min(k - 1, knn.size() - 1);
if(last < k - 1 || dist <= knn.doubleValue(last)) {
rNNlist.add(dist, iter);
}
}
rNNlist.sort();
return rNNlist;
}
代码示例来源:origin: elki-project/elki
public double[] classProbabilities(O instance, ArrayList<ClassLabel> labels) {
int[] occurences = new int[labels.size()];
KNNList query = knnq.getKNNForObject(instance, k);
for(DoubleDBIDListIter neighbor = query.iter(); neighbor.valid(); neighbor.advance()) {
int index = Collections.binarySearch(labels, labelrep.get(neighbor));
if(index >= 0) {
occurences[index]++;
}
}
double[] distribution = new double[labels.size()];
for(int i = 0; i < distribution.length; i++) {
distribution[i] = ((double) occurences[i]) / (double) query.size();
}
return distribution;
}
代码示例来源:origin: de.lmu.ifi.dbs.elki/elki-clustering
@Override
protected KNNList objectsForPCA(DBIDRef id) {
return knnQuery.getKNNForDBID(id, k);
}
代码示例来源:origin: de.lmu.ifi.dbs.elki/elki-index-rtree
/**
* Performs a bulk load on this RTree with the specified data. Is called by
* the constructor and should be overwritten by subclasses if necessary.
*/
@Override
protected void bulkLoad(List<RdKNNEntry> entries) {
super.bulkLoad(entries);
// adjust all knn distances
ArrayModifiableDBIDs ids = DBIDUtil.newArray(entries.size());
for(RdKNNEntry entry : entries) {
DBID id = ((RdKNNLeafEntry) entry).getDBID();
ids.add(id);
}
ids.sort();
List<? extends KNNList> knnLists = knnQuery.getKNNForBulkDBIDs(ids, settings.k_max);
adjustKNNDistance(getRootEntry(), ids, knnLists);
// test
doExtraIntegrityChecks();
}
代码示例来源:origin: de.lmu.ifi.dbs.elki/elki-index-mtree
/**
* @return a new MkMaxLeafEntry representing the specified data object
*/
protected MkMaxLeafEntry createNewLeafEntry(DBID id, O object, double parentDistance) {
KNNList knns = knnq.getKNNForObject(object, getKmax() - 1);
double knnDistance = knns.getKNNDistance();
return new MkMaxLeafEntry(id, parentDistance, knnDistance);
}
代码示例来源:origin: elki-project/elki
@Override
public void map(DBIDRef id) {
out.set(knnq.getKNNForDBID(id, k));
}
}
代码示例来源:origin: de.lmu.ifi.dbs.elki/elki-database
@Override
public DoubleDBIDList getRKNNForObject(O obj, int k) {
ModifiableDoubleDBIDList rNNlist = DBIDUtil.newDistanceDBIDList();
ArrayDBIDs allIDs = DBIDUtil.ensureArray(relation.getDBIDs());
List<? extends KNNList> kNNLists = knnQuery.getKNNForBulkDBIDs(allIDs, k);
for(DBIDArrayIter iter = allIDs.iter(); iter.valid(); iter.advance()) {
KNNList knn = kNNLists.get(iter.getOffset());
final double dist = distanceQuery.distance(obj, iter);
final int last = Math.min(k - 1, knn.size() - 1);
if(last < k - 1 || dist <= knn.doubleValue(last)) {
rNNlist.add(dist, iter);
}
}
rNNlist.sort();
return rNNlist;
}
代码示例来源:origin: de.lmu.ifi.dbs.elki/elki-classification
public double[] classProbabilities(O instance, ArrayList<ClassLabel> labels) {
int[] occurences = new int[labels.size()];
KNNList query = knnq.getKNNForObject(instance, k);
for(DoubleDBIDListIter neighbor = query.iter(); neighbor.valid(); neighbor.advance()) {
int index = Collections.binarySearch(labels, labelrep.get(neighbor));
if(index >= 0) {
occurences[index]++;
}
}
double[] distribution = new double[labels.size()];
for(int i = 0; i < distribution.length; i++) {
distribution[i] = ((double) occurences[i]) / (double) query.size();
}
return distribution;
}
代码示例来源: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
@Override
public DoubleDBIDList getRKNNForObject(O obj, int k) {
ModifiableDoubleDBIDList rNNlist = DBIDUtil.newDistanceDBIDList();
ArrayDBIDs allIDs = DBIDUtil.ensureArray(relation.getDBIDs());
List<? extends KNNList> kNNLists = knnQuery.getKNNForBulkDBIDs(allIDs, k);
int i = 0;
for(DBIDIter iter = allIDs.iter(); iter.valid(); iter.advance()) {
KNNList knn = kNNLists.get(i);
int last = Math.min(k - 1, knn.size() - 1);
double dist = distanceQuery.distance(obj, iter);
if(last < k - 1 || dist <= knn.get(last).doubleValue()) {
rNNlist.add(dist, iter);
}
i++;
}
rNNlist.sort();
return rNNlist;
}
代码示例来源:origin: de.lmu.ifi.dbs.elki/elki
public double[] classProbabilities(O instance, ArrayList<ClassLabel> labels) {
int[] occurences = new int[labels.size()];
KNNList query = knnq.getKNNForObject(instance, k);
for(DoubleDBIDListIter neighbor = query.iter(); neighbor.valid(); neighbor.advance()) {
int index = Collections.binarySearch(labels, labelrep.get(neighbor));
if(index >= 0) {
occurences[index]++;
}
}
double[] distribution = new double[labels.size()];
for(int i = 0; i < distribution.length; i++) {
distribution[i] = ((double) occurences[i]) / (double) query.size();
}
return distribution;
}
代码示例来源: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 necessary operations after deleting the specified object.
*/
@Override
protected void postDelete(RdKNNEntry entry) {
// reverse knn of o
ModifiableDoubleDBIDList rnns = DBIDUtil.newDistanceDBIDList();
doReverseKNN(getRoot(), ((RdKNNLeafEntry) entry).getDBID(), rnns);
// knn of rnn
ArrayModifiableDBIDs ids = DBIDUtil.newArray(rnns);
ids.sort();
List<? extends KNNList> knnLists = knnQuery.getKNNForBulkDBIDs(ids, settings.k_max);
// adjust knn distances
adjustKNNDistance(getRootEntry(), ids, knnLists);
}
代码示例来源:origin: de.lmu.ifi.dbs.elki/elki
/**
* @return a new MkMaxLeafEntry representing the specified data object
*/
protected MkMaxLeafEntry createNewLeafEntry(DBID id, O object, double parentDistance) {
KNNList knns = knnq.getKNNForObject(object, getKmax() - 1);
double knnDistance = knns.getKNNDistance();
return new MkMaxLeafEntry(id, parentDistance, knnDistance);
}
代码示例来源: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;
}
}
内容来源于网络,如有侵权,请联系作者删除!