⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 randomsplitresultproducer.java

📁 Java 编写的多种数据挖掘算法 包括聚类、分类、预处理等
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    String [] keyNames = m_SplitEvaluator.getKeyNames();    // Add in the names of our extra key fields    String [] newKeyNames = new String [keyNames.length + 2];    newKeyNames[0] = DATASET_FIELD_NAME;    newKeyNames[1] = RUN_FIELD_NAME;    System.arraycopy(keyNames, 0, newKeyNames, 2, keyNames.length);    return newKeyNames;  }  /**   * Gets the data types of each of the columns produced for a single run.   * This method should really be static.   *   * @return an array containing objects of the type of each column. The    * objects should be Strings, or Doubles.   */  public Object [] getKeyTypes() {    Object [] keyTypes = m_SplitEvaluator.getKeyTypes();    // Add in the types of our extra fields    Object [] newKeyTypes = new String [keyTypes.length + 2];    newKeyTypes[0] = new String();    newKeyTypes[1] = new String();    System.arraycopy(keyTypes, 0, newKeyTypes, 2, keyTypes.length);    return newKeyTypes;  }  /**   * Gets the names of each of the columns produced for a single run.   * This method should really be static.   *   * @return an array containing the name of each column   */  public String [] getResultNames() {    String [] resultNames = m_SplitEvaluator.getResultNames();    // Add in the names of our extra Result fields    String [] newResultNames = new String [resultNames.length + 1];    newResultNames[0] = TIMESTAMP_FIELD_NAME;    System.arraycopy(resultNames, 0, newResultNames, 1, resultNames.length);    return newResultNames;  }  /**   * Gets the data types of each of the columns produced for a single run.   * This method should really be static.   *   * @return an array containing objects of the type of each column. The    * objects should be Strings, or Doubles.   */  public Object [] getResultTypes() {    Object [] resultTypes = m_SplitEvaluator.getResultTypes();    // Add in the types of our extra Result fields    Object [] newResultTypes = new Object [resultTypes.length + 1];    newResultTypes[0] = new Double(0);    System.arraycopy(resultTypes, 0, newResultTypes, 1, resultTypes.length);    return newResultTypes;  }  /**   * Gets a description of the internal settings of the result   * producer, sufficient for distinguishing a ResultProducer   * instance from another with different settings (ignoring   * those settings set through this interface). For example,   * a cross-validation ResultProducer may have a setting for the   * number of folds. For a given state, the results produced should   * be compatible. Typically if a ResultProducer is an OptionHandler,   * this string will represent the command line arguments required   * to set the ResultProducer to that state.   *   * @return the description of the ResultProducer state, or null   * if no state is defined   */  public String getCompatibilityState() {    String result = "-P " + m_TrainPercent;    if (!getRandomizeData()) {      result += " -R";    }    if (m_SplitEvaluator == null) {      result += " <null SplitEvaluator>";    } else {      result += " -W " + m_SplitEvaluator.getClass().getName();    }    return result + " --";  }  /**   * Returns the tip text for this property   * @return tip text for this property suitable for   * displaying in the explorer/experimenter gui   */  public String outputFileTipText() {    return "Set the destination for saving raw output. If the rawOutput "      +"option is selected, then output from the splitEvaluator for "      +"individual train-test splits is saved. If the destination is a "      +"directory, "      +"then each output is saved to an individual gzip file; if the "      +"destination is a file, then each output is saved as an entry "      +"in a zip file.";  }  /**   * Get the value of OutputFile.   *   * @return Value of OutputFile.   */  public File getOutputFile() {        return m_OutputFile;  }    /**   * Set the value of OutputFile.   *   * @param newOutputFile Value to assign to OutputFile.   */  public void setOutputFile(File newOutputFile) {        m_OutputFile = newOutputFile;  }    /**   * Returns the tip text for this property   * @return tip text for this property suitable for   * displaying in the explorer/experimenter gui   */  public String randomizeDataTipText() {    return "Do not randomize dataset and do not perform probabilistic rounding " +      "if true";  }  /**   * Get if dataset is to be randomized   * @return true if dataset is to be randomized   */  public boolean getRandomizeData() {    return m_randomize;  }    /**   * Set to true if dataset is to be randomized   * @param d true if dataset is to be randomized   */  public void setRandomizeData(boolean d) {    m_randomize = d;  }  /**   * Returns the tip text for this property   * @return tip text for this property suitable for   * displaying in the explorer/experimenter gui   */  public String rawOutputTipText() {    return "Save raw output (useful for debugging). If set, then output is "      +"sent to the destination specified by outputFile";  }  /**   * Get if raw split evaluator output is to be saved   * @return true if raw split evalutor output is to be saved   */  public boolean getRawOutput() {    return m_debugOutput;  }    /**   * Set to true if raw split evaluator output is to be saved   * @param d true if output is to be saved   */  public void setRawOutput(boolean d) {    m_debugOutput = d;  }  /**   * Returns the tip text for this property   * @return tip text for this property suitable for   * displaying in the explorer/experimenter gui   */  public String trainPercentTipText() {    return "Set the percentage of data to use for training.";  }  /**   * Get the value of TrainPercent.   *   * @return Value of TrainPercent.   */  public double getTrainPercent() {        return m_TrainPercent;  }    /**   * Set the value of TrainPercent.   *   * @param newTrainPercent Value to assign to TrainPercent.   */  public void setTrainPercent(double newTrainPercent) {        m_TrainPercent = newTrainPercent;  }  /**   * Returns the tip text for this property   * @return tip text for this property suitable for   * displaying in the explorer/experimenter gui   */  public String splitEvaluatorTipText() {    return "The evaluator to apply to the test data. "      +"This may be a classifier, regression scheme etc.";  }  /**   * Get the SplitEvaluator.   *   * @return the SplitEvaluator.   */  public SplitEvaluator getSplitEvaluator() {        return m_SplitEvaluator;  }    /**   * Set the SplitEvaluator.   *   * @param newSplitEvaluator new SplitEvaluator to use.   */  public void setSplitEvaluator(SplitEvaluator newSplitEvaluator) {        m_SplitEvaluator = newSplitEvaluator;    m_SplitEvaluator.setAdditionalMeasures(m_AdditionalMeasures);  }  /**   * Returns an enumeration describing the available options..   *   * @return an enumeration of all the available options.   */  public Enumeration listOptions() {    Vector newVector = new Vector(5);    newVector.addElement(new Option(	     "\tThe percentage of instances to use for training.\n"	      +"\t(default 66)", 	     "P", 1, 	     "-P <percent>"));    newVector.addElement(new Option(	     "Save raw split evaluator output.",	     "D",0,"-D"));    newVector.addElement(new Option(	     "\tThe filename where raw output will be stored.\n"	     +"\tIf a directory name is specified then then individual\n"	     +"\toutputs will be gzipped, otherwise all output will be\n"	     +"\tzipped to the named file. Use in conjuction with -D."	     +"\t(default splitEvalutorOut.zip)", 	     "O", 1, 	     "-O <file/directory name/path>"));    newVector.addElement(new Option(	     "\tThe full class name of a SplitEvaluator.\n"	      +"\teg: weka.experiment.ClassifierSplitEvaluator", 	     "W", 1, 	     "-W <class name>"));    newVector.addElement(new Option(	     "\tSet when data is not to be randomized and the data sets' size.\n"	     + "\tIs not to be determined via probabilistic rounding.",	     "R",0,"-R"));     if ((m_SplitEvaluator != null) &&	(m_SplitEvaluator instanceof OptionHandler)) {      newVector.addElement(new Option(	     "",	     "", 0, "\nOptions specific to split evaluator "	     + m_SplitEvaluator.getClass().getName() + ":"));      Enumeration enu = ((OptionHandler)m_SplitEvaluator).listOptions();      while (enu.hasMoreElements()) {	newVector.addElement(enu.nextElement());      }    }    return newVector.elements();  }  /**   * Parses a given list of options. <p/>   *   <!-- options-start -->   * Valid options are: <p/>   *    * <pre> -P &lt;percent&gt;   *  The percentage of instances to use for training.   *  (default 66)</pre>   *    * <pre> -D   * Save raw split evaluator output.</pre>   *    * <pre> -O &lt;file/directory name/path&gt;   *  The filename where raw output will be stored.   *  If a directory name is specified then then individual   *  outputs will be gzipped, otherwise all output will be   *  zipped to the named file. Use in conjuction with -D. (default splitEvalutorOut.zip)</pre>   *    * <pre> -W &lt;class name&gt;   *  The full class name of a SplitEvaluator.   *  eg: weka.experiment.ClassifierSplitEvaluator</pre>   *    * <pre> -R   *  Set when data is not to be randomized and the data sets' size.   *  Is not to be determined via probabilistic rounding.</pre>   *    * <pre>    * Options specific to split evaluator weka.experiment.ClassifierSplitEvaluator:   * </pre>   *    * <pre> -W &lt;class name&gt;   *  The full class name of the classifier.   *  eg: weka.classifiers.bayes.NaiveBayes</pre>   *    * <pre> -C &lt;index&gt;   *  The index of the class for which IR statistics   *  are to be output. (default 1)</pre>   *    * <pre> -I &lt;index&gt;   *  The index of an attribute to output in the   *  results. This attribute should identify an   *  instance in order to know which instances are   *  in the test set of a cross validation. if 0   *  no output (default 0).</pre>   *    * <pre> -P   *  Add target and prediction columns to the result   *  for each fold.</pre>   *    * <pre>    * Options specific to classifier weka.classifiers.rules.ZeroR:   * </pre>   *    * <pre> -D   *  If set, classifier is run in debug mode and   *  may output additional info to the console</pre>   *    <!-- options-end -->   *   * All options after -- will be passed to the split evaluator.   *   * @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 {        setRawOutput(Utils.getFlag('D', options));    setRandomizeData(!Utils.getFlag('R', options));    String fName = Utils.getOption('O', options);    if (fName.length() != 0) {      setOutputFile(new File(fName));    }    String trainPct = Utils.getOption('P', options);    if (trainPct.length() != 0) {      setTrainPercent((new Double(trainPct)).doubleValue());    } else {      setTrainPercent(66);    }    String seName = Utils.getOption('W', options);    if (seName.length() == 0) {      throw new Exception("A SplitEvaluator must be specified with"			  + " the -W option.");    }    // Do it first without options, so if an exception is thrown during    // the option setting, listOptions will contain options for the actual    // SE.    setSplitEvaluator((SplitEvaluator)Utils.forName(		      SplitEvaluator.class,		      seName,		      null));    if (getSplitEvaluator() instanceof OptionHandler) {      ((OptionHandler) getSplitEvaluator())	.setOptions(Utils.partitionOptions(options));    }  }  /**   * Gets the current settings of the result producer.   *   * @return an array of strings suitable for passing to setOptions   */  public String [] getOptions() {    String [] seOptions = new String [0];    if ((m_SplitEvaluator != null) && 	(m_SplitEvaluator instanceof OptionHandler)) {      seOptions = ((OptionHandler)m_SplitEvaluator).getOptions();    }        String [] options = new String [seOptions.length + 9];    int current = 0;    options[current++] = "-P"; options[current++] = "" + getTrainPercent();        if (getRawOutput()) {      options[current++] = "-D";    }        if (!getRandomizeData()) {      options[current++] = "-R";    }    options[current++] = "-O";     options[current++] = getOutputFile().getName();    if (getSplitEvaluator() != null) {      options[current++] = "-W";      options[current++] = getSplitEvaluator().getClass().getName();    }    options[current++] = "--";    System.arraycopy(seOptions, 0, options, current, 		     seOptions.length);    current += seOptions.length;    while (current < options.length) {      options[current++] = "";    }    return options;  }  /**   * Gets a text descrption of the result producer.   *   * @return a text description of the result producer.   */  public String toString() {    String result = "RandomSplitResultProducer: ";    result += getCompatibilityState();    if (m_Instances == null) {      result += ": <null Instances>";    } else {      result += ": " + Utils.backQuoteChars(m_Instances.relationName());    }    return result;  }} // RandomSplitResultProducer

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -