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

📄 lmt.java

📁 JAVA的一个程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
   * Gets the current settings of the Classifier.   *   * @return an array of strings suitable for passing to setOptions   */  public String[] getOptions() {    String[] options = new String[11];    int current = 0;    if (getConvertNominal()) {      options[current++] = "-B";    }     if (getSplitOnResiduals()) {      options[current++] = "-R";    }    if (!getFastRegression()) {      options[current++] = "-C";    } 	    if (getErrorOnProbabilities()) {      options[current++] = "-P";    } 	    options[current++] = "-I";     options[current++] = ""+getNumBoostingIterations();    options[current++] = "-M";     options[current++] = ""+getMinNumInstances();            options[current++] = "-W";    options[current++] = ""+getWeightTrimBeta();        if (getUseAIC()) {      options[current++] = "-A";    }        while (current < options.length) {      options[current++] = "";    }     return options;  }   /**   * Get the value of weightTrimBeta.   */  public double getWeightTrimBeta(){    return m_weightTrimBeta;  }    /**   * Get the value of useAIC.   *   * @return Value of useAIC.   */  public boolean getUseAIC(){    return m_useAIC;  }      /**   * Set the value of weightTrimBeta.   */  public void setWeightTrimBeta(double n){    m_weightTrimBeta = n;  }    /**   * Set the value of useAIC.   *   * @param c Value to assign to useAIC.   */  public void setUseAIC(boolean c){    m_useAIC = c;  }    /**   * Get the value of convertNominal.   *   * @return Value of convertNominal.   */  public boolean getConvertNominal(){    return m_convertNominal;  }  /**   * Get the value of splitOnResiduals.   *   * @return Value of splitOnResiduals.   */  public boolean getSplitOnResiduals(){    return m_splitOnResiduals;  }  /**   * Get the value of fastRegression.   *   * @return Value of fastRegression.   */  public boolean getFastRegression(){    return m_fastRegression;  }      /**   * Get the value of errorOnProbabilities.   *   * @return Value of errorOnProbabilities.   */  public boolean getErrorOnProbabilities(){    return m_errorOnProbabilities;  }  /**   * Get the value of numBoostingIterations.   *   * @return Value of numBoostingIterations.   */  public int getNumBoostingIterations(){    return m_numBoostingIterations;  }      /**   * Get the value of minNumInstances.   *   * @return Value of minNumInstances.   */  public int getMinNumInstances(){    return m_minNumInstances;  }      /**   * Set the value of convertNominal.   *   * @param c Value to assign to convertNominal.   */  public void setConvertNominal(boolean c){    m_convertNominal = c;  }  /**   * Set the value of splitOnResiduals.   *   * @param c Value to assign to splitOnResiduals.   */  public void setSplitOnResiduals(boolean c){    m_splitOnResiduals = c;  }  /**   * Set the value of fastRegression.   *   * @param c Value to assign to fastRegression.   */  public void setFastRegression(boolean c){    m_fastRegression = c;  }  /**   * Set the value of errorOnProbabilities.   *   * @param c Value to assign to errorOnProbabilities.   */  public void setErrorOnProbabilities(boolean c){    m_errorOnProbabilities = c;  }  /**   * Set the value of numBoostingIterations.   *   * @param c Value to assign to numBoostingIterations.   */  public void setNumBoostingIterations(int c){    m_numBoostingIterations = c;  }   /**   * Set the value of minNumInstances.   *   * @param c Value to assign to minNumInstances.   */  public void setMinNumInstances(int c){    m_minNumInstances = c;  }      /**   *  Returns the type of graph this classifier   *  represents.   *  @return Drawable.TREE   */     public int graphType() {    return Drawable.TREE;  }  /**   * Returns graph describing the tree.   *   * @return the graph describing the tree   * @throws Exception if graph can't be computed   */  public String graph() throws Exception {    return m_tree.graph();  }  /**   * Returns the size of the tree   * @return the size of the tree   */  public int measureTreeSize(){    return m_tree.numNodes();  }      /**   * Returns the number of leaves in the tree   * @return the number of leaves in the tree   */  public int measureNumLeaves(){    return m_tree.numLeaves();  }       /**   * Returns an enumeration of the additional measure names   * @return an enumeration of the measure names   */  public Enumeration enumerateMeasures() {    Vector newVector = new Vector(2);    newVector.addElement("measureTreeSize");    newVector.addElement("measureNumLeaves");	    return newVector.elements();  }      /**   * Returns the value of the named measure   * @param additionalMeasureName the name of the measure to query for its value   * @return the value of the named measure   * @throws IllegalArgumentException if the named measure is not supported   */  public double getMeasure(String additionalMeasureName) {    if (additionalMeasureName.compareToIgnoreCase("measureTreeSize") == 0) {      return measureTreeSize();    } else if (additionalMeasureName.compareToIgnoreCase("measureNumLeaves") == 0) {      return measureNumLeaves();    } else {      throw new IllegalArgumentException(additionalMeasureName 					 + " not supported (LMT)");    }  }          /**   * Returns a string describing classifier   * @return a description suitable for   * displaying in the explorer/experimenter gui   */  public String globalInfo() {    return "Classifier for building 'logistic model trees', which are classification trees with "      +"logistic regression functions at the leaves. The algorithm can deal with binary and multi-class "      +"target variables, numeric and nominal attributes and missing values.\n\n"      +"For more information see: \n\n"      + getTechnicalInformation().toString();  }  /**   * Returns an instance of a TechnicalInformation object, containing    * detailed information about the technical background of this class,   * e.g., paper reference or book this class is based on.   *    * @return the technical information about this class   */  public TechnicalInformation getTechnicalInformation() {    TechnicalInformation 	result;    TechnicalInformation 	additional;          result = new TechnicalInformation(Type.ARTICLE);    result.setValue(Field.AUTHOR, "Niels Landwehr and Mark Hall and Eibe Frank");    result.setValue(Field.TITLE, "Logistic Model Trees");    result.setValue(Field.BOOKTITLE, "Machine Learning");    result.setValue(Field.YEAR, "2005");    result.setValue(Field.VOLUME, "95");    result.setValue(Field.PAGES, "161-205");    result.setValue(Field.NUMBER, "1-2");        additional = result.add(Type.INPROCEEDINGS);    additional.setValue(Field.AUTHOR, "Marc Sumner and Eibe Frank and Mark Hall");    additional.setValue(Field.TITLE, "Speeding up Logistic Model Tree Induction");    additional.setValue(Field.BOOKTITLE, "9th European Conference on Principles and Practice of Knowledge Discovery in Databases");    additional.setValue(Field.YEAR, "2005");    additional.setValue(Field.PAGES, "675-683");    additional.setValue(Field.PUBLISHER, "Springer");        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 convertNominalTipText() {    return "Convert all nominal attributes to binary ones before building the tree. "      +"This means that all splits in the final tree will be binary.";  }      /**   * Returns the tip text for this property   * @return tip text for this property suitable for   * displaying in the explorer/experimenter gui   */  public String splitOnResidualsTipText() {    return "Set splitting criterion based on the residuals of LogitBoost. "      +"There are two possible splitting criteria for LMT: the default is to use the C4.5 "      +"splitting criterion that uses information gain on the class variable. The other splitting "      +"criterion tries to improve the purity in the residuals produces when fitting the logistic "      +"regression functions. The choice of the splitting criterion does not usually affect classification "      +"accuracy much, but can produce different trees.";  }    /**   * Returns the tip text for this property   * @return tip text for this property suitable for   * displaying in the explorer/experimenter gui   */  public String fastRegressionTipText() {    return "Use heuristic that avoids cross-validating the number of Logit-Boost iterations at every node. "      +"When fitting the logistic regression functions at a node, LMT has to determine the number of LogitBoost "      +"iterations to run. Originally, this number was cross-validated at every node in the tree. "      +"To save time, this heuristic cross-validates the number only once and then uses that number at every "      +"node in the tree. Usually this does not decrease accuracy but improves runtime considerably.";  }    /**   * Returns the tip text for this property   * @return tip text for this property suitable for   * displaying in the explorer/experimenter gui   */  public String errorOnProbabilitiesTipText() {    return "Minimize error on probabilities instead of misclassification error when cross-validating the number "      +"of LogitBoost iterations. When set, the number of LogitBoost iterations is chosen that minimizes "      +"the root mean squared error instead of the misclassification error.";	     }    /**   * Returns the tip text for this property   * @return tip text for this property suitable for   * displaying in the explorer/experimenter gui   */  public String numBoostingIterationsTipText() {    return "Set a fixed number of iterations for LogitBoost. If >= 0, this sets a fixed number of LogitBoost "      +"iterations that is used everywhere in the tree. If < 0, the number is cross-validated.";  }    /**   * Returns the tip text for this property   * @return tip text for this property suitable for   * displaying in the explorer/experimenter gui   */  public String minNumInstancesTipText() {    return "Set the minimum number of instances at which a node is considered for splitting. "      +"The default value is 15.";  }          /**     * Returns the tip text for this property     * @return tip text for this property suitable for     * displaying in the explorer/experimenter gui     */    public String weightTrimBetaTipText() {        return "Set the beta value used for weight trimming in LogitBoost. "        +"Only instances carrying (1 - beta)% of the weight from previous iteration "        +"are used in the next iteration. Set to 0 for no weight trimming. "        +"The default value is 0.";    }    /**     * Returns the tip text for this property     * @return tip text for this property suitable for     * displaying in the explorer/experimenter gui     */    public String useAICTipText() {        return "The AIC is used to determine when to stop LogitBoost iterations. "        +"The default is not to use AIC.";    }  /**   * Main method for testing this class   *   * @param argv the commandline options    */  public static void main (String [] argv) {	    try {      System.out.println(Evaluation.evaluateModel(new LMT(), argv));    }     catch (Exception e) {      System.err.println(e.getMessage());    }   }  }

⌨️ 快捷键说明

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