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

📄 instance.java

📁 wekaUT是 university texas austin 开发的基于weka的半指导学习(semi supervised learning)的分类器
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
    }    return false;  }  /**   * Tests if a specific value is "missing".   * The given attribute has to belong to a dataset.   *   * @param att the attribute   */  public boolean isMissing(Attribute att) {    return isMissing(att.index());  }  /**   * Tests if the given value codes "missing".   *   * @param val the value to be tested   * @return true if val codes "missing"   */  public static boolean isMissingValue(double val) {    return Double.isNaN(val);  }  /**   * Merges this instance with the given instance and returns   * the result. Dataset is set to null.   *   * @param inst the instance to be merged with this one   * @return the merged instances   */  public Instance mergeInstance(Instance inst) {    int m = 0;    double [] newVals = new double[numAttributes() + inst.numAttributes()];    for (int j = 0; j < numAttributes(); j++, m++) {      newVals[m] = value(j);    }    for (int j = 0; j < inst.numAttributes(); j++, m++) {      newVals[m] = inst.value(j);    }    return new Instance(1.0, newVals);  }  /**   * Returns the double that codes "missing".   *   * @return the double that codes "missing"   */  public static double missingValue() {    return MISSING_VALUE;  }  /**   * Returns the number of attributes.   *   * @return the number of attributes as an integer   */  public int numAttributes() {    return m_AttValues.length;  }  /**   * Returns the number of class labels.   *   * @return the number of class labels as an integer if the    * class attribute is nominal, 1 otherwise.   * @exception UnassignedDatasetException if instance doesn't have access to any   * dataset   */  public int numClasses() {        if (m_Dataset == null) {      throw new UnassignedDatasetException("Instance doesn't have access to a dataset!");    }    return m_Dataset.numClasses();  }  /**   * Returns the number of values present. Always the same as numAttributes().   *   * @return the number of values   */  public int numValues() {    return m_AttValues.length;  }  /**    * Replaces all missing values in the instance with the   * values contained in the given array. A deep copy of   * the vector of attribute values is performed before the   * values are replaced.   *   * @param array containing the means and modes   * @exception IllegalArgumentException if numbers of attributes are unequal   */  public void replaceMissingValues(double[] array) {	     if ((array == null) || 	(array.length != m_AttValues.length)) {      throw new IllegalArgumentException("Unequal number of attributes!");    }    freshAttributeVector();    for (int i = 0; i < m_AttValues.length; i++) {      if (isMissing(i)) {	m_AttValues[i] = array[i];      }    }  }  /**   * Sets the class value of an instance to be "missing". A deep copy of   * the vector of attribute values is performed before the   * value is set to be missing.   *   * @exception UnassignedClassException if the class is not set   * @exception UnassignedDatasetException if the instance doesn't   * have access to a dataset   */  public void setClassMissing() {    if (classIndex() < 0) {      throw new UnassignedClassException("Class is not set!");    }    setMissing(classIndex());  }  /**   * Sets the class value of an instance to the given value (internal   * floating-point format).  A deep copy of the vector of attribute   * values is performed before the value is set.   *   * @param value the new attribute value (If the corresponding   * attribute is nominal (or a string) then this is the new value's   * index as a double).     * @exception UnassignedClassException if the class is not set   * @exception UnaddignedDatasetException if the instance doesn't   * have access to a dataset    */  public void setClassValue(double value) {    if (classIndex() < 0) {      throw new UnassignedClassException("Class is not set!");    }    setValue(classIndex(), value);  }  /**   * Sets the class value of an instance to the given value. A deep   * copy of the vector of attribute values is performed before the   * value is set.   *   * @param value the new class value (If the class   * is a string attribute and the value can't be found,   * the value is added to the attribute).   * @exception UnassignedClassException if the class is not set   * @exception UnassignedDatasetException if the dataset is not set   * @exception IllegalArgumentException if the attribute is not   * nominal or a string, or the value couldn't be found for a nominal   * attribute    */  public final void setClassValue(String value) {    if (classIndex() < 0) {      throw new UnassignedClassException("Class is not set!");    }    setValue(classIndex(), value);  }  /**   * Sets the reference to the dataset. Does not check if the instance   * is compatible with the dataset. Note: the dataset does not know   * about this instance. If the structure of the dataset's header   * gets changed, this instance will not be adjusted automatically.   *   * @param instances the reference to the dataset    */  public final void setDataset(Instances instances) {        m_Dataset = instances;  }  /**   * Sets a specific value to be "missing". Performs a deep copy   * of the vector of attribute values before the value is set to   * be missing.   *   * @param attIndex the attribute's index   */  public final void setMissing(int attIndex) {    setValue(attIndex, MISSING_VALUE);  }  /**   * Sets a specific value to be "missing". Performs a deep copy   * of the vector of attribute values before the value is set to   * be missing. The given attribute has to belong to a dataset.   *   * @param att the attribute   */  public final void setMissing(Attribute att) {    setMissing(att.index());  }  /**   * Sets a specific value in the instance to the given value    * (internal floating-point format). Performs a deep copy   * of the vector of attribute values before the value is set.   *   * @param attIndex the attribute's index    * @param value the new attribute value (If the corresponding   * attribute is nominal (or a string) then this is the new value's   * index as a double).     */  public void setValue(int attIndex, double value) {        freshAttributeVector();    m_AttValues[attIndex] = value;  }  /**   * Sets the whole attribute value array   *   * @author Sugato Basu   * @param attIndex the attribute's index    * @param array the attribute value array     */  public void setValueArray(double [] array) {        freshAttributeVector();    m_AttValues = array;  }    /**   * Sets a specific value in the instance to the given value    * (internal floating-point format). Performs a deep copy   * of the vector of attribute values before the value is set.   * Does exactly the same thing as setValue().   *   * @param indexOfIndex the index of the attribute's index    * @param value the new attribute value (If the corresponding   * attribute is nominal (or a string) then this is the new value's   * index as a double).     */  public void setValueSparse(int indexOfIndex, double value) {        freshAttributeVector();    m_AttValues[indexOfIndex] = value;  }  /**   * Sets a value of a nominal or string attribute to the given   * value. Performs a deep copy of the vector of attribute values   * before the value is set.   *   * @param attIndex the attribute's index   * @param value the new attribute value (If the attribute   * is a string attribute and the value can't be found,   * the value is added to the attribute).   * @exception UnassignedDatasetException if the dataset is not set   * @exception IllegalArgumentException if the selected   * attribute is not nominal or a string, or the supplied value couldn't    * be found for a nominal attribute    */  public final void setValue(int attIndex, String value) {        int valIndex;    if (m_Dataset == null) {      throw new UnassignedDatasetException("Instance doesn't have access to a dataset!");    }    if (!attribute(attIndex).isNominal() &&	!attribute(attIndex).isString()) {      throw new IllegalArgumentException("Attribute neither nominal nor string!");    }    valIndex = attribute(attIndex).indexOfValue(value);    if (valIndex == -1) {      if (attribute(attIndex).isNominal()) {	throw new IllegalArgumentException("Value not defined for given nominal attribute!");      } else {	attribute(attIndex).forceAddValue(value);	valIndex = attribute(attIndex).indexOfValue(value);      }    }    setValue(attIndex, (double)valIndex);   }  /**   * Sets a specific value in the instance to the given value   * (internal floating-point format). Performs a deep copy of the   * vector of attribute values before the value is set, so if you are   * planning on calling setValue many times it may be faster to   * create a new instance using toDoubleArray.  The given attribute   * has to belong to a dataset.   *   * @param att the attribute    * @param value the new attribute value (If the corresponding   * attribute is nominal (or a string) then this is the new value's   * index as a double).     */  public final void setValue(Attribute att, double value) {    setValue(att.index(), value);  }  /**   * Sets a value of an nominal or string attribute to the given   * value. Performs a deep copy of the vector of attribute values   * before the value is set, so if you are planning on calling setValue many   * times it may be faster to create a new instance using toDoubleArray.   * The given attribute has to belong to a dataset.   *   * @param att the attribute   * @param value the new attribute value (If the attribute   * is a string attribute and the value can't be found,   * the value is added to the attribute).   * @exception IllegalArgumentException if the the attribute is not   * nominal or a string, or the value couldn't be found for a nominal   * attribute    */  public final void setValue(Attribute att, String value) {    if (!att.isNominal() &&	!att.isString()) {      throw new IllegalArgumentException("Attribute neither nominal nor string!");    }    int valIndex = att.indexOfValue(value);    if (valIndex == -1) {      if (att.isNominal()) {	throw new IllegalArgumentException("Value not defined for given nominal attribute!");      } else {	att.forceAddValue(value);	valIndex = att.indexOfValue(value);      }    }    setValue(att.index(), (double)valIndex);  }  /**   * Sets the weight of an instance.   *   * @param weight the weight   */  public final void setWeight(double weight) {    m_Weight = weight;  }  /**    * Returns the string value of a nominal, string, or date attribute   * for the instance.   *   * @param attIndex the attribute's index   * @return the value as a string   * @exception IllegalArgumentException if the attribute is not a nominal,   * string, or date attribute.

⌨️ 快捷键说明

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