KinematicFeatures
KinematicFeatures
- class KinematicFeatures(features=None)[source]
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
KalmanFilterTransformerPKorKalmanFilterTransformerFP(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.
- Parameters:
- 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
- Attributes:
is_fittedWhether
fithas been called.
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)
Methods
check_is_fitted([method_name])Check if the estimator has been fitted.
clone()Obtain a clone of the object with same hyper-parameters and config.
clone_tags(estimator[, tag_names])Clone tags from another object as dynamic override.
create_test_instance([parameter_set])Construct an instance of the class, using first test parameter set.
create_test_instances_and_names([parameter_set])Create list of all test instances and a list of names for them.
fit(X[, y])Fit transformer to X, optionally to y.
fit_transform(X[, y])Fit to data, then transform it.
get_class_tag(tag_name[, tag_value_default])Get class tag value from class, with tag level inheritance from parents.
get_class_tags()Get class tags from class, with tag level inheritance from parent classes.
get_config()Get config flags for self.
get_fitted_params([deep])Get fitted parameters.
get_param_defaults()Get object's parameter defaults.
get_param_names([sort])Get object's parameter names.
get_params([deep])Get a dict of parameters values for this object.
get_tag(tag_name[, tag_value_default, ...])Get tag value from instance, with tag level inheritance and overrides.
get_tags()Get tags from instance, with tag level inheritance and overrides.
get_test_params([parameter_set])Return testing parameter settings for the estimator.
inverse_transform(X[, y])Inverse transform X and return an inverse transformed version.
is_composite()Check if the object is composed of other BaseObjects.
load_from_path(serial)Load object from file location.
load_from_serial(serial)Load object from serialized memory container.
reset()Reset the object to a clean post-init state.
save([path, serialization_format])Save serialized self to bytes-like object or to (.zip) file.
set_config(**config_dict)Set config flags to given values.
set_params(**params)Set the parameters of this object.
set_random_state([random_state, deep, ...])Set random_state pseudo-random seed parameters for self.
set_tags(**tag_dict)Set instance level tag overrides to given values.
transform(X[, y])Transform X and return a transformed version.
update(X[, y, update_params])Update transformer with X, optionally y.

