All Packages Class Hierarchy This Package Previous Next Index WEKA's home
Class weka.filters.Filter
java.lang.Object
|
+----weka.filters.Filter
- public abstract class Filter
- extends Object
- implements Serializable
An abstract class for instance filters: objects that take instances
as input, carry out some transformation on the instance and then
output the instance. The method implementations in this class
assume that most of the work will be done in the methods overridden
by subclasses.
A simple example of filter use. This example doesn't remove
instances from the output queue until all instances have been
input, so has higher memory consumption than an approach that
uses output instances as they are made available:
Filter filter = ..some type of filter..
Instances instances = ..some instances..
for (int i = 0; i < data.numInstances(); i++) {
filter.input(data.instance(i));
}
filter.batchFinished();
Instances newData = filter.outputFormat();
Instance processed;
while ((processed = filter.output()) != null) {
newData.add(processed);
}
..do something with newData..
- Version:
- $Revision: 1.7 $
- Author:
- Len Trigg (trigg@cs.waikato.ac.nz)
-
Filter()
-
-
batchFilterFile(Filter, String[])
- Method for testing filters ability to process multiple batches.
-
batchFinished()
- Signify that this batch of input to the filter is finished.
-
filterFile(Filter, String[])
- Method for testing filters.
-
input(Instance)
- Input an instance for filtering.
-
inputFormat(Instances)
- Sets the format of the input instances.
-
isOutputFormatDefined()
- Returns whether the output format is ready to be collected
-
numPendingOutput()
- Returns the number of instances pending output
-
output()
- Output an instance after filtering and remove from the output queue.
-
outputFormat()
- Gets the format of the output instances.
-
outputPeek()
- Output an instance after filtering but do not remove from the
output queue.
-
useFilter(Instances, Filter)
- Filters an entire set of instances through a filter and returns
the new set.
Filter
public Filter()
inputFormat
public boolean inputFormat(Instances instanceInfo) throws Exception
- Sets the format of the input instances. If the filter is able to
determine the output format before seeing any input instances, it
does so here. This default implementation assumes the output
format is determined when batchFinished() is called.
- 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: Exception
- if the inputFormat can't be set successfully
outputFormat
public final Instances outputFormat() throws Exception
- Gets the format of the output instances. This should only be called
after input() or batchFinished() has returned true. The relation
name of the output instances should be changed to reflect the
action of the filter (eg: add the filter name and options).
- Returns:
- an Instances object containing the output instance
structure only.
- Throws: Exception
- if no input structure has been defined (or the
output format hasn't been determined yet)
input
public boolean input(Instance instance) throws Exception
- Input an instance for filtering. Ordinarily the instance is
processed and made available for output immediately. Some filters
require all instances be read before producing output, in which
case output instances should be collected after calling
batchFinished(). If the input marks the start of a new batch, the
output queue is cleared. This default implementation assumes all
instance conversion will occur when batchFinished() is called.
- Parameters:
- instance - the input instance
- Returns:
- true if the filtered instance may now be
collected with output().
- Throws: Exception
- if the input instance was not of the correct
format or if there was a problem with the filtering.
batchFinished
public boolean batchFinished() throws Exception
- Signify that this batch of input to the filter is finished. If
the filter requires all instances prior to filtering, output()
may now be called to retrieve the filtered instances. Any
subsequent instances filtered should be filtered based on setting
obtained from the first batch (unless the inputFormat has been
re-assigned or new options have been set). This default
implementation assumes all instance processing occurs during
inputFormat() and input().
- Returns:
- true if there are instances pending output
- Throws: Exception
- if no input structure has been defined
output
public Instance output() throws Exception
- Output an instance after filtering and remove from the output queue.
- Returns:
- the instance that has most recently been filtered (or null if
the queue is empty).
- Throws: Exception
- if no input structure has been defined
outputPeek
public Instance outputPeek() throws Exception
- Output an instance after filtering but do not remove from the
output queue.
- Returns:
- the instance that has most recently been filtered (or null if
the queue is empty).
- Throws: Exception
- if no input structure has been defined
numPendingOutput
public int numPendingOutput() throws Exception
- Returns the number of instances pending output
- Returns:
- the number of instances pending output
- Throws: Exception
- if no input structure has been defined
isOutputFormatDefined
public boolean isOutputFormatDefined()
- Returns whether the output format is ready to be collected
- Returns:
- true if the output format is set
useFilter
public static Instances useFilter(Instances data,
Filter filter) throws Exception
- Filters an entire set of instances through a filter and returns
the new set.
- Parameters:
- data - the data to be filtered
- filter - the filter to be used
- Returns:
- the filtered set of data
- Throws: Exception
- if the filter can't be used successfully
filterFile
public static void filterFile(Filter filter,
String options[]) throws Exception
- Method for testing filters.
- Parameters:
- argv - should contain the following arguments:
-i input_file
-o output_file
-c class_index
or -h for help on options
- Throws: Exception
- if something goes wrong or the user requests help on
command options
batchFilterFile
public static void batchFilterFile(Filter filter,
String options[]) throws Exception
- Method for testing filters ability to process multiple batches.
- Parameters:
- argv - should contain the following arguments:
-i (first) input file
-o (first) output file
-r (second) input file
-s (second) output file
-c class_index
or -h for help on options
- Throws: Exception
- if something goes wrong or the user requests help on
command options
All Packages Class Hierarchy This Package Previous Next Index WEKA's home