Skip to content

SFAFast

SFAFast

class SFAFast(word_length=8, alphabet_size=4, window_size=12, norm=False, binning_method='equi-depth', anova=False, variance=False, bigrams=False, skip_grams=False, remove_repeat_words=False, lower_bounding=True, save_words=False, feature_selection='none', max_feature_count=256, p_threshold=0.05, random_state=None, return_sparse=True, return_pandas_data_series=False, n_jobs=1)[source]

Symbolic Fourier Approximation (SFA) Transformer.

Overview: for each series: run a sliding window across the series; for each window, shorten the series with DFT; discretise the shortened series into bins set by MFC; form a word from these discrete values, by default SFA produces a single word per series (window_size=0); if a window is used, it forms a histogram of counts of words.

Parameters:
word_length: int, default = 8

length of word to shorten window to (using PAA)

alphabet_size: int, default = 4

number of values to discretise each value to

window_size: int, default = 12

size of window for sliding. Input series length for whole series transform

norm: boolean, default = False

mean normalise words by dropping first fourier coefficient

binning_method: {“equi-depth”, “equi-width”, “information-gain”, “kmeans”,

“quantile”}, default=”equi-depth”

the binning method used to derive the breakpoints.

anova: boolean, default = False

If True, the Fourier coefficient selection is done via a one-way ANOVA test. If False, the first Fourier coefficients are selected. Only applicable if labels are given

variance: boolean, default = False

If True, the Fourier coefficient selection is done via the largest variance. If False, the first Fourier coefficients are selected. Only applicable if labels are given

save_words: boolean, default = False

whether to save the words generated for each series (default False)

bigrams: boolean, default = False

whether to create bigrams of SFA words

feature_selection: {“chi2”, “none”, “random”}, default: chi2

Sets the feature selections strategy to be used. Chi2 reduces the number of words significantly and is thus much faster (preferred). Random also reduces the number significantly. None applies not feature selectiona and yields large bag of words, e.g. much memory may be needed.

p_threshold: int, default=0.05 (disabled by default)

If feature_selection=chi2 is chosen, feature selection is applied based on the chi-squared test. This is the p-value threshold to use for chi-squared test on bag-of-words (lower means more strict). 1 indicates that the test should not be performed.

max_feature_count: int, default=256

If feature_selection=random is chosen, this parameter defines the number of randomly chosen unique words used.

skip_grams: boolean, default = False

whether to create skip-grams of SFA words

remove_repeat_words: boolean, default = False

whether to use numerosity reduction (default False)

return_sparse: boolean, default=True

if set to true, a scipy sparse matrix will be returned as BOP model. If set to false a dense array will be returned as BOP model. Sparse arrays are much more compact.

n_jobs: int, optional, default = 1

The number of jobs to run in parallel for both transform. -1 means using all processors.

return_pandas_data_series: boolean, default = False

set to true to return Pandas Series as a result of transform. setting to true reduces speed significantly but is required for automatic test.

Attributes:
breakpoints: = []
num_insts = 0
num_atts = 0

References

[1]

Schäfer, Patrick, and Mikael Högqvist. “SFA: a symbolic fourier approximation

and index for similarity search in high dimensional datasets.” Proceedings of the 15th international conference on extending database technology. 2012.

Methods

check_is_fitted([method_name])

Check if the estimator has been fitted.

clone()

Obtain a clone of the object with same hyper-parameters and config.

clone_tags(estimator[, tag_names])

Clone tags from another object as dynamic override.

create_test_instance([parameter_set])

Construct an instance of the class, using first test parameter set.

create_test_instances_and_names([parameter_set])

Create list of all test instances and a list of names for them.

fit(X[, y])

Calculate word breakpoints using MCB or IGB.

fit_transform(X[, y])

Fit to data, then transform it.

get_class_tag(tag_name[, tag_value_default])

Get class tag value from class, with tag level inheritance from parents.

get_class_tags()

Get class tags from class, with tag level inheritance from parent classes.

get_config()

Get config flags for self.

get_fitted_params([deep])

Get fitted parameters.

get_param_defaults()

Get object's parameter defaults.

get_param_names([sort])

Get object's parameter names.

get_params([deep])

Get a dict of parameters values for this object.

get_tag(tag_name[, tag_value_default, ...])

Get tag value from instance, with tag level inheritance and overrides.

get_tags()

Get tags from instance, with tag level inheritance and overrides.

get_test_params([parameter_set])

Return testing parameter settings for the estimator.

inverse_transform(X[, y])

Inverse transform X and return an inverse transformed version.

is_composite()

Check if the object is composed of other BaseObjects.

load_from_path(serial)

Load object from file location.

load_from_serial(serial)

Load object from serialized memory container.

reset()

Reset the object to a clean post-init state.

save([path, serialization_format])

Save serialized self to bytes-like object or to (.zip) file.

set_config(**config_dict)

Set config flags to given values.

set_fitted()

Whether fit has been called.

set_params(**params)

Set the parameters of this object.

set_random_state([random_state, deep, ...])

Set random_state pseudo-random seed parameters for self.

set_tags(**tag_dict)

Set instance level tag overrides to given values.

transform(X[, y])

Transform data into SFA words.

transform_to_bag(words, word_len[, y])

Transform words to bag-of-pattern and apply feature selection.

update(X[, y, update_params])

Update transformer with X, optionally y.