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

📄 onerattributeeval.java

📁 wekaUT是 university texas austin 开发的基于weka的半指导学习(semi supervised learning)的分类器
💻 JAVA
字号:
/* *    This program is free software; you can redistribute it and/or modify *    it under the terms of the GNU General Public License as published by *    the Free Software Foundation; either version 2 of the License, or *    (at your option) any later version. * *    This program is distributed in the hope that it will be useful, *    but WITHOUT ANY WARRANTY; without even the implied warranty of *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *    GNU General Public License for more details. * *    You should have received a copy of the GNU General Public License *    along with this program; if not, write to the Free Software *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *//* *    OneRAttributeEval.java *    Copyright (C) 1999 Mark Hall * */package  weka.attributeSelection;import  java.io.*;import  java.util.*;import  weka.core.*;import  weka.classifiers.*;import  weka.filters.unsupervised.attribute.Remove;import  weka.filters.Filter;/**  * Class for Evaluating attributes individually by using the OneR * classifier. <p> * * No options. <p> * * @author Mark Hall (mhall@cs.waikato.ac.nz) * @version $Revision: 1.2 $ */public class OneRAttributeEval  extends AttributeEvaluator{  /** The training instances */  private Instances m_trainInstances;  /** The class index */  private int m_classIndex;  /** The number of attributes */  private int m_numAttribs;  /** The number of instances */  private int m_numInstances;  /**   * Returns a string describing this attribute evaluator   * @return a description of the evaluator suitable for   * displaying in the explorer/experimenter gui   */  public String globalInfo() {    return "OneRAttributeEval :\n\nEvaluates the worth of an attribute by "      +"using the OneR classifier.\n";  }  /**   * Constructor   */  public OneRAttributeEval () {    resetOptions();  }  /**   * Initializes an information gain attribute evaluator.   * Discretizes all attributes that are numeric.   *   * @param data set of instances serving as training data    * @exception Exception if the evaluator has not been    * generated successfully   */  public void buildEvaluator (Instances data)    throws Exception {    m_trainInstances = data;    if (m_trainInstances.checkForStringAttributes()) {      throw  new UnsupportedAttributeTypeException("Can't handle string attributes!");    }    m_classIndex = m_trainInstances.classIndex();    m_numAttribs = m_trainInstances.numAttributes();    m_numInstances = m_trainInstances.numInstances();    if (m_trainInstances.attribute(m_classIndex).isNumeric()) {      throw  new Exception("Class must be nominal!");    }  }  /**   * rests to defaults.   */  protected void resetOptions () {    m_trainInstances = null;  }  /**   * evaluates an individual attribute by measuring the amount   * of information gained about the class given the attribute.   *   * @param attribute the index of the attribute to be evaluated   * @exception Exception if the attribute could not be evaluated   */  public double evaluateAttribute (int attribute)    throws Exception {    int[] featArray = new int[2]; // feat + class    double errorRate;    Evaluation o_Evaluation;    Remove delTransform = new Remove();    delTransform.setInvertSelection(true);    // copy the instances    Instances trainCopy = new Instances(m_trainInstances);    featArray[0] = attribute;    featArray[1] = trainCopy.classIndex();    delTransform.setAttributeIndicesArray(featArray);    delTransform.setInputFormat(trainCopy);    trainCopy = Filter.useFilter(trainCopy, delTransform);    o_Evaluation = new Evaluation(trainCopy);    o_Evaluation.crossValidateModel("weka.classifiers.rules.OneR", trainCopy, 10, null);    errorRate = o_Evaluation.errorRate();    return  (1 - errorRate)*100.0;  }  /**   * Return a description of the evaluator   * @return description as a string   */  public String toString () {    StringBuffer text = new StringBuffer();    if (m_trainInstances == null) {      text.append("\tOneR feature evaluator has not been built yet");    }    else {      text.append("\tOneR feature evaluator");    }    text.append("\n");    return  text.toString();  }  // ============  // Test method.  // ============  /**   * Main method for testing this class.   *   * @param args the options   */  public static void main (String[] args) {    try {      System.out.println(AttributeSelection.			 SelectAttributes(new OneRAttributeEval(), args));    }    catch (Exception e) {      e.printStackTrace();      System.out.println(e.getMessage());    }  }}

⌨️ 快捷键说明

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