elephant.spade.pattern_set_reduction¶
- elephant.spade.pattern_set_reduction(concepts, ns_signatures, winlen, spectrum, h_subset_filtering=0, k_superset_filtering=0, l_covered_spikes=0, min_spikes=2, min_occ=2)[source]¶
Takes a list concepts and performs pattern set reduction (PSR).
PSR determines which patterns in concepts_psf are statistically significant given any other pattern, on the basis of the pattern size and occurrence count (“support”). Only significant patterns are retained. The significance of a pattern A is evaluated through its signature \((z_a, c_A)\), where \(z_A = |A|\) is the size and \(c_A\) - the support of A, by either of:
subset filtering: any pattern B is discarded if concepts contains a superset A of B such that \((z_B, c_B - c_A + h) \in \text{ns}_{\text{signatures}}\)
superset filtering: any pattern A is discarded if concepts contains a subset B of A such that \((z_A - z_B + k, c_A) \in \text{ns}_{\text{signatures}}\)
covered-spikes criterion: for any two patterns A, B with \(A \subset B\), B is discarded if \((z_B-l) \cdot c_B \le c_A \cdot (z_A - l)\), A is discarded otherwise;
combined filtering: combines the three procedures above: takes a list concepts (see output psf function) and performs combined filtering based on the signature (z, c) of each pattern, where z is the pattern size and c the pattern support.
For any two patterns A and B in concepts_psf such that \(B \subset A\), check:
\((z_B, c_B - c_A + h) \in \text{ns}_{\text{signatures}}\), and
\((z_A - z_B + k, c_A) \in \text{ns}_{\text{signatures}}\).
Then:
if 1) and not 2): discard B
if 2) and not 1): discard A
- if 1) and 2): discard B if
\(c_B \cdot (z_B - l) \le c_A \cdot (z_A - l)\), otherwise discard A
if neither 1) nor 2): keep both patterns
Assumptions/Approximations:
a pair of concepts cannot cause one another to be rejected
if two concepts overlap more than min_occ times, one of them can account for all occurrences of the other one if it passes the filtering
- Parameters:
- conceptslist
List of concepts, each consisting in its intent and extent
- ns_signatureslist
A list of non-significant pattern signatures (z, c)
- winlenint
The size (number of bins) of the sliding window used for the analysis. The maximal length of a pattern (delay between first and last spike) is then given by winlen*bin_size.
- spectrum{‘#’, ‘3d#’}
Define the signature of the patterns.
- ‘#’: pattern spectrum using the as signature the pair:
(number of spikes, number of occurrences)
- ‘3d#’: pattern spectrum using the as signature the triplets:
(number of spikes, number of occurrence, difference between last and first spike of the pattern)
- h_subset_filteringint, optional
Correction parameter for subset filtering Default: 0
- k_superset_filteringint, optional
Correction parameter for superset filtering Default: 0
- l_covered_spikesint, optional
Correction parameter for covered-spikes criterion Default: 0
- min_spikesint, optional
Minimum pattern size Default: 2
- min_occint, optional
Minimum number of pattern occurrences Default: 2
- Returns:
- tuple
A tuple containing the elements of the input argument that are significant according to combined filtering.