|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object weka.filters.Filter weka.filters.supervised.attribute.Discretize
An instance filter that discretizes a range of numeric attributes in the dataset into nominal attributes. Discretization is by Fayyad & Irani's MDL method (the default).
Valid filter-specific options are:
-R col1,col2-col4,...
Specifies list of columns to Discretize. First
and last are valid indexes. (default: none)
-V
Invert matching sense.
-D
Make binary nominal attributes.
-E
Use better encoding of split point for MDL.
-K
Use Kononeko's MDL criterion.
Field Summary | |
protected double[][] |
m_CutPoints
Store the current cutpoints |
protected Range |
m_DiscretizeCols
Stores which columns to Discretize |
protected boolean |
m_MakeBinary
Output binary attributes for discretized attributes. |
protected boolean |
m_UseBetterEncoding
Use better encoding of split point for MDL. |
protected boolean |
m_UseKononenko
Use Kononenko's MDL criterion instead of Fayyad et al.' |
Fields inherited from class weka.filters.Filter |
m_NewBatch |
Constructor Summary | |
Discretize()
Constructor - initialises the filter |
Method Summary | |
java.lang.String |
attributeIndicesTipText()
Returns the tip text for this property |
boolean |
batchFinished()
Signifies that this batch of input to the filter is finished. |
protected void |
calculateCutPoints()
Generate the cutpoints for each attribute |
protected void |
calculateCutPointsByMDL(int index,
Instances data)
Set cutpoints for a single attribute using MDL. |
protected void |
convertInstance(Instance instance)
Convert a single instance over. |
private double[] |
cutPointsForSubset(Instances instances,
int attIndex,
int first,
int lastPlusOne)
Selects cutpoints for sorted subset. |
private boolean |
FayyadAndIranisMDL(double[] priorCounts,
double[][] bestCounts,
double numInstances,
int numCutPoints)
Test using Fayyad and Irani's MDL criterion. |
java.lang.String |
getAttributeIndices()
Gets the current range selection |
double[] |
getCutPoints(int attributeIndex)
Gets the cut points for an attribute |
boolean |
getInvertSelection()
Gets whether the supplied columns are to be removed or kept |
boolean |
getMakeBinary()
Gets whether binary attributes should be made for discretized ones. |
java.lang.String[] |
getOptions()
Gets the current settings of the filter. |
boolean |
getUseBetterEncoding()
Gets whether better encoding is to be used for MDL. |
boolean |
getUseKononenko()
Gets whether Kononenko's MDL criterion is to be used. |
java.lang.String |
globalInfo()
Returns a string describing this filter |
boolean |
input(Instance instance)
Input an instance for filtering. |
java.lang.String |
invertSelectionTipText()
Returns the tip text for this property |
private boolean |
KononenkosMDL(double[] priorCounts,
double[][] bestCounts,
double numInstances,
int numCutPoints)
Test using Kononenko's MDL criterion. |
java.util.Enumeration |
listOptions()
Gets an enumeration describing the available options. |
static void |
main(java.lang.String[] argv)
Main method for testing this class. |
java.lang.String |
makeBinaryTipText()
Returns the tip text for this property |
void |
setAttributeIndices(java.lang.String rangeList)
Sets which attributes are to be Discretized (only numeric attributes among the selection will be Discretized). |
void |
setAttributeIndicesArray(int[] attributes)
Sets which attributes are to be Discretized (only numeric attributes among the selection will be Discretized). |
boolean |
setInputFormat(Instances instanceInfo)
Sets the format of the input instances. |
void |
setInvertSelection(boolean invert)
Sets whether selected columns should be removed or kept. |
void |
setMakeBinary(boolean makeBinary)
Sets whether binary attributes should be made for discretized ones. |
void |
setOptions(java.lang.String[] options)
Parses the options for this object. |
protected void |
setOutputFormat()
Set the output format. |
void |
setUseBetterEncoding(boolean useBetterEncoding)
Sets whether better encoding is to be used for MDL. |
void |
setUseKononenko(boolean useKon)
Sets whether Kononenko's MDL criterion is to be used. |
java.lang.String |
useBetterEncodingTipText()
Returns the tip text for this property |
java.lang.String |
useKononenkoTipText()
Returns the tip text for this property |
Methods inherited from class weka.filters.Filter |
batchFilterFile, 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 |
protected Range m_DiscretizeCols
protected double[][] m_CutPoints
protected boolean m_MakeBinary
protected boolean m_UseBetterEncoding
protected boolean m_UseKononenko
Constructor Detail |
public Discretize()
Method Detail |
public java.util.Enumeration listOptions()
listOptions
in interface OptionHandler
public void setOptions(java.lang.String[] options) throws java.lang.Exception
-R col1,col2-col4,...
Specifies list of columns to Discretize. First
and last are valid indexes. (default none)
-V
Invert matching sense.
-D
Make binary nominal attributes.
-E
Use better encoding of split point for MDL.
-K
Use Kononeko's MDL criterion.
setOptions
in interface OptionHandler
options
- the list of options as an array of strings
java.lang.Exception
- if an option is not supportedpublic java.lang.String[] getOptions()
getOptions
in interface OptionHandler
public boolean setInputFormat(Instances instanceInfo) throws java.lang.Exception
setInputFormat
in class Filter
instanceInfo
- an Instances object containing the input instance
structure (any instances contained in the object are ignored - only the
structure is required).
java.lang.Exception
- if the input format can't be set successfullypublic boolean input(Instance instance)
input
in class Filter
instance
- the input instance
java.lang.IllegalStateException
- if no input format has been defined.public boolean batchFinished()
batchFinished
in class Filter
java.lang.IllegalStateException
- if no input structure has been definedpublic java.lang.String globalInfo()
public java.lang.String makeBinaryTipText()
public boolean getMakeBinary()
public void setMakeBinary(boolean makeBinary)
makeBinary
- if binary attributes are to be madepublic java.lang.String useKononenkoTipText()
public boolean getUseKononenko()
public void setUseKononenko(boolean useKon)
useKon
- true if Kononenko's one is to be usedpublic java.lang.String useBetterEncodingTipText()
public boolean getUseBetterEncoding()
public void setUseBetterEncoding(boolean useBetterEncoding)
useBetterEncoding
- true if better encoding to be used.public java.lang.String invertSelectionTipText()
public boolean getInvertSelection()
public void setInvertSelection(boolean invert)
invert
- the new invert settingpublic java.lang.String attributeIndicesTipText()
public java.lang.String getAttributeIndices()
public void setAttributeIndices(java.lang.String rangeList)
rangeList
- a string representing the list of attributes. Since
the string will typically come from a user, attributes are indexed from
1. java.lang.IllegalArgumentException
- if an invalid range list is suppliedpublic void setAttributeIndicesArray(int[] attributes)
attributes
- an array containing indexes of attributes to Discretize.
Since the array will typically come from a program, attributes are indexed
from 0.
java.lang.IllegalArgumentException
- if an invalid set of ranges
is suppliedpublic double[] getCutPoints(int attributeIndex)
protected void calculateCutPoints()
protected void calculateCutPointsByMDL(int index, Instances data)
index
- the index of the attribute to set cutpoints forprivate boolean KononenkosMDL(double[] priorCounts, double[][] bestCounts, double numInstances, int numCutPoints)
private boolean FayyadAndIranisMDL(double[] priorCounts, double[][] bestCounts, double numInstances, int numCutPoints)
private double[] cutPointsForSubset(Instances instances, int attIndex, int first, int lastPlusOne)
protected void setOutputFormat()
protected void convertInstance(Instance instance)
instance
- the instance to convertpublic static void main(java.lang.String[] argv)
argv
- should contain arguments to the filter: use -h for help
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |