Skip to content

Data Density Transform

The data density transform computes the ratio of valid values in a sliding window to the total number of values in the window. See NValidTransform for more details on how valid values are computed. It can be coupled with the SlidingWindow abstraction to compute the data density feature of a time series. It can be defined as:

\[ \text{density} = \frac{N_{valid}}{N_{total}} \]

where \(N_{valid}\) is the number of valid values in a window \(W\) and \(N_{total}\) is the total number of values in \(W\).

Bases: Transform

Compute the data density of a signal window x.

__call__(signal_window, where=lambda : not np.isnan(x))

Compute the data density of the array x.

Parameters:

Name Type Description Default
signal_window ndarray

The signal window to find the data density of.

required
where Callable[[Union[int, float, int_, float_]], Union[bool, bool_]]

A function that takes a value and returns True or False. Default is lambda x: not np.isnan(x) i.e. a measurement is valid if it is not a NaN value.

lambda : not numpy.isnan(x)

Returns:

Type Description
Union[float_, int_]

A scalar value representing the data density of x.

Examples

import numpy as np
import autonfeat as aft

# Random data
n_samples = 100
x = np.random.rand(n_samples)

# Create sliding window
ws = 10
ss = 10
window = aft.SlidingWindow(window_size=ws, step_size=ss)

# Create transform
tf = aft.DataDensityTransform()

# Get featurizer
featurizer = window.use(tf)

# Get features
features = featurizer(x)

# Print features
print(window)
print(tf)
print(features)

If you enjoy using AutonFeat, please consider starring the repository ⭐️.