0
$\begingroup$

I used a feature extraction code, where two of the features are unknown to me. They work well for my model but I don't know the formal names for them.

The first one has the following python implementation:

def LOG(y):
    n = len(y)
    return np.exp(np.sum(np.log(np.abs(y)))/n)

I didn't find any feature by LOG.

The other one was taken from tsfresh library,

https://github.com/blue-yonder/tsfresh/blob/master/tsfresh/feature_extraction/feature_calculators.py?fbclid=IwAR0Qnh3X1t_2M9Y1bniEcMoyUUIiYwCS80Vj1D7_B5-hDHBBSyCiDKLOg4Q#L1480

def c3(x, lag):
    """
    This function calculates the value of
    .. math::
        \\frac{1}{n-2lag} \\sum_{i=1}^{n-2lag} x_{i + 2 \\cdot lag} \\cdot x_{i + lag} \\cdot x_{i}
    which is
    .. math::
        \\mathbb{E}[L^2(X) \\cdot L(X) \\cdot X]
    where :math:`\\mathbb{E}` is the mean and :math:`L` is the lag operator. It was proposed in [1] as a measure of
    non linearity in the time series.
    .. rubric:: References
    |  [1] Schreiber, T. and Schmitz, A. (1997).
    |  Discrimination power of measures for nonlinearity in a time series
    |  PHYSICAL REVIEW E, VOLUME 55, NUMBER 5
    :param x: the time series to calculate the feature of
    :type x: numpy.ndarray
    :param lag: the lag that should be used in the calculation of the feature
    :type lag: int
    :return: the value of this feature
    :return type: float
    """
    if not isinstance(x, (np.ndarray, pd.Series)):
        x = np.asarray(x)
    n = x.size
    if 2 * lag >= n:
        return 0
    else:
        return np.mean((_roll(x, 2 * -lag) * _roll(x, -lag) * x)[0:(n - 2 * lag)])

It says C3, but in the paper, I didn't find any details about the feature (there were some t^(c3) mentioned in the paper, but I'm not sure, in one of the lines it says it's called third-order cumulant, but I couldn't confirm)

Can anyone tell me what are the common (more general) names of these two features?

$\endgroup$
0
$\begingroup$

LOG is the geometric mean of $|y|$: $$ \left(\prod_{i=1}^n |y_i|\right)^{\frac{1}{n}} = \exp\left(\frac{1}{n}\sum_{i=1}^n \log|y_i| \right) $$ This builds in a strong assumption that $y_i \neq 0\forall i$ because $\log(0)$ is not a real number.

| cite | improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.