weka.filters.unsupervised.attribute
Class MakeIndicator

java.lang.Object
  extended byweka.filters.Filter
      extended byweka.filters.unsupervised.attribute.MakeIndicator
All Implemented Interfaces:
OptionHandler, java.io.Serializable, StreamableFilter, UnsupervisedFilter

public class MakeIndicator
extends Filter
implements UnsupervisedFilter, StreamableFilter, OptionHandler

Creates a new dataset with a boolean attribute replacing a nominal attribute. In the new dataset, a value of 1 is assigned to an instance that exhibits a particular range of attribute values, a 0 to an instance that doesn't. The boolean attribute is coded as numeric by default.

Valid filter-specific options are:

-C col
Index of the attribute to be changed. (default "last")

-V index1,index2-index4,...
Specify list of values to indicate. First and last are valid indices. (default "last")

-N
Set if new boolean attribute nominal.

Version:
$Revision: 1.2 $
Author:
Eibe Frank (eibe@cs.waikato.ac.nz)
See Also:
Serialized Form

Field Summary
private  SingleIndex m_AttIndex
          The attribute's index setting.
private  boolean m_Numeric
          Make boolean attribute numeric.
private  Range m_ValIndex
          The value's index
 
Fields inherited from class weka.filters.Filter
m_NewBatch
 
Constructor Summary
MakeIndicator()
           
 
Method Summary
 java.lang.String attributeIndexTipText()
           
 java.lang.String getAttributeIndex()
          Get the index of the attribute used.
 boolean getNumeric()
          Check if new attribute is to be numeric.
 java.lang.String[] getOptions()
          Gets the current settings of the filter.
 java.lang.String getValueIndices()
          Get the indices of the indicator values.
 Range getValueRange()
          Get the range containing the indicator values.
 java.lang.String globalInfo()
           
 boolean input(Instance instance)
          Input an instance for filtering.
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options.
static void main(java.lang.String[] argv)
          Main method for testing this class.
 java.lang.String numericTipText()
           
 void setAttributeIndex(java.lang.String attIndex)
          Sets index of the attribute used.
 boolean setInputFormat(Instances instanceInfo)
          Sets the format of the input instances.
 void setNumeric(boolean bool)
          Sets if the new Attribute is to be numeric.
 void setOptions(java.lang.String[] options)
          Parses the options for this object.
private  void setOutputFormat()
          Set the output format.
 void setValueIndex(int index)
          Sets index of the indicator value.
 void setValueIndices(java.lang.String range)
          Sets indices of the indicator values.
 void setValueIndicesArray(int[] indices)
          Set which attributes are to be deleted (or kept if invert is true)
 java.lang.String valueIndicesTipText()
           
 
Methods inherited from class weka.filters.Filter
batchFilterFile, batchFinished, bufferInput, copyStringValues, copyStringValues, filterFile, flushInput, getInputFormat, getInputStringIndex, getOutputFormat, getOutputStringIndex, getStringIndices, inputFormat, inputFormatPeek, isOutputFormatDefined, numPendingOutput, output, outputFormat, outputFormatPeek, outputPeek, push, resetQueue, setOutputFormat, useFilter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_AttIndex

private SingleIndex m_AttIndex
The attribute's index setting.


m_ValIndex

private Range m_ValIndex
The value's index


m_Numeric

private boolean m_Numeric
Make boolean attribute numeric.

Constructor Detail

MakeIndicator

public MakeIndicator()
Method Detail

setInputFormat

public boolean setInputFormat(Instances instanceInfo)
                       throws java.lang.Exception
Sets the format of the input instances.

Overrides:
setInputFormat in class Filter
Parameters:
instanceInfo - an Instances object containing the input instance structure (any instances contained in the object are ignored - only the structure is required).
Returns:
true if the outputFormat may be collected immediately
Throws:
UnsupportedAttributeTypeException - the selecte attribute is not nominal
UnsupportedAttributeTypeException - the selecte attribute has fewer than two values.
java.lang.Exception - if the inputFormat can't be set successfully

input

public boolean input(Instance instance)
Input an instance for filtering. The instance is processed and made available for output immediately.

Overrides:
input in class Filter
Parameters:
instance - the input instance
Returns:
true if the filtered instance may now be collected with output().
Throws:
java.lang.IllegalStateException - if no input format has been set.

listOptions

public java.util.Enumeration listOptions()
Returns an enumeration describing the available options.

Specified by:
listOptions in interface OptionHandler
Returns:
an enumeration of all the available options.

setOptions

public void setOptions(java.lang.String[] options)
                throws java.lang.Exception
Parses the options for this object. Valid options are:

-C col
Index of the attribute to be changed.

-V index1,index2-index4,...
Specify list of values to indicate. First and last are valid indices. (default "last")

-N
Set if new boolean attribute nominal.

Specified by:
setOptions in interface OptionHandler
Parameters:
options - the list of options as an array of strings
Throws:
java.lang.Exception - if an option is not supported

getOptions

public java.lang.String[] getOptions()
Gets the current settings of the filter.

Specified by:
getOptions in interface OptionHandler
Returns:
an array of strings suitable for passing to setOptions

globalInfo

public java.lang.String globalInfo()
Returns:
a description of the filter suitable for displaying in the explorer/experimenter gui

attributeIndexTipText

public java.lang.String attributeIndexTipText()
Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

getAttributeIndex

public java.lang.String getAttributeIndex()
Get the index of the attribute used.

Returns:
the index of the attribute

setAttributeIndex

public void setAttributeIndex(java.lang.String attIndex)
Sets index of the attribute used.


getValueRange

public Range getValueRange()
Get the range containing the indicator values.

Returns:
the range containing the indicator values

valueIndicesTipText

public java.lang.String valueIndicesTipText()
Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

getValueIndices

public java.lang.String getValueIndices()
Get the indices of the indicator values.

Returns:
the indices of the indicator values

setValueIndices

public void setValueIndices(java.lang.String range)
Sets indices of the indicator values.

Parameters:
range - the string representation of the indicator value indices
See Also:
Range

setValueIndex

public void setValueIndex(int index)
Sets index of the indicator value.

Parameters:
index - the index of the indicator value

setValueIndicesArray

public void setValueIndicesArray(int[] indices)
Set which attributes are to be deleted (or kept if invert is true)

Throws:
InvalidArgumentException - if an invalid set of ranges is supplied

numericTipText

public java.lang.String numericTipText()
Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

setNumeric

public void setNumeric(boolean bool)
Sets if the new Attribute is to be numeric.

Parameters:
bool - true if new Attribute is to be numeric

getNumeric

public boolean getNumeric()
Check if new attribute is to be numeric.

Returns:
true if new attribute is to be numeric

setOutputFormat

private void setOutputFormat()
Set the output format.


main

public static void main(java.lang.String[] argv)
Main method for testing this class.

Parameters:
argv - should contain arguments to the filter: use -h for help