Extreme Seeking Entropy (ESE)

New in version 1.2.0.

The Extreme Seeking Entropy (ESE) introduced in https://doi.org/10.3390/e22010093 is based on the evaluation of a change of adaptive model parameters. This function requires SciPy.

Content of this page:

Algorithm Explanation

The ESE can describe every sample with a value, that is proportional impropability value of adaptive increments. The probability of value of adaptive increment that is higher than some threshold value is estimated from Generalized Pareto distribution. Value of ESE.

Usage Instructions

The ESE algorithm can be used as follows

ese = pa.detection.ELBND(w, window=1000)

where w is matrix of the adaptive parameters (changing in time, every row should represent one time index) and window is a size of the window used for distribution estimation. The length of the provided data w has to greter than ‘window’. The first window number of samples cannot be evaluated with ESE.

Minimal Working Example

In this example is demonstrated how can the LE highligh the position of a perturbation inserted in a data. As the adaptive model is used Normalized Least-mean-square (NLMS) adaptive filter. The perturbation is manually inserted in sample with index \(k=1000\) (the length of data is 2000).

import numpy as np
import matplotlib.pylab as plt
import padasip as pa

# data creation
n = 5
N = 5000
x = np.random.normal(0, 1, (N, n))
d = np.sum(x, axis=1) + np.random.normal(0, 0.1, N)

# fake perturbation insertion
d[2500] += 2.

# creation of learning model (adaptive filter)
f = pa.filters.FilterNLMS(n, mu=1., w=np.ones(n))
y, e, w = f.run(d, x)

# estimation of ESE with weights from learning model
ese = pa.detection.ESE(w)

# ese plot
plt.plot(ese)
plt.show()

Code Explanation

padasip.detection.ese.ESE(w, window=1000, pot_method='10%')[source]

This function estimates Extreme Seeking Entropy measure from given data.

Args:

  • w : history of adaptive parameters of an adaptive model (2d array), every row represents parameters in given time index.

Kwargs:

  • window : number of samples that are proceeded via P-O-T method

  • pot_method : identifier of P-O-T method (str): ‘sqrt’, ‘10%’, ‘30%’, ‘log10’, ‘log10log10’

Returns:

  • values of Extreme Seeking Entropy (1d array). This vector has same lenght as w.

padasip.detection.ese.pot(data, method)[source]

Peak-Over-Threshold method. :param data: input data (n samples) :param method: method identifier :return: k highest values