Back to models
Transformer

KinematicFeatures

Kinematic feature transformer - velocity, acceleration, curvature.

Takes a discrete N-dimensional space curve, N>=1, and computes a selection of kinematic features.

For noisy time series, is strongly recommended to pipeline this with KalmanFilterTransformerPK or KalmanFilterTransformerFP (prior), or other smoothing or trajectory fitting transformers, as this transformer does not carry out its own smoothing.

For min/max/quantiles of velocity etc, pipeline with SummaryTransformer (post).

For a time series input \(x(t)\), observed at discrete times, this transformer computes (when selected) discretized versions of:

  • "v" - vector of velocity: \(\vec{v}(t):= \Delta x(t)\)

  • "v_abs" - absolute velocity: \(v(t):= \left| \Delta x(t) \right|\)

  • "a" - vector of velocity: \(\vec{a}(t):= \Delta \Delta x(t)\)

  • "a_abs" - absolute velocity: \(a(t):= \left| \Delta \Delta x(t) \right|\)

  • "curv" - curvature: \(c(t):= \frac{\sqrt{v(t)^2 a(t)^2 - \left\langle \vec{v}(t), \vec{a}(t)\right\rangle^2}}{v(t)^3}\)

where \(\Delta\) denotes first finite differences, that is, \(\Delta z(t) = z(t) - z(t-1)\) for any discrete time series \(z(t)\).

Note: this estimator currently ignores non-equidistant location index, and considers only the integer location index.

Quickstart

python
from sktime.transformations.kinematic import KinematicFeatures

estimator = KinematicFeatures(features=None)

Tags

Capabilities

  • Multivariate
  • Unequal-length series
  • Inverse transform: Not supported
  • Missing values: Not supported
  • Removes missing values: Not supported
  • Equalizes series length: Not supported

Properties

Input typescitype:transform-input
Series
Output typescitype:transform-output
Series
Label typescitype:transform-labels
None
Fit is emptyfit_is_empty
Yes
Keeps the time indextransform-returns-same-time-index
No
Requires Xrequires_X
Yes
Requires yrequires_y
No
X and y need the same indexX-y-must-have-same-index
No

Parameters(1)

featuresstr or list of str, optional, default=[“v_abs”, “a_abs”, “c_abs”]

list of features to compute, possible features:

  • “v” - vector of velocity

  • “v_abs” - absolute velocity

  • “a” - vector of acceleration

  • “a_abs” - absolute acceleration

  • “curv” - curvature

Examples

>>> import numpy as np
>>> import pandas as pd
>>> from sktime.transformations.kinematic import KinematicFeatures
>>> traj3d = pd. DataFrame (columns = ["x", "y", "z" ])
>>> traj3d ["x" ] = pd. Series (np. sin (np. arange (200) / 100))
>>> traj3d ["y" ] = pd. Series (np. cos (np. arange (200) / 100))
>>> traj3d ["z" ] = pd. Series (np. arange (200) / 100)
>>> t = KinematicFeatures ()
>>> Xt = t. fit_transform (traj3d)