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

📄 smo.java

📁 Java 编写的多种数据挖掘算法 包括聚类、分类、预处理等
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
   *    * <pre> -E &lt;num&gt;   *  The Exponent to use.   *  (default: 1.0)</pre>   *    * <pre> -L   *  Use lower-order terms.   *  (default: no)</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;    String[]	tmpOptions;        setChecksTurnedOff(Utils.getFlag("no-checks", options));    tmpStr = Utils.getOption('C', options);    if (tmpStr.length() != 0)      setC(Double.parseDouble(tmpStr));    else      setC(1.0);    tmpStr = Utils.getOption('L', options);    if (tmpStr.length() != 0)      setToleranceParameter(Double.parseDouble(tmpStr));    else      setToleranceParameter(1.0e-3);        tmpStr = Utils.getOption('P', options);    if (tmpStr.length() != 0)      setEpsilon(Double.parseDouble(tmpStr));    else      setEpsilon(1.0e-12);        tmpStr = Utils.getOption('N', options);    if (tmpStr.length() != 0)      setFilterType(new SelectedTag(Integer.parseInt(tmpStr), TAGS_FILTER));    else      setFilterType(new SelectedTag(FILTER_NORMALIZE, TAGS_FILTER));        setBuildLogisticModels(Utils.getFlag('M', options));        tmpStr = Utils.getOption('V', options);    if (tmpStr.length() != 0)      setNumFolds(Integer.parseInt(tmpStr));    else      setNumFolds(-1);        tmpStr = Utils.getOption('W', options);    if (tmpStr.length() != 0)      setRandomSeed(Integer.parseInt(tmpStr));    else      setRandomSeed(1);    tmpStr     = Utils.getOption('K', options);    tmpOptions = Utils.splitOptions(tmpStr);    if (tmpOptions.length != 0) {      tmpStr        = tmpOptions[0];      tmpOptions[0] = "";      setKernel(Kernel.forName(tmpStr, tmpOptions));    }        super.setOptions(options);  }  /**   * Gets the current settings of the classifier.   *   * @return an array of strings suitable for passing to setOptions   */  public String[] getOptions() {    int       i;    Vector    result;    String[]  options;    result = new Vector();    options = super.getOptions();    for (i = 0; i < options.length; i++)      result.add(options[i]);    if (getChecksTurnedOff())      result.add("-no-checks");    result.add("-C");    result.add("" + getC());        result.add("-L");    result.add("" + getToleranceParameter());        result.add("-P");    result.add("" + getEpsilon());        result.add("-N");    result.add("" + m_filterType);        if (getBuildLogisticModels())      result.add("-M");        result.add("-V");    result.add("" + getNumFolds());        result.add("-W");    result.add("" + getRandomSeed());    result.add("-K");    result.add("" + getKernel().getClass().getName() + " " + Utils.joinOptions(getKernel().getOptions()));        return (String[]) result.toArray(new String[result.size()]);	    }  /**   * Disables or enables the checks (which could be time-consuming). Use with   * caution!   *    * @param value	if true turns off all checks   */  public void setChecksTurnedOff(boolean value) {    if (value)      turnChecksOff();    else      turnChecksOn();  }    /**   * Returns whether the checks are turned off or not.   *    * @return		true if the checks are turned off   */  public boolean getChecksTurnedOff() {    return m_checksTurnedOff;  }  /**   * Returns the tip text for this property   *    * @return 		tip text for this property suitable for   * 			displaying in the explorer/experimenter gui   */  public String checksTurnedOffTipText() {    return "Turns time-consuming checks off - use with caution.";  }    /**   * Returns the tip text for this property   *    * @return 		tip text for this property suitable for   * 			displaying in the explorer/experimenter gui   */  public String kernelTipText() {    return "The kernel to use.";  }    /**   * sets the kernel to use   *    * @param value	the kernel to use   */  public void setKernel(Kernel value) {    m_kernel = value;  }    /**   * Returns the kernel to use   *    * @return 		the current kernel   */  public Kernel getKernel() {    return m_kernel;  }       /**   * Returns the tip text for this property   * @return tip text for this property suitable for   * displaying in the explorer/experimenter gui   */  public String cTipText() {    return "The complexity parameter C.";  }    /**   * Get the value of C.   *   * @return Value of C.   */  public double getC() {        return m_C;  }    /**   * Set the value of C.   *   * @param v  Value to assign to C.   */  public void setC(double v) {        m_C = v;  }       /**   * Returns the tip text for this property   * @return tip text for this property suitable for   * displaying in the explorer/experimenter gui   */  public String toleranceParameterTipText() {    return "The tolerance parameter (shouldn't be changed).";  }    /**   * Get the value of tolerance parameter.   * @return Value of tolerance parameter.   */  public double getToleranceParameter() {        return m_tol;  }    /**   * Set the value of tolerance parameter.   * @param v  Value to assign to tolerance parameter.   */  public void setToleranceParameter(double v) {        m_tol = v;  }       /**   * Returns the tip text for this property   * @return tip text for this property suitable for   * displaying in the explorer/experimenter gui   */  public String epsilonTipText() {    return "The epsilon for round-off error (shouldn't be changed).";  }    /**   * Get the value of epsilon.   * @return Value of epsilon.   */  public double getEpsilon() {        return m_eps;  }    /**   * Set the value of epsilon.   * @param v  Value to assign to epsilon.   */  public void setEpsilon(double v) {        m_eps = v;  }       /**   * Returns the tip text for this property   * @return tip text for this property suitable for   * displaying in the explorer/experimenter gui   */  public String filterTypeTipText() {    return "Determines how/if the data will be transformed.";  }    /**   * Gets how the training data will be transformed. Will be one of   * FILTER_NORMALIZE, FILTER_STANDARDIZE, FILTER_NONE.   *   * @return the filtering mode   */  public SelectedTag getFilterType() {    return new SelectedTag(m_filterType, TAGS_FILTER);  }    /**   * Sets how the training data will be transformed. Should be one of   * FILTER_NORMALIZE, FILTER_STANDARDIZE, FILTER_NONE.   *   * @param newType the new filtering mode   */  public void setFilterType(SelectedTag newType) {        if (newType.getTags() == TAGS_FILTER) {      m_filterType = newType.getSelectedTag().getID();    }  }       /**   * Returns the tip text for this property   * @return tip text for this property suitable for   * displaying in the explorer/experimenter gui   */  public String buildLogisticModelsTipText() {    return "Whether to fit logistic models to the outputs (for proper "      + "probability estimates).";  }  /**   * Get the value of buildLogisticModels.   *   * @return Value of buildLogisticModels.   */  public boolean getBuildLogisticModels() {        return m_fitLogisticModels;  }    /**   * Set the value of buildLogisticModels.   *   * @param newbuildLogisticModels Value to assign to buildLogisticModels.   */  public void setBuildLogisticModels(boolean newbuildLogisticModels) {        m_fitLogisticModels = newbuildLogisticModels;  }       /**   * Returns the tip text for this property   * @return tip text for this property suitable for   * displaying in the explorer/experimenter gui   */  public String numFoldsTipText() {    return "The number of folds for cross-validation used to generate "      + "training data for logistic models (-1 means use training data).";  }    /**   * Get the value of numFolds.   *   * @return Value of numFolds.   */  public int getNumFolds() {        return m_numFolds;  }    /**   * Set the value of numFolds.   *   * @param newnumFolds Value to assign to numFolds.   */  public void setNumFolds(int newnumFolds) {        m_numFolds = newnumFolds;  }       /**   * Returns the tip text for this property   * @return tip text for this property suitable for   * displaying in the explorer/experimenter gui   */  public String randomSeedTipText() {    return "Random number seed for the cross-validation.";  }    /**   * Get the value of randomSeed.   *   * @return Value of randomSeed.   */  public int getRandomSeed() {        return m_randomSeed;  }    /**   * Set the value of randomSeed.   *   * @param newrandomSeed Value to assign to randomSeed.   */  public void setRandomSeed(int newrandomSeed) {        m_randomSeed = newrandomSeed;  }    /**   * Prints out the classifier.   *   * @return a description of the classifier as a string   */  public String toString() {        StringBuffer text = new StringBuffer();        if ((m_classAttribute == null)) {      return "SMO: No model built yet.";    }    try {      text.append("SMO\n\n");      text.append("Kernel used:\n  " + m_kernel.toString() + "\n\n");            for (int i = 0; i < m_classAttribute.numValues(); i++) {	for (int j = i + 1; j < m_classAttribute.numValues(); j++) {	  text.append("Classifier for classes: " + 		      m_classAttribute.value(i) + ", " +		      m_classAttribute.value(j) + "\n\n");	  text.append(m_classifiers[i][j]);	  if (m_fitLogisticModels) {	    text.append("\n\n");	    if ( m_classifiers[i][j].m_logistic == null) {	      text.append("No logistic model has been fit.\n");	    } else {	      text.append(m_classifiers[i][j].m_logistic);	    }	  }	  text.append("\n\n");	}      }    } catch (Exception e) {      return "Can't print SMO classifier.";    }        return text.toString();  }    /**   * Main method for testing this class.   */  public static void main(String[] argv) {    Classifier scheme;    try {      scheme = new SMO();      System.out.println(Evaluation.evaluateModel(scheme, argv));    } catch (Exception e) {      e.printStackTrace();      System.err.println(e.getMessage());    }  }}

⌨️ 快捷键说明

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