com.rapidminer.operator.learner.associations.fpgrowth
Class FPGrowth

java.lang.Object
  extended by com.rapidminer.operator.Operator
      extended by com.rapidminer.operator.learner.associations.fpgrowth.FPGrowth
All Implemented Interfaces:
ConfigurationListener, PreviewListener, ParameterHandler, LoggingHandler

public class FPGrowth
extends Operator

This operator calculates all frequent items sets from a data set by building a FPTree data structure on the transaction data base. This is a very compressed copy of the data which in many cases fits into main memory even for large data bases. From this FPTree all frequent item set are derived. A major advantage of FPGrowth compared to Apriori is that it uses only 2 data scans and is therefore often applicable even on large data sets.

Please note that the given data set is only allowed to contain binominal attributes, i.e. nominal attributes with only two different values. Simply use the provided preprocessing operators in order to transform your data set. The necessary operators are the discretization operators for changing the value types of numerical attributes to nominal and the operator Nominal2Binominal for transforming nominal attributes into binominal / binary ones.

The frequent item sets are mined for the positive entries in your data base, i.e. for those nominal values which are defined as positive in your data base. If you use an attribute description file (.aml) for the ExampleSource operator this corresponds to the second value which is defined via the classes attribute or inner value tags.

If your data does not specify the positive entries correctly, you may set them using the parameter positive_value. This only works if all your attributes contain this value!

This operator has two basic working modes: finding at least the specified number of item sets with highest support without taking the min_support into account (default) or finding all item sets with a support large than min_support.

Author:
Sebastian Land, Ingo Mierswa

Field Summary
static java.lang.String PARAMETER_FIND_MIN_NUMBER_OF_ITEMSETS
          Indicates if this operator should try to find a minimum number of item sets by iteratively decreasing the minimum support.
static java.lang.String PARAMETER_MAX_ITEMS
          The parameter name the maximum number of items.
static java.lang.String PARAMETER_MIN_NUMBER_OF_ITEMSETS
          Indicates the minimum number of item sets by iteratively decreasing the minimum support.
static java.lang.String PARAMETER_MIN_SUPPORT
          The parameter name for "Minimal Support"
static java.lang.String PARAMETER_POSITIVE_VALUE
           
 
Constructor Summary
FPGrowth(OperatorDescription description)
           
 
Method Summary
 IOObject[] apply()
          Implement this method in subclasses.
 java.lang.Class<?>[] getInputClasses()
          Returns the classes that are needed as input.
 java.lang.Class<?>[] getOutputClasses()
          Returns the classes that are guaranteed to be returned by apply() as additional output.
 java.util.List<ParameterType> getParameterTypes()
          Returns a list of ParameterTypes describing the parameters of this operator.
 
Methods inherited from class com.rapidminer.operator.Operator
addError, addValue, addWarning, apply, checkDeprecations, checkForStop, checkIO, checkProperties, clearErrorList, cloneOperator, createExperimentTree, createExperimentTree, createFromXML, createMarkedExperimentTree, createMarkedProcessTree, createProcessTree, createProcessTree, getAddOnlyAdditionalOutput, getApplyCount, getDeliveredOutputClasses, getDeprecationInfo, getDesiredInputClasses, getEncoding, getErrorList, getExperiment, getInnerOperatorsXML, getInput, getInput, getInput, getInputDescription, getIOContainerForInApplyLoopBreakpoint, getIODescription, getLog, getName, getOperatorClassName, getOperatorDescription, getParameter, getParameterAsBoolean, getParameterAsColor, getParameterAsDouble, getParameterAsFile, getParameterAsFile, getParameterAsInputStream, getParameterAsInt, getParameterAsMatrix, getParameterAsString, getParameterList, getParameters, getParameterType, getParent, getProcess, getStartTime, getStatus, getUserDescription, getValue, getValues, getXML, hasBreakpoint, hasBreakpoint, hasInput, inApplyLoop, isDebugMode, isEnabled, isExpanded, isParallel, isParameterSet, log, logError, logNote, logWarning, performAdditionalChecks, processFinished, processStarts, register, registerOperator, remove, rename, resume, setApplyCount, setBreakpoint, setEnabled, setExpanded, setInput, setListParameter, setOperatorParameters, setParameter, setParameters, setParent, setUserDescription, toString, unregisterOperator, writeXML
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

PARAMETER_FIND_MIN_NUMBER_OF_ITEMSETS

public static final java.lang.String PARAMETER_FIND_MIN_NUMBER_OF_ITEMSETS
Indicates if this operator should try to find a minimum number of item sets by iteratively decreasing the minimum support.

See Also:
Constant Field Values

PARAMETER_MIN_NUMBER_OF_ITEMSETS

public static final java.lang.String PARAMETER_MIN_NUMBER_OF_ITEMSETS
Indicates the minimum number of item sets by iteratively decreasing the minimum support.

See Also:
Constant Field Values

PARAMETER_POSITIVE_VALUE

public static final java.lang.String PARAMETER_POSITIVE_VALUE
See Also:
Constant Field Values

PARAMETER_MIN_SUPPORT

public static final java.lang.String PARAMETER_MIN_SUPPORT
The parameter name for "Minimal Support"

See Also:
Constant Field Values

PARAMETER_MAX_ITEMS

public static final java.lang.String PARAMETER_MAX_ITEMS
The parameter name the maximum number of items.

See Also:
Constant Field Values
Constructor Detail

FPGrowth

public FPGrowth(OperatorDescription description)
Method Detail

apply

public IOObject[] apply()
                 throws OperatorException
Description copied from class: Operator
Implement this method in subclasses.

Specified by:
apply in class Operator
Throws:
OperatorException

getInputClasses

public java.lang.Class<?>[] getInputClasses()
Description copied from class: Operator
Returns the classes that are needed as input. May be null or an empty (no desired input). As default, all delivered input objects are consumed and must be also delivered as output in both Operator.getOutputClasses() and Operator.apply() if this is necessary. This default behavior can be changed by overriding Operator.getInputDescription(Class). Subclasses which implement this method should not make use of parameters since this method is invoked by getParameterTypes(). Therefore, parameters are not fully available at this point of time and this might lead to exceptions. Please use InputDescriptions instead.

Specified by:
getInputClasses in class Operator

getOutputClasses

public java.lang.Class<?>[] getOutputClasses()
Description copied from class: Operator

Returns the classes that are guaranteed to be returned by apply() as additional output. Please note that input objects which should not be consumed must also be defined by this method (e.g. an example set which is changed but not consumed in the case of a preprocessing operator must be defined in both, the methods Operator.getInputClasses() and Operator.getOutputClasses()). The default behavior for input consumation is defined by Operator.getInputDescription(Class) and can be changed by overwriting this method. Objects which are not consumed (defined by changing the implementation in Operator.getInputDescription(Class)) must not be defined as additional output in this method.

May deliver null or an empy array (no additional output is produced or guaranteed). Must return the class array of delivered output objects otherwise.

Specified by:
getOutputClasses in class Operator

getParameterTypes

public java.util.List<ParameterType> getParameterTypes()
Description copied from class: Operator
Returns a list of ParameterTypes describing the parameters of this operator. The default implementation returns an empty list if no input objects can be retained and special parameters for those input objects which can be prevented from being consumed.

Specified by:
getParameterTypes in interface ParameterHandler
Overrides:
getParameterTypes in class Operator


Copyright © 2001-2009 by Rapid-I