/** * Parses the options for this object. * * <p> * <!-- options-start --> * Valid options are: * * <p> * * <pre> -D * Turns on output of debugging information.</pre> * * <pre> -A <Haar> * The algorithm to use. * (default: HAAR)</pre> * * <pre> -P <Zero> * The padding to use. * (default: ZERO)</pre> * * <pre> -F <filter specification> * The filter to use as preprocessing step (classname and options). * (default: MultiFilter with ReplaceMissingValues and Normalize)</pre> * * <pre> * Options specific to filter weka.filters.MultiFilter ('-F'): * </pre> * * <pre> -D * Turns on output of debugging information.</pre> * * <pre> -F <classname [options]> * A filter to apply (can be specified multiple times).</pre> * * <!-- options-end --> * * @param options the options to use * @throws Exception if the option setting fails */ public void setOptions(String[] options) throws Exception { String tmpStr; String[] tmpOptions; Filter filter; super.setOptions(options); tmpStr = Utils.getOption("A", options); if (tmpStr.length() != 0) setAlgorithm(new SelectedTag(tmpStr, TAGS_ALGORITHM)); else setAlgorithm(new SelectedTag(ALGORITHM_HAAR, TAGS_ALGORITHM)); tmpStr = Utils.getOption("P", options); if (tmpStr.length() != 0) setPadding(new SelectedTag(tmpStr, TAGS_PADDING)); else setPadding(new SelectedTag(PADDING_ZERO, TAGS_PADDING)); tmpStr = Utils.getOption("F", options); tmpOptions = Utils.splitOptions(tmpStr); if (tmpOptions.length != 0) { tmpStr = tmpOptions[0]; tmpOptions[0] = ""; setFilter((Filter) Utils.forName(Filter.class, tmpStr, tmpOptions)); } else { filter = new MultiFilter(); ((MultiFilter) filter) .setFilters( new Filter[] { new weka.filters.unsupervised.attribute.ReplaceMissingValues(), new weka.filters.unsupervised.attribute.Normalize() }); setFilter(filter); } }
/** * Parses a given list of options. * * <p> * <!-- options-start --> * Valid options are: * * <p> * * <pre> -R <col1,col2-col4,...> * Specifies list of columns to Discretize. First and last are valid indexes. * (default: first-last)</pre> * * <pre> -V * Invert matching sense of column indexes.</pre> * * <!-- options-end --> * * @param options the list of options as an array of strings * @throws Exception if an option is not supported */ public void setOptions(String[] options) throws Exception { String tmpStr; super.setOptions(options); setInvertSelection(Utils.getFlag('V', options)); tmpStr = Utils.getOption('R', options); if (tmpStr.length() != 0) setAttributeIndices(tmpStr); else setAttributeIndices(m_DefaultCols); if (getInputFormat() != null) setInputFormat(getInputFormat()); }
/** * Parses a list of options for this object. * * <p> * <!-- options-start --> * Valid options are: * * <p> * * <pre> -D * Turns on output of debugging information.</pre> * * <pre> -R <col1,col2-col4,...> * Specifies list of columns to base outlier/extreme value detection * on. If an instance is considered in at least one of those * attributes an outlier/extreme value, it is tagged accordingly. * 'first' and 'last' are valid indexes. * (default none)</pre> * * <pre> -O <num> * The factor for outlier detection. * (default: 3)</pre> * * <pre> -E <num> * The factor for extreme values detection. * (default: 2*Outlier Factor)</pre> * * <pre> -E-as-O * Tags extreme values also as outliers. * (default: off)</pre> * * <pre> -P * Generates Outlier/ExtremeValue pair for each numeric attribute in * the range, not just a single indicator pair for all the attributes. * (default: off)</pre> * * <pre> -M * Generates an additional attribute 'Offset' per Outlier/ExtremeValue * pair that contains the multiplier that the value is off the median. * value = median + 'multiplier' * IQR * Note: implicitely sets '-P'. (default: off)</pre> * * <!-- options-end --> * * @param options the list of options as an array of strings * @throws Exception if an option is not supported */ public void setOptions(String[] options) throws Exception { String tmpStr; super.setOptions(options); tmpStr = Utils.getOption("R", options); if (tmpStr.length() != 0) setAttributeIndices(tmpStr); else setAttributeIndices("first-last"); tmpStr = Utils.getOption("O", options); if (tmpStr.length() != 0) setOutlierFactor(Double.parseDouble(tmpStr)); else setOutlierFactor(3); tmpStr = Utils.getOption("E", options); if (tmpStr.length() != 0) setExtremeValuesFactor(Double.parseDouble(tmpStr)); else setExtremeValuesFactor(2 * getOutlierFactor()); setExtremeValuesAsOutliers(Utils.getFlag("E-as-O", options)); setDetectionPerAttribute(Utils.getFlag("P", options)); setOutputOffsetMultiplier(Utils.getFlag("M", options)); }