Recursive Maxima Hunting#

The recursive maxima hunting method is described in RecursiveMaximaHunting.

This method has several parts that can be customized and are described here.

Correction#

Recursive Maxima Hunting is an iterative variable selection method that modifies the data functions in each iteration subtracting the information of the selected points, in order to uncover points that become relevant once other points are selected. Thus, the correction applied depends on how we define the information of the selected points. This can be customized using the correction parameter, passing a object with one of the following interfaces:

skfda.preprocessing.dim_reduction.variable_selection.recursive_maxima_hunting.Correction()

Base class for corrections.

skfda.preprocessing.dim_reduction.variable_selection.recursive_maxima_hunting.ConditionalMeanCorrection()

Base class for applying a correction based on the conditional expectation.

Currently the available objects are:

skfda.preprocessing.dim_reduction.variable_selection.recursive_maxima_hunting.UniformCorrection()

Correction for uniform process.

skfda.preprocessing.dim_reduction.variable_selection.recursive_maxima_hunting.GaussianCorrection(*)

Correction assuming that the underlying process is Gaussian.

skfda.preprocessing.dim_reduction.variable_selection.recursive_maxima_hunting.GaussianConditionedCorrection(...)

Correction for a conditioned Gaussian process.

skfda.preprocessing.dim_reduction.variable_selection.recursive_maxima_hunting.GaussianSampleCorrection([...])

Gaussian correction with sample covariance.

Redundancy#

Although redundant points should be eliminated by the correction, numerical errors and inappropriate corrections may cause redundant points to become maxima. Thus, redundant points are explicitly masked to exclude them for future considerations.

Currently there is only one way to detect if a point is redundant:

skfda.preprocessing.dim_reduction.variable_selection.recursive_maxima_hunting.DependenceThresholdRedundancy([...])

The points are redundant if their dependency is above a given threshold.

Stopping criterion#

In order for the algorithm to stop, the remaining points should not be relevant enough. There are several ways to check this condition:

skfda.preprocessing.dim_reduction.variable_selection.recursive_maxima_hunting.ScoreThresholdStop([...])

Stop when the score is under a threshold.

skfda.preprocessing.dim_reduction.variable_selection.recursive_maxima_hunting.AsymptoticIndependenceTestStop([...])

Stop when the selected point is independent from the target.