@Override protected PreDeConNeighborPredicate<V> makeInstance() { return new PreDeConNeighborPredicate<>(settings); } }
@SuppressWarnings("unchecked") @Override public Instance instantiate(Database database) { DistanceQuery<V> dq = QueryUtil.getDistanceQuery(database, distFunc); Relation<V> relation = (Relation<V>) dq.getRelation(); RangeQuery<V> rq = database.getRangeQuery(dq); mvSize.reset(); mvVar.reset(); DataStore<PreDeConModel> storage = preprocess(PreDeConModel.class, relation, rq); if(LOG.isVerbose()) { LOG.verbose("Average neighborhood size: " + mvSize.toString()); LOG.verbose("Average variance size: " + mvVar.toString()); final int dim = RelationUtil.dimensionality(relation); if(mvSize.getMean() < 5 * dim) { LOG.verbose("The epsilon parameter may be chosen too small."); } else if(mvSize.getMean() > .5 * relation.size()) { LOG.verbose("The epsilon parameter may be chosen too large."); } else { LOG.verbose("As a first guess, you can try minPts < " + ((int) mvSize.getMean() / dim) // + " and delta > " + mvVar.getMean() + // ", but you will need to experiment with these parameters and epsilon."); } } return new Instance(dq.getRelation().getDBIDs(), storage); }
@SuppressWarnings("unchecked") @Override public <T> NeighborPredicate.Instance<T> instantiate(Database database, SimpleTypeInformation<?> type) { DistanceQuery<V> dq = QueryUtil.getDistanceQuery(database, distFunc); Relation<V> relation = (Relation<V>) dq.getRelation(); RangeQuery<V> rq = database.getRangeQuery(dq); mvSize.reset(); mvVar.reset(); DataStore<PreDeConModel> storage = preprocess(PreDeConModel.class, relation, rq); if(LOG.isVerbose()) { LOG.verbose("Average neighborhood size: " + mvSize.toString()); LOG.verbose("Average variance size: " + mvVar.toString()); final int dim = RelationUtil.dimensionality(relation); if(mvSize.getMean() < 5 * dim) { LOG.verbose("The epsilon parameter may be chosen too small."); } else if(mvSize.getMean() > .5 * relation.size()) { LOG.verbose("The epsilon parameter may be chosen too large."); } else { LOG.verbose("As a first guess, you can try minPts < " + ((int) mvSize.getMean() / dim) // + " and delta > " + mvVar.getMean() + // ", but you will need to experiment with these parameters and epsilon."); } } return (NeighborPredicate.Instance<T>) new Instance(dq.getRelation().getDBIDs(), storage); }
@Override protected PreDeConNeighborPredicate<V> makeInstance() { return new PreDeConNeighborPredicate<>(settings); } }
@SuppressWarnings("unchecked") @Override public Instance instantiate(Database database) { DistanceQuery<V> dq = QueryUtil.getDistanceQuery(database, distFunc); Relation<V> relation = (Relation<V>) dq.getRelation(); RangeQuery<V> rq = database.getRangeQuery(dq); mvSize.reset(); mvVar.reset(); DataStore<PreDeConModel> storage = preprocess(PreDeConModel.class, relation, rq); if(LOG.isVerbose()) { LOG.verbose("Average neighborhood size: " + mvSize.toString()); LOG.verbose("Average variance size: " + mvVar.toString()); final int dim = RelationUtil.dimensionality(relation); if(mvSize.getMean() < 5 * dim) { LOG.verbose("The epsilon parameter may be chosen too small."); } else if(mvSize.getMean() > .5 * relation.size()) { LOG.verbose("The epsilon parameter may be chosen too large."); } else { LOG.verbose("As a first guess, you can try minPts < " + ((int) mvSize.getMean() / dim) // + " and delta > " + mvVar.getMean() + // ", but you will need to experiment with these parameters and epsilon."); } } return new Instance(dq.getRelation().getDBIDs(), storage); }
@Override protected PreDeConNeighborPredicate<V> makeInstance() { return new PreDeConNeighborPredicate<>(settings); } }
/** * Constructor. * * @param settings PreDeCon settings. */ public PreDeCon(PreDeCon.Settings settings) { super(new PreDeConNeighborPredicate<>(settings), new PreDeConCorePredicate(settings), false); }
/** * Constructor. * * @param settings PreDeCon settings. */ public PreDeCon(PreDeCon.Settings settings) { super(new PreDeConNeighborPredicate<>(settings), new PreDeConCorePredicate(settings), false); }
/** * Constructor. * * @param settings PreDeCon settings. */ public PreDeCon(PreDeCon.Settings settings) { super(new PreDeConNeighborPredicate<>(settings), new PreDeConCorePredicate(settings), false); }