weka.core

## Class BinarySparseInstance

- java.lang.Object
- - weka.core.AbstractInstance
  - - weka.core.SparseInstance
    - - weka.core.BinarySparseInstance

- All Implemented Interfaces:
    java.io.Serializable, Copyable, Instance, RevisionHandler

      public class BinarySparseInstance
      extends SparseInstance

  Class for storing a binary-data-only instance as a sparse vector. A sparse instance only requires storage for those attribute values that are non-zero. Since the objective is to reduce storage requirements for datasets with large numbers of default values, this also includes nominal attributes -- the first nominal value (i.e. that which has index 0) will not require explicit storage, so rearrange your nominal attribute value orderings if necessary. Missing values are not supported, and will be treated as 1 (true).
  Version:
    $Revision: 12472 $
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class weka.core.AbstractInstance

      `s_numericAfterDecimalPoint`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BinarySparseInstance(double weight, double[] attValues)` Constructor that generates a sparse instance from the given parameters.
    `BinarySparseInstance(double weight, int[] indices, int maxNumValues)` Constructor that inititalizes instance variable with given values.
    `BinarySparseInstance(Instance instance)` Constructor that generates a sparse instance from the given instance.
    `BinarySparseInstance(int numAttributes)` Constructor of an instance that sets weight to one, all values to 1, and the reference to the dataset to null.
    `BinarySparseInstance(SparseInstance instance)` Constructor that copies the info from the given instance.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `copy()` Produces a shallow copy of this instance.
    `Instance` | `copy(double[] values)` Copies the instance but fills up its values based on the given array of doubles.
    `java.lang.String` | `getRevision()` Returns the revision string.
    `static void` | `main(java.lang.String[] options)` Main method for testing this class.
    `Instance` | `mergeInstance(Instance inst)` Merges this instance with the given instance and returns the result.
    `void` | `replaceMissingValues(double[] array)` Does nothing, since we don't support missing values.
    `void` | `setValue(int attIndex, double value)` Sets a specific value in the instance to the given value (internal floating-point format).
    `void` | `setValueSparse(int indexOfIndex, double value)` Sets a specific value in the instance to the given value (internal floating-point format).
    `double[]` | `toDoubleArray()` Returns the values of each attribute as an array of doubles.
    `java.lang.String` | `toString()` Returns the description of one instance in sparse format.
    `double` | `value(int attIndex)` Returns an instance's attribute value in internal format.
    `double` | `valueSparse(int indexOfIndex)` Returns an instance's attribute value in internal format.

    - ### Methods inherited from class weka.core.SparseInstance

      `index, locateIndex, numAttributes, numValues, toStringNoWeight, toStringNoWeight`

    - ### Methods inherited from class weka.core.AbstractInstance

      `attribute, attributeSparse, classAttribute, classIndex, classIsMissing, classValue, dataset, deleteAttributeAt, enumerateAttributes, equalHeaders, equalHeadersMsg, hasMissingValue, insertAttributeAt, isMissing, isMissing, isMissingSparse, numClasses, relationalValue, relationalValue, setClassMissing, setClassValue, setClassValue, setDataset, setMissing, setMissing, setValue, setValue, setValue, setWeight, stringValue, stringValue, toString, toString, toString, toString, toStringMaxDecimalDigits, value, weight`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### BinarySparseInstance

          public BinarySparseInstance(Instance instance)

      Constructor that generates a sparse instance from the given instance. Reference to the dataset is set to null. (ie. the instance doesn't have access to information about the attribute types)
      Parameters:
        `instance` - the instance from which the attribute values and the weight are to be copied

    - #### BinarySparseInstance

          public BinarySparseInstance(SparseInstance instance)

      Constructor that copies the info from the given instance. Reference to the dataset is set to null. (ie. the instance doesn't have access to information about the attribute types)
      Parameters:
        `instance` - the instance from which the attribute info is to be copied

    - #### BinarySparseInstance

          public BinarySparseInstance(double weight,
                                      double[] attValues)

      Constructor that generates a sparse instance from the given parameters. Reference to the dataset is set to null. (ie. the instance doesn't have access to information about the attribute types)
      Parameters:
        `weight` - the instance's weight
        `attValues` - a vector of attribute values

    - #### BinarySparseInstance

          public BinarySparseInstance(double weight,
                                      int[] indices,
                                      int maxNumValues)

      Constructor that inititalizes instance variable with given values. Reference to the dataset is set to null. (ie. the instance doesn't have access to information about the attribute types)
      Parameters:
        `weight` - the instance's weight
        `indices` - the indices of the given values in the full vector
        `maxNumValues` - the maximium number of values that can be stored

    - #### BinarySparseInstance

          public BinarySparseInstance(int numAttributes)

      Constructor of an instance that sets weight to one, all values to 1, and the reference to the dataset to null. (ie. the instance doesn't have access to information about the attribute types)
      Parameters:
        `numAttributes` - the size of the instance

  - ### Method Detail

    - #### copy

          public java.lang.Object copy()

      Produces a shallow copy of this instance. The copy has access to the same dataset. (if you want to make a copy that doesn't have access to the dataset, use `new BinarySparseInstance(instance)`
      Specified by:
        `copy` in interface `Copyable`
      Overrides:
        `copy` in class `SparseInstance`
      Returns:
        the shallow copy

    - #### copy

          public Instance copy(double[] values)

      Copies the instance but fills up its values based on the given array of doubles. The copy has access to the same dataset.
      Specified by:
        `copy` in interface `Instance`
      Overrides:
        `copy` in class `SparseInstance`
      Parameters:
        `values` - the array with new values
      Returns:
        the new instance

    - #### mergeInstance

          public Instance mergeInstance(Instance inst)

      Merges this instance with the given instance and returns the result. Dataset is set to null.
      Specified by:
        `mergeInstance` in interface `Instance`
      Overrides:
        `mergeInstance` in class `SparseInstance`
      Parameters:
        `inst` - the instance to be merged with this one
      Returns:
        the merged instances

    - #### replaceMissingValues

          public void replaceMissingValues(double[] array)

      Does nothing, since we don't support missing values.
      Specified by:
        `replaceMissingValues` in interface `Instance`
      Overrides:
        `replaceMissingValues` in class `SparseInstance`
      Parameters:
        `array` - containing the means and modes

    - #### setValue

          public void setValue(int attIndex,
                               double value)

      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.
      Specified by:
        `setValue` in interface `Instance`
      Overrides:
        `setValue` in class `SparseInstance`
      Parameters:
        `attIndex` - the attribute's index
        `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).

    - #### setValueSparse

          public void setValueSparse(int indexOfIndex,
                                     double value)

      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.
      Specified by:
        `setValueSparse` in interface `Instance`
      Overrides:
        `setValueSparse` in class `SparseInstance`
      Parameters:
        `indexOfIndex` - the index of the attribute's index
        `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).

    - #### toDoubleArray

          public double[] toDoubleArray()

      Returns the values of each attribute as an array of doubles.
      Specified by:
        `toDoubleArray` in interface `Instance`
      Overrides:
        `toDoubleArray` in class `SparseInstance`
      Returns:
        an array containing all the instance attribute values

    - #### toString

          public java.lang.String toString()

      Returns the description of one instance in sparse format. If the instance doesn't have access to a dataset, it returns the internal floating-point values. Quotes string values that contain whitespace characters.
      Overrides:
        `toString` in class `AbstractInstance`
      Returns:
        the instance's description as a string

    - #### value

          public double value(int attIndex)

      Returns an instance's attribute value in internal format.
      Specified by:
        `value` in interface `Instance`
      Overrides:
        `value` in class `SparseInstance`
      Parameters:
        `attIndex` - the attribute's index
      Returns:
        the specified value as a double (If the corresponding attribute is nominal (or a string) then it returns the value's index as a double).

    - #### valueSparse

          public final double valueSparse(int indexOfIndex)

      Returns an instance's attribute value in internal format. Does exactly the same thing as value() if applied to an Instance.
      Specified by:
        `valueSparse` in interface `Instance`
      Overrides:
        `valueSparse` in class `AbstractInstance`
      Parameters:
        `indexOfIndex` - the index of the attribute's index
      Returns:
        the specified value as a double (If the corresponding attribute is nominal (or a string) then it returns the value's index as a double).

    - #### main

          public static void main(java.lang.String[] options)

      Main method for testing this class.
      Parameters:
        `options` - the command line options - ignored

    - #### getRevision

          public java.lang.String getRevision()

      Returns the revision string.
      Specified by:
        `getRevision` in interface `RevisionHandler`
      Overrides:
        `getRevision` in class `SparseInstance`
      Returns:
        the revision