KalmanFilterTransformerFP
Kalman Filter is used for denoising or inferring the hidden state of given data.
Quickstart
from sktime.transformations.kalman_filter import KalmanFilterTransformerFP
estimator = KalmanFilterTransformerFP(state_dim, state_transition=None, control_transition=None, process_noise=None, measurement_noise=None, measurement_function=None, initial_state=None, initial_state_covariance=None, estimate_matrices=None, denoising=False)Parameters(10)
- state_dimint
- System state feature dimension.
- state_transitionnp.ndarray, optional (default=None)
of shape (state_dim, state_dim) or (time_steps, state_dim, state_dim). State transition matrix, also referred to as
F, is a matrix which describes the way the underlying series moves through successive time periods.- process_noisenp.ndarray, optional (default=None)
of shape (state_dim, state_dim) or (time_steps, state_dim, state_dim). Process noise matrix, also referred to as
Q, the uncertainty of the dynamic model.- measurement_noisenp.ndarray, optional (default=None)
of shape (measurement_dim, measurement_dim) or (time_steps, measurement_dim, measurement_dim). Measurement noise matrix, also referred to as
R, represents the uncertainty of the measurements.- measurement_functionnp.ndarray, optional (default=None)
of shape (measurement_dim, state_dim) or (time_steps, measurement_dim, state_dim). Measurement equation matrix, also referred to as
H, adjusts dimensions of measurements to match dimensions of state.- initial_statenp.ndarray, optional (default=None)
of shape (state_dim,). Initial estimated system state, also referred to as
X0.- initial_state_covariancenp.ndarray, optional (default=None)
of shape (state_dim, state_dim). Initial estimated system state covariance, also referred to as
P0.- control_transitionnp.ndarray, optional (default=None)
of shape (state_dim, control_variable_dim) or (time_steps, state_dim, control_variable_dim). Control transition matrix, also referred to as
G.control_variable_dimis the dimension ofcontrol variable, also referred to asu.control variableis an optional parameter forfitandtransformfunctions.- denoisingbool, optional (default=False).
This parameter affects
transform. If False, thentransformwill be inferring hidden state. If True, usesFilterPyrts_smootherfor denoising.- estimate_matricesstr or list of str, optional (default=None).
Subset of [
Note -state_transition,measurement_function,process_noise,measurement_noise,initial_state,initial_state_covariance] or -all. Ifestimate_matricesis an iterable of strings, only matrices inestimate_matriceswill be estimated using EM algorithm. Ifestimate_matricesisall, then all matrices will be estimated using EM algorithm.parameters estimated by EM algorithm assumed to be constant.
control_transitionmatrix cannot be estimated.
References
- [1 ] Greg Welch and Gary Bishop, “An Introduction to the Kalman Filter”, 2006 https://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf [2 ] R.H.Shumway and D.S.Stoffer “An Approach to time Series Smoothing and Forecasting Using the EM Algorithm”, 1982 https://www.stat.pitt.edu/stoffer/dss_files/em.pdf >>> import numpy as np >>> import sktime.transformations.kalman_filter as kf >>> time_steps, state_dim, measurement_dim = 10, 2, 3 >>> >>> X = np. random. rand (time_steps, measurement_dim) * 10 >>> transformer = kf. KalmanFilterTransformerFP (state_dim = state_dim) >>> Xt = transformer. fit_transform (X = X) Example of - denoising, matrix estimation, missing values and transform with y: >>> import numpy as np >>> import sktime.transformations.kalman_filter as kf >>> time_steps, state_dim, measurement_dim = 10, 3, 3 >>> control_variable_dim = 2 >>> >>> X = np. random. rand (time_steps, measurement_dim) >>> # missing value >>> X [0 ][0 ] = np. nan >>> >>> # y >>> control_variable = np. random. rand (time_steps, control_variable_dim) >>> >>> # If matrices estimation is required, elements of ``estimate_matrices`` >>> # are assumed to be constants. >>> transformer = kf. KalmanFilterTransformerFP (... state_dim = state_dim,... measurement_noise = np. eye (measurement_dim),... denoising = True,... estimate_matrices = 'measurement_noise'...) >>> Xt = transformer. fit_transform (X = X, y = control_variable) Example of - dynamic inputs (matrix per time-step), missing values: >>> import numpy as np >>> import sktime.transformations.kalman_filter as kf >>> time_steps, state_dim, measurement_dim = 10, 4, 4 >>> control_variable_dim = 4 >>> >>> X = np. random. rand (time_steps, measurement_dim) >>> # missing values >>> X [0 ] = [np. nan for i in range (measurement_dim)] >>> >>> # y >>> control_variable = np. random. rand (control_variable_dim) >>> >>> # Dynamic input - >>> # ``state_transition`` provide different matrix for each time step. >>> transformer = kf. KalmanFilterTransformerFP (... state_dim = state_dim,... state_transition = np. random. rand (time_steps, state_dim, state_dim),... estimate_matrices = ['initial_state', 'initial_state_covariance' ]...) >>> Xt = transformer. fit_transform (X = X, y = control_variable)