/** * Constructor with preprocessing step. * * @param relation Relation to preprocess * @param distanceFunction the distance function to use * @param k query k */ public MaterializeKNNPreprocessor(Relation<O> relation, DistanceFunction<? super O> distanceFunction, int k) { super(relation, distanceFunction, k); this.knnQuery = relation.getKNNQuery(distanceQuery, k, DatabaseQuery.HINT_BULK, DatabaseQuery.HINT_HEAVY_USE, DatabaseQuery.HINT_NO_CACHE); }
@Override public Collection<? extends NumberVector> getReferencePoints(Relation<? extends NumberVector> db) { return new RelationUtil.CollectionFromRelation<>(db); } }
@Override public String getShortName() { return scores.getShortName() + "_order"; } }
/** * Joins in the given spatial database to each object its k-nearest neighbors. * * @param relation Relation to process * @return result */ public Relation<KNNList> run(Relation<V> relation) { DBIDs ids = relation.getDBIDs(); WritableDataStore<KNNList> knnLists = run(relation, ids); // Wrap as relation: return new MaterializedRelation<>("k nearest neighbors", "kNNs", TypeUtil.KNNLIST, knnLists, ids); }
/** * Simplified constructor. * * @param database Database */ public RelationObjectIterator(Relation<? extends O> database) { super(); this.database = database; this.iter = database.iterDBIDs(); }
/** * Constructor. * * @param rel Relation */ public SamplingResult(Relation<?> rel) { super(); sample = rel.getDBIDs(); }
/** * Constructor. * * @param rel Relation * @param maxdim Maximum dimension to use */ public HistogramProjector(Relation<V> rel, int maxdim) { super(); this.rel = rel; this.dmax = maxdim; assert(maxdim <= RelationUtil.dimensionality(rel)) : "Requested dimensionality larger than data dimensionality?!?"; }
@Override public int size() { return db.size(); } }
@Override public KNNQuery<O> getKNNQuery(DistanceFunction<? super O> distanceFunction, Object... hints) { DistanceQuery<O> distanceQuery = getDistanceQuery(distanceFunction, hints); return getKNNQuery(distanceQuery, hints); }
void initLabels() { // Labels: shared.labels = new String[shared.dim]; for(int i = 0; i < shared.dim; i++) { shared.labels[i] = RelationUtil.getColumnLabel(shared.rel, i); } }
@Override public RKNNQuery<O> getRKNNQuery(DistanceFunction<? super O> distanceFunction, Object... hints) { DistanceQuery<O> distanceQuery = getDistanceQuery(distanceFunction, hints); return getRKNNQuery(distanceQuery, hints); }
/** * Simplified constructor. * * @param database Database */ public RelationObjectIterator(Relation<? extends O> database) { super(); this.database = database; this.iter = database.iterDBIDs(); }
/** * Constructor. * * @param rel Relation */ public SamplingResult(Relation<?> rel) { super(); sample = rel.getDBIDs(); }
/** * Constructor. * * @param rel Relation * @param maxdim Maximum dimension to use */ public ScatterPlotProjector(Relation<V> rel, int maxdim) { super(); this.rel = rel; this.dmax = maxdim; assert (maxdim <= RelationUtil.dimensionality(rel)) : "Requested dimensionality larger than data dimensionality?!?"; }
@Override public int size() { return db.size(); } }
/** * Constructor with preprocessing step. * * @param relation Relation to preprocess * @param distanceFunction the distance function to use * @param k query k */ public MaterializeKNNPreprocessor(Relation<O> relation, DistanceFunction<? super O> distanceFunction, int k) { super(relation, distanceFunction, k); this.knnQuery = relation.getKNNQuery(distanceQuery, k, DatabaseQuery.HINT_BULK, DatabaseQuery.HINT_HEAVY_USE, DatabaseQuery.HINT_NO_CACHE); }
@Override public Collection<? extends NumberVector> getReferencePoints(Relation<? extends NumberVector> db) { return new RelationUtil.CollectionFromRelation<>(db); } }
@Override public String getShortName() { return scores.getShortName() + "_order"; } }
/** * Simplified constructor. * * @param database Database */ public RelationObjectIterator(Relation<? extends O> database) { super(); this.database = database; this.iter = database.iterDBIDs(); }
/** * Constructor. * * @param rel Relation * @param maxdim Maximum dimension to use */ public HistogramProjector(Relation<V> rel, int maxdim) { super(); this.rel = rel; this.dmax = maxdim; assert(maxdim <= RelationUtil.dimensionality(rel)) : "Requested dimensionality larger than data dimensionality?!?"; }