* Key: {@code -dish.epsilon} *
** Default value: {@link #DEFAULT_EPSILON} *
*/ public static final OptionID EPSILON_ID = new OptionID("dish.epsilon", "A comma separated list of positive doubles specifying the " + "maximum radius of the neighborhood to be " + "considered in each dimension for determination of " + "the preference vector " + "(default is " + DEFAULT_EPSILON + " in each dimension). " + "If only one value is specified, this value " + "will be used for each dimension."); /** * Option name for {@link #MINPTS_ID}. */ public static final String MINPTS_P = "dish.minpts"; /** * Description for the determination of the preference vector. */ private static final String CONDITION = "The value of the preference vector in dimension d_i is set to 1 " + "if the epsilon neighborhood contains more than " + MINPTS_P + " points and the following condition holds: " + "for all dimensions d_j: " + "|neighbors(d_i) intersection neighbors(d_j)| >= " + MINPTS_P + "."; /** * Positive threshold for minimum numbers of points in the * epsilon-neighborhood of a point, must satisfy following * {@link #CONDITION}. * ** Key: {@code -dish.minpts} *
*/ public static final OptionID MINPTS_ID = new OptionID(MINPTS_P, "Positive threshold for minumum numbers of points in the epsilon-" + "neighborhood of a point. " + CONDITION); /** * Default strategy. */ public static final Strategy DEFAULT_STRATEGY = Strategy.MAX_INTERSECTION; /** * The strategy for determination of the preference vector, available * strategies are: {@link Strategy#APRIORI } and * {@link Strategy#MAX_INTERSECTION}. * ** Key: {@code -dish.strategy} *
** Default value: {@link #DEFAULT_STRATEGY} *
*/ public static final OptionID STRATEGY_ID = new OptionID("dish.strategy", "The strategy for determination of the preference vector, " + "available strategies are: [" + Strategy.APRIORI + "| " + Strategy.MAX_INTERSECTION + "]" + "(default is " + DEFAULT_STRATEGY + ")"); /** * The epsilon value for each dimension. */ protected DoubleDistance[] epsilon; /** * Threshold for minimum number of points in the neighborhood. */ protected int minpts; /** * The strategy to determine the preference vector. */ protected Strategy strategy; /** * Constructor. * * @param epsilon Epsilon * @param minpts Minpts * @param strategy Strategy */ public Factory(DoubleDistance[] epsilon, int minpts, Strategy strategy) { super(); this.epsilon = epsilon; this.minpts = minpts; this.strategy = strategy; } @Override public DiSHPreferenceVectorIndex