imputegap.recovery.imputation package

Submodules

Module contents

class imputegap.recovery.imputation.BaseImputer(incomp_data)[source]

Bases: object

Base class for imputation algorithms.

This class provides common methods for imputation tasks such as scoring, parameter checking, and optimization. Specific algorithms should inherit from this class and implement the impute method.

Methods

impute(params=None):

Abstract method to perform the imputation.

score(input_data, recov_data=None, downstream=None):

Compute metrics for the imputed time series.

_check_params(user_def, params):

Check and format parameters for imputation.

_optimize(parameters={}):

Optimize hyperparameters for the imputation algorithm.

__init__(incomp_data)[source]

Initialize the BaseImputer with an infected time series matrix.

Parameters

incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = ''
impute(params=None)[source]

Abstract method to perform the imputation. Must be implemented in subclasses.

Parameters

paramsdict, optional

Dictionary of algorithm parameters (default is None).

Raises

NotImplementedError

If the method is not implemented by a subclass.

logs = True
score(input_data, recov_data=None, downstream=None)[source]

Compute evaluation metrics for the imputed time series.

Parameters

input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class imputegap.recovery.imputation.Imputation[source]

Bases: object

A class containing static methods for evaluating and running imputation algorithms on time series data.

Methods

evaluate_params(input_data, incomp_data, configuration, algorithm=”cdrec”):

Evaluate imputation performance using given parameters and algorithm.

class DeepLearning[source]

Bases: object

A class containing imputation algorithms for deep learning-based methods.

Subclasses

MRNN : Imputation method using Multi-directional Recurrent Neural Networks (MRNN). BRITS :

Imputation method using Bidirectional Recurrent Imputation for Time Series.

DeepMVI :

Imputation method using Deep Multivariate Imputation.

MPIN :

Imputation method using Multi-attribute Sensor Data Streams via Message Propagation.

PRISTI :

Imputation method using A Conditional Diffusion Framework for Spatiotemporal Imputation.

MissNet :

Imputation method using Mining of Switching Sparse Networks for Missing Value Imputation.

GAIN :

Imputation method using Generative Adversarial Nets for missing data imputation.

GRIN :

Imputation method using Graph Neural Networks for Multivariate Time Series Imputation.

BayOTIDE :

Imputation method using Bayesian Online Multivariate Time Series Imputation with functional decomposition.

HKMF_T :

Imputation method using Hankel Matrix Factorization to recover from blackouts in tagged time series.

class BRITS(incomp_data)[source]

Bases: BaseImputer

BRITS class to impute missing values using Bidirectional Recurrent Imputation for Time Series

Methods
impute(self, user_def=True, params=None):

Perform imputation using the BRITS algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'brits'
impute(user_def=True, params=None)[source]

Perform imputation using the BRITS algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the BRITS algorithm, if None, default ones are loaded.

Algorithm parameters:

  • modelstr

    Specifies the type of model to use for the imputation. Options may include predefined models like ‘brits’, ‘brits-i’ or ‘brits_i_univ’.

  • epochint

    Number of epochs for training the model. Determines how many times the algorithm processes the entire dataset during training.

  • batch_sizeint

    Size of the batches used during training. Larger batch sizes can speed up training but may require more memory.

  • nbr_featuresint

    Number of features, dimension in the time series.

  • hidden_layerint

    Number of units in the hidden layer of the model. Controls the capacity of the neural network to learn complex patterns.

Returns
selfBRITS

The object with recov_data set.

Example
>>> brits_imputer = Imputation.DeepLearning.BRITS(incomp_data)
>>> brits_imputer.impute()  # default parameters for imputation > or
>>> brits_imputer.impute(params={"model": "brits", "epoch": 2, "batch_size": 10, "nbr_features": 1, "hidden_layer": 64})  # user-defined > or
>>> brits_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = brits_imputer.recov_data
References

Cao, W., Wang, D., Li, J., Zhou, H., Li, L. & Li, Y. BRITS: Bidirectional Recurrent Imputation for Time Series. Advances in Neural Information Processing Systems, 31 (2018). https://proceedings.neurips.cc/paper_files/paper/2018/file/734e6bfcd358e25ac1db0a4241b95651-Paper.pdf

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class BayOTIDE(incomp_data)[source]

Bases: BaseImputer

BayOTIDE class to impute missing values using Bayesian Online Multivariate Time series Imputation with functional decomposition

Methods
impute(self, user_def=True, params=None):

Perform imputation using the BayOTIDE

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'bay_otide'
impute(user_def=True, params=None)[source]

Perform imputation using the Multivariate Time Series Imputation by Deep Learning

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the BayOTIDE algorithm or Auto-ML configuration, if None, default ones are loaded.

Algorithm parameters:

K_trendint, (optional) (default: 20)

Number of trend factors.

K_seasonint, (optional) (default: 2)

Number of seasonal factors.

n_seasonint, (optional) (default: 5)

Number of seasonal components per factor.

K_biasint, (optional) (default: 1)

Number of bias factors.

time_scalefloat, (optional) (default: 1)

Time scaling factor.

a0float, (optional) (default: 0.6)

Hyperparameter for prior distribution.

b0float, (optional) (default: 2.5)

Hyperparameter for prior distribution.

vfloat, (optional) (default: 0.5)

Variance parameter.

configdict, (optional) (default: None)

Dictionary containing all configuration parameters, that will replace all other parameters (see documentation).

argsobject, (optional) (default: None)

Arguments containing all configuration parameters, that will replace all other parameters (see documentation).

Returns
selfBayOTIDE

BayOTIDE object with recov_data set.

Example
>>> bay_otide_imputer = Imputation.DeepLearning.BayOTIDE(incomp_data)
>>> bay_otide_imputer.impute()  # default parameters for imputation > or
>>> bay_otide_imputer.impute(user_def=True, params={"K_trend":20, "K_season":2, "n_season":5, "K_bias":1, "time_scale":1, "a0":0.6, "b0":2.5, "v":0.5})  # user defined> or
>>> bay_otide_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # auto-ml with ray_tune
>>> recov_data = bay_otide_imputer.recov_data
References

S. Fang, Q. Wen, Y. Luo, S. Zhe, and L. Sun, “BayOTIDE: Bayesian Online Multivariate Time Series Imputation with Functional Decomposition,” CoRR, vol. abs/2308.14906, 2024. [Online]. Available: https://arxiv.org/abs/2308.14906. https://github.com/xuangu-fang/BayOTIDE

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class DeepMVI(incomp_data)[source]

Bases: BaseImputer

DeepMVI class to impute missing values using Deep Multivariate Imputation

Methods
impute(self, user_def=True, params=None):

Perform imputation using the DeepMVI algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'deep_mvi'
impute(user_def=True, params=None)[source]

Perform imputation using the DeepMVI algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the BRITS algorithm, if None, default ones are loaded.

Algorithm parameters:

max_epochint, optional

Limit of training epoch (default is 1000)

patienceint, optional

Number of threshold error that can be crossed during the training (default is 2)

lrfloat, optional

Learning rate of the training (default is 0.001)

Returns
selfDeepMVI

The object with recov_data set.

Example
>>> deep_mvi_imputer = Imputation.DeepLearning.DeepMVI(incomp_data)
>>> deep_mvi_imputer.impute()  # default parameters for imputation > or
>>> deep_mvi_imputer.impute(params={"max_epoch": 10, "patience": 2})  # user-defined > or
>>> deep_mvi_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = deep_mvi_imputer.recov_data
References

P. Bansal, P. Deshpande, and S. Sarawagi. Missing value imputation on multidimensional time series. arXiv preprint arXiv:2103.01600, 2023 https://github.com/pbansal5/DeepMVI

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class GAIN(incomp_data)[source]

Bases: BaseImputer

GAIN class to impute missing values using Missing Data Imputation using Generative Adversarial Nets,

Methods
impute(self, user_def=True, params=None):

Perform imputation using the GAIN algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'gain'
impute(user_def=True, params=None)[source]

Perform imputation using the GAIN algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the GAIN algorithm or Auto-ML configuration, if None, default ones are loaded.

Algorithm parameters:

batch_sizeint, optional

Number of samples in each mini-batch during training. Default is 32.

hint_ratefloat, optional

Probability of providing hints for the missing data during training. Default is 0.9.

alphafloat, optional

Hyperparameter that controls the balance between the adversarial loss and the reconstruction loss. Default is 10.

epochint, optional

Number of training epochs. Default is 100.

logs : bool, optional

Returns
selfGAIN

GAIN object with recov_data set.

Example
>>> gain_imputer = Imputation.DeepLearning.GAIN(incomp_data)
>>> gain_imputer.impute()  # default parameters for imputation > or
>>> gain_imputer.impute(user_def=True, params={"batch_size":32, "hint_rate":0.9, "alpha":10, "epoch":100})  # user defined> or
>>> gain_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # auto-ml with ray_tune
>>> recov_data = gain_imputer.recov_data
References
  1. Yoon, J. Jordon, and M. van der Schaar, “GAIN: Missing Data Imputation using Generative Adversarial Nets,” CoRR, vol. abs/1806.02920, 2018. Available: http://arxiv.org/abs/1806.02920.

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class GRIN(incomp_data)[source]

Bases: BaseImputer

GRIN class to impute missing values using MULTIVARIATE TIME SERIES IMPUTATION BY GRAPH NEURAL NETWORKS.

Methods
impute(self, user_def=True, params=None):

Perform imputation using the GRIN

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'grin'
impute(user_def=True, params=None)[source]

Perform imputation using the Multivariate Time Series Imputation by Graph Neural Networks

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the GRIN algorithm or Auto-ML configuration, if None, default ones are loaded.

Algorithm parameters:

d_hiddenint, optional, default=32

The number of hidden units in the model’s recurrent and graph layers.

lrfloat, optional, default=0.001

Learning rate for the optimizer.

batch_sizeint, optional, default=32

The number of samples per training batch.

windowint, optional, default=10

The size of the time window used for modeling temporal dependencies.

alphafloat, optional, default=10.0

The weight assigned to the adversarial loss term during training.

patienceint, optional, default=4

Number of epochs without improvement before early stopping is triggered.

epochsint, optional, default=20

The maximum number of training epochs.

workersint, optional, default=2

The number of worker processes for data loading.

Returns
selfGRIN

GRIN object with recov_data set.

Example
>>> grin_imputer = Imputation.DeepLearning.GRIN(incomp_data)
>>> grin_imputer.impute()  # default parameters for imputation > or
>>> grin_imputer.impute(user_def=True, params={"d_hidden":32, "lr":0.001, "batch_size":32, "window":1, "alpha":10.0, "patience":4, "epochs":20, "workers":2})  # user defined> or
>>> grin_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # auto-ml with ray_tune
>>> recov_data = grin_imputer.recov_data
References

A. Cini, I. Marisca, and C. Alippi, “Multivariate Time Series Imputation by Graph Neural Networks,” CoRR, vol. abs/2108.00298, 2021 https://github.com/Graph-Machine-Learning-Group/grin

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class HKMF_T(incomp_data)[source]

Bases: BaseImputer

HKMF-T class to impute missing values using Recover From Blackouts in Tagged Time Series With Hankel Matrix Factorization

Methods
impute(self, user_def=True, params=None):

Perform imputation using the HKMF-T

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'hkmf_t'
impute(user_def=True, params=None)[source]

Perform imputation using Recover From Blackouts in Tagged Time Series With Hankel Matrix Factorization

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the BayOTIDE algorithm or Auto-ML configuration, if None, default ones are loaded.

Algorithm parameters:

tagsnumpy.ndarray, optional

An array containing tags that provide additional structure or metadata about the input data. If None, no tags are used (default is None).

data_nameslist of str, optional

List of names corresponding to each row or column of the dataset for interpretability. If None, names are not used (default is None).

epochint, optional

The maximum number of training epochs for the Hankel Matrix Factorization algorithm. If convergence is reached earlier, the process stops (default is 10).

Returns
selfHKMF-T

HKMF-T object with recov_data set.

Example
>>> hkmf_t_imputer = Imputation.DeepLearning.HKMF_T(incomp_data)
>>> hkmf_t_imputer.impute()  # default parameters for imputation > or
>>> hkmf_t_imputer.impute(user_def=True, params={"tags":None, "data_names":None, "epoch":5})  # user defined> or
>>> hkmf_t_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # auto-ml with ray_tune
>>> recov_data = hkmf_t_imputer.recov_data
References

L. Wang, S. Wu, T. Wu, X. Tao and J. Lu, “HKMF-T: Recover From Blackouts in Tagged Time Series With Hankel Matrix Factorization,” in IEEE Transactions on Knowledge and Data Engineering, vol. 33, no. 11, pp. 3582-3593, 1 Nov. 2021, doi: 10.1109/TKDE.2020.2971190. keywords: {Time series analysis;Matrix decomposition;Market research;Meteorology;Sparse matrices;Indexes;Software;Tagged time series;missing value imputation;blackouts;hankel matrix factorization} https://github.com/wangliang-cs/hkmf-t?tab=readme-ov-file

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class MPIN(incomp_data)[source]

Bases: BaseImputer

MPIN class to impute missing values using Multi-attribute Sensor Data Streams via Message Propagation algorithm.

Methods
impute(self, user_def=True, params=None):

Perform imputation using the MPIN algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'mpin'
impute(user_def=True, params=None)[source]

Perform imputation using the MPIN algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the BRITS algorithm, if None, default ones are loaded.

Algorithm parameters:

incre_modestr, optional

The mode of incremental learning. Options are: ‘alone’, ‘data’, ‘state’, ‘state+transfer’, ‘data+state’, ‘data+state+transfer’ (default is “alone”).

windowint, optional

The size of the sliding window for processing data streams (default is 2).

kint, optional

The number of neighbors to consider during message propagation (default is 10).

lrfloat, optional

The learning rate for optimizing the message propagation algorithm (default is 0.01).

weight_decayfloat, optional

The weight decay (regularization) term to prevent overfitting during training (default is 0.1).

epochsint, optional

The number of epochs to run the training process (default is 200).

num_of_iterationint, optional

The number of iteration of the whole training (default is 5).

threfloat, optional

The threshold for considering a missing value as imputed (default is 0.25).

basestr, optional

The base model used for graph representation and message propagation. Common options include “SAGE” and “GCN” (default is “SAGE”).

Returns
selfMPIN

The object with recov_data set.

Example
>>> mpin_imputer = Imputation.DeepLearning.MPIN(incomp_data)
>>> mpin_imputer.impute()  # default parameters for imputation > or
>>> mpin_imputer.impute(params={"incre_mode": "data+state", "window": 1, "k": 15, "learning_rate": 0.001, "weight_decay": 0.2, "epochs": 6, "num_of_iteration": 6, "threshold": 0.50, "base": "GCN"})  # user-defined > or
>>> mpin_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = mpin_imputer.recov_data
References

Li, X., Li, H., Lu, H., Jensen, C.S., Pandey, V. & Markl, V. Missing Value Imputation for Multi-attribute Sensor Data Streams via Message Propagation (Extended Version). arXiv (2023). https://arxiv.org/abs/2311.07344 https://github.com/XLI-2020/MPIN

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class MRNN(incomp_data)[source]

Bases: BaseImputer

MRNN class to impute missing values using Multi-directional Recurrent Neural Networks (MRNN).

Methods
impute(self, user_def=True, params=None):

Perform imputation using the MRNN algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'mrnn'
impute(user_def=True, params=None)[source]

Perform imputation using the MRNN algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the MRNN algorithm, if None, default ones are loaded.

Algorithm parameters:

  • hidden_dimint

    The number of hidden units in the neural network.

  • learning_ratefloat

    Learning rate for training the neural network.

  • iterationsint

    Number of iterations for training.

  • sequence_lengthint

    The length of the sequences used in the recurrent neural network.

Returns
selfMRNN

The object with recov_data set.

Example
>>> mrnn_imputer = Imputation.DeepLearning.MRNN(incomp_data)
>>> mrnn_imputer.impute()  # default parameters for imputation > or
>>> mrnn_imputer.impute(user_def=True, params={'hidden_dim': 10, 'learning_rate':0.01, 'iterations':50, 'sequence_length': 7})  # user-defined > or
>>> mrnn_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "bayesian", "options": {"n_calls": 2}})  # automl with bayesian
>>> recov_data = mrnn_imputer.recov_data
References
  1. Yoon, W. R. Zame and M. van der Schaar, “Estimating Missing Data in Temporal Data Streams Using Multi-Directional Recurrent Neural Networks,” in IEEE Transactions on Biomedical Engineering, vol. 66, no. 5, pp. 1477-1490, May 2019, doi: 10.1109/TBME.2018.2874712. keywords: {Time measurement;Interpolation;Estimation;Medical diagnostic imaging;Correlation;Recurrent neural networks;Biomedical measurement;Missing data;temporal data streams;imputation;recurrent neural nets}

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class MissNet(incomp_data)[source]

Bases: BaseImputer

MissNet class to impute missing values using Mining of Switching Sparse Networks for Missing Value

Imputation in Multivariate Time Series.

Methods
impute(self, user_def=True, params=None):

Perform imputation using the MissNet algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'miss_net'
impute(user_def=True, params=None)[source]

Perform imputation using the MissNet algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the MissNet algorithm, if None, default ones are loaded.

Algorithm parameters:

alphafloat, optional

Trade-off parameter controlling the contribution of contextual matrix and time-series. If alpha = 0, network is ignored. (default 0.5)

betafloat, optional

Regularization parameter for sparsity. (default 0.1)

Lint, optional

Hidden dimension size. (default 10)

n_clint, optional

Number of clusters. (default 1)

max_iterationint, optional

Maximum number of iterations for convergence. (default 20)

tolfloat, optional

Tolerance for early stopping criteria. (default 5)

random_initbool, optional

Whether to use random initialization for latent variables. (default False)

Returns
selfMissNet

The object with recov_data set.

Example
>>> miss_net_imputer = Imputation.DeepLearning.MissNet(incomp_data)
>>> miss_net_imputer.impute()  # default parameters for imputation > or
>>> miss_net_imputer.impute(user_def=True, params={'alpha': 0.5, 'beta':0.1, 'L':10, 'n_cl': 1, 'max_iteration':20, 'tol':5, 'random_init':False})  # user-defined > or
>>> miss_net_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # auto-ml with ray_tune
>>> recov_data = miss_net_imputer.recov_data
References

Kohei Obata, Koki Kawabata, Yasuko Matsubara, and Yasushi Sakurai. 2024. Mining of Switching Sparse Networks for Missing Value Imputation in Multivariate Time Series. In Proceedings of the 30th ACM SIGKDD Conference on Knowledge Discovery and Data Mining (KDD ‘24). Association for Computing Machinery, New York, NY, USA, 2296–2306. https://doi.org/10.1145/3637528.3671760 https://github.com/KoheiObata/MissNet/tree/main

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class PRISTI(incomp_data)[source]

Bases: BaseImputer

PRISTI class to impute missing values using A Conditional Diffusion Framework for Spatiotemporal Imputation algorithm.

Methods
impute(self, user_def=True, params=None):

Perform imputation using the PRISTI algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'pristi'
impute(user_def=True, params=None)[source]

Perform imputation using the PRISTI algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the BRITS algorithm, if None, default ones are loaded.

Algorithm parameters:

target_strategystr, optional

The strategy to use for targeting missing values. Options include: “hybrid”, “random”, “historical” (default is “hybrid”).

unconditionalbool, optional

Whether to use an unconditional imputation model (default is True). If False, conditional imputation models are used, depending on available data patterns.

seedint, optional

Random seed for reproducibility (default is 42).

devicestr, optional

The device to perform computation on, e.g., “cpu” or “cuda” (default is “cpu”).

Returns
selfPRISTI

The object with recov_data set.

Example
>>> pristi_imputer = Imputation.DeepLearning.PRISTI(incomp_data)
>>> pristi_imputer.impute()  # default parameters for imputation > or
>>> pristi_imputer.impute(params={"target_strategy":"hybrid", "unconditional":True, "seed":42, "device":"cpu"})  # user-defined > or
>>> pristi_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = pristi_imputer.recov_data
References

M. Liu, H. Huang, H. Feng, L. Sun, B. Du and Y. Fu, “PriSTI: A Conditional Diffusion Framework for Spatiotemporal Imputation,” 2023 IEEE 39th International Conference on Data Engineering (ICDE), Anaheim, CA, USA, 2023, pp. 1927-1939, doi: 10.1109/ICDE55515.2023.00150. https://github.com/LMZZML/PriSTI

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class MachineLearning[source]

Bases: object

A class containing imputation algorithms for pattern-based methods.

Subclasses

MissForest :

Imputation method using Miss Forest (MissForest)

MICE :

Imputation method using Multivariate imputation of chained equations (MICE).

IIM :

Imputation method using Iterative Imputation with Metric Learning (IIM).

XGBOOST :

Imputation method using Scalable Tree Boosting System (XGBOOST).

class IIM(incomp_data)[source]

Bases: BaseImputer

IIM class to impute missing values using Iterative Imputation with Metric Learning (IIM).

Methods
impute(self, user_def=True, params=None):

Perform imputation using the IIM algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'iim'
impute(user_def=True, params=None)[source]

Perform imputation using the IIM algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the IIM algorithm, if None, default ones are loaded.

  • learning_neighboursint

    Number of nearest neighbors for learning.

  • algo_codestr

    Unique code for the algorithm configuration.

Returns
selfIIM

The object with recov_data set.

Example
>>> iim_imputer = Imputation.MachineLearning.IIM(incomp_data)
>>> iim_imputer.impute()  # default parameters for imputation > or
>>> iim_imputer.impute(user_def=True, params={'learning_neighbors': 10})  # user-defined  > or
>>> iim_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "bayesian", "options": {"n_calls": 2}})  # automl with bayesian
>>> recov_data = iim_imputer.recov_data
References

A. Zhang, S. Song, Y. Sun and J. Wang, “Learning Individual Models for Imputation,” 2019 IEEE 35th International Conference on Data Engineering (ICDE), Macao, China, 2019, pp. 160-171, doi: 10.1109/ICDE.2019.00023. keywords: {Data models;Adaptation models;Computational modeling;Predictive models;Numerical models;Aggregates;Regression tree analysis;Missing values;Data imputation}

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class MICE(incomp_data)[source]

Bases: BaseImputer

MICE class to impute missing values with Multivariate imputation of chained equations (MICE).

Methods
impute(self, user_def=True, params=None):

Perform imputation using the STMVL algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'mice'
impute(user_def=True, params=None)[source]

Perform imputation using the MICE algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the STMVL algorithm, if None, default ones are loaded.

Algorithm parameters:

max_iterint, optional

Maximum number of imputation rounds to perform before returning the imputations computed during the final round. (default is 3).

tolfloat, optional

Tolerance of the stopping condition. (default is 0.001).

initial_strategystr, optional

Which strategy to use to initialize the missing values. {‘mean’, ‘median’, ‘most_frequent’, ‘constant’} (default is “means”).

seedint, optional

The seed of the pseudo random number generator to use. Randomizes selection of estimator features (default is 42).

Returns
selfMICE

The object with recov_data set.

Example
>>> mice_imputer = Imputation.MachineLearning.MICE(incomp_data)
>>> mice_imputer.impute()  # default parameters for imputation > or
>>> mice_imputer.impute(user_def=True, params={"max_iter":3, "tol":0.001, "initial_strategy":"mean", "seed": 42})  # user defined > or
>>> mice_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = mice_imputer.recov_data
References

P. Royston and I. R. White. Multiple Imputation by Chained Equations (MICE): Implementation in Stata. Journal of Statistical Software, 45(4):1–20, 2011. Available: https://www.jstatsoft.org/index.php/jss/article/view/v045i04. Stef van Buuren, Karin Groothuis-Oudshoorn (2011). “mice: Multivariate Imputation by Chained Equations in R”. Journal of Statistical Software 45: 1-67. S. F. Buck, (1960). “A Method of Estimation of Missing Values in Multivariate Data Suitable for use with an Electronic Computer”. Journal of the Royal Statistical Society 22(2): 302-306. https://scikit-learn.org/stable/modules/generated/sklearn.impute.IterativeImputer.html#sklearn.impute.IterativeImputer

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class MissForest(incomp_data)[source]

Bases: BaseImputer

MissForest class to impute missing values with Miss Forest.

Methods
impute(self, user_def=True, params=None):

Perform imputation using the Miss Forest algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'miss_forest'
impute(user_def=True, params=None)[source]

Perform imputation using the Miss Forest algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the miss forest algorithm, if None, default ones are loaded.

Algorithm parameters:

alphafloat, optional

Trade-off parameter controlling the contribution of contextual matrix and time-series. If alpha = 0, network is ignored. (default 0.5)

betafloat, optional

Regularization parameter for sparsity. (default 0.1)

Lint, optional

Hidden dimension size. (default 10)

n_clint, optional

Number of clusters. (default 1)

max_iterationint, optional

Maximum number of iterations for convergence. (default 20)

tolfloat, optional

Tolerance for early stopping criteria. (default 5)

random_initbool, optional

Whether to use random initialization for latent variables. (default False)

Returns
selfMissForest

The object with recov_data set.

Example
>>> mf_imputer = Imputation.MachineLearning.MissForest(incomp_data)
>>> mf_imputer.impute()  # default parameters for imputation > or
>>> mf_imputer.impute(user_def=True, params={"n_estimators":10, "max_iter":3, "max_features":"sqrt", "seed": 42})  # user defined > or
>>> mf_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = mf_imputer.recov_data
References

Daniel J. Stekhoven, Peter Bühlmann, MissForest—non-parametric missing value imputation for mixed-type data, Bioinformatics, Volume 28, Issue 1, January 2012, Pages 112–118, https://doi.org/10.1093/bioinformatics/btr597 https://github.com/yuenshingyan/MissForest https://pypi.org/project/MissForest/

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class XGBOOST(incomp_data)[source]

Bases: BaseImputer

XGBOOST class to impute missing values with Extreme Gradient Boosting (XGBOOST).

Methods
impute(self, user_def=True, params=None):

Perform imputation using the XGBOOST algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'xgboost'
impute(user_def=True, params=None)[source]

Perform imputation using the XGBOOST algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the STMVL algorithm, if None, default ones are loaded.

Algorithm parameters:

n_estimatorsint, optional

The number of trees in the Random Forest model used for imputation (default is 10).

seedint, optional

The seed of the pseudo random number generator to use. Randomizes selection of estimator features (default is 42).

Returns
selfXGBOOST

The object with recov_data set.

Example
>>> mxgboost_imputer = Imputation.MachineLearning.MICE(incomp_data)
>>> mxgboost_imputer.impute()  # default parameters for imputation > or
>>> mxgboost_imputer.impute(user_def=True, params={"n_estimators":3, "seed": 42})  # user defined > or
>>> mxgboost_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = mxgboost_imputer.recov_data
References

Tianqi Chen and Carlos Guestrin. 2016. XGBoost: A Scalable Tree Boosting System. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD ‘16). Association for Computing Machinery, New York, NY, USA, 785–794. https://doi.org/10.1145/2939672.2939785 https://dl.acm.org/doi/10.1145/2939672.2939785 https://medium.com/@tzhaonj/imputing-missing-data-using-xgboost-802757cace6d

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class MatrixCompletion[source]

Bases: object

A class containing imputation algorithms for matrix decomposition methods.

Subclasses

CDRec :

Imputation method using Centroid Decomposition.

IterativeSVD :

Imputation method using Iterative Singular Value Decomposition.

GROUSE :

Imputation method using Grassmannian Rank-One Update Subspace Estimation.

ROSL :

Imputation method using Robust Online Subspace Learning.

SoftImpute :

Imputation method using Soft Impute algorithm.

SPIRIT :

Imputation method using Streaming Pattern Discovery in Multiple Time-Series.

SVT :

Imputation method using Singular Value Thresholding algorithm.

TRMF :

Imputation method using Temporal Regularized Matrix Factorization.

class CDRec(incomp_data)[source]

Bases: BaseImputer

CDRec class to impute missing values using Centroid Decomposition (CDRec).

Methods
impute(self, user_def=True, params=None):

Perform imputation using the CDRec algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'cdrec'
impute(user_def=True, params=None)[source]

Perform imputation using the CDRec algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the CDRec algorithm or Auto-ML configuration, if None, default ones are loaded.

Algorithm parameters:

  • rankint

    Rank of matrix reduction, which should be higher than 1 and smaller than the number of series.

  • epsilonfloat

    The learning rate used for the algorithm.

  • iterationsint

    The number of iterations to perform.

Auto-ML parameters:

  • input_datanumpy.ndarray

    The original time series dataset without contamination.

  • optimizerstr

    The optimizer to use for parameter optimization. Valid values are “bayesian”, “greedy”, “pso”, or “sh”.

  • optionsdict, optional

    Optional parameters specific to the optimizer.

    Bayesian:

    • n_callsint, optional

      Number of calls to the objective function. Default is 3.

    • metricslist, optional

      List of selected metrics to consider for optimization. Default is [“RMSE”].

    • n_random_startsint, optional

      Number of initial calls to the objective function, from random points. Default is 50.

    • acq_funcstr, optional

      Acquisition function to minimize over the Gaussian prior. Valid values: ‘LCB’, ‘EI’, ‘PI’, ‘gp_hedge’ (default is ‘gp_hedge’).

    Greedy:

    • n_callsint, optional

      Number of calls to the objective function. Default is 3.

    • metricslist, optional

      List of selected metrics to consider for optimization. Default is [“RMSE”].

    PSO:

    • n_particlesint, optional

      Number of particles used.

    • c1float, optional

      PSO learning coefficient c1 (personal learning).

    • c2float, optional

      PSO learning coefficient c2 (global learning).

    • wfloat, optional

      PSO inertia weight.

    • iterationsint, optional

      Number of iterations for the optimization.

    • n_processesint, optional

      Number of processes during optimization.

    Successive Halving (SH):

    • num_configsint, optional

      Number of configurations to try.

    • num_iterationsint, optional

      Number of iterations to run the optimization.

    • reduction_factorint, optional

      Reduction factor for the number of configurations kept after each iteration.

    RAY TUNE (ray_tune):

    • n_callsint, optional

      Number of calls to the objective function (default is 10).

    • max_concurrent_trialsint, optional

      Number of trials run in parallel, related to your total memory / cpu / gpu (default is 2). Please increase the value if you have more resources

Returns
selfCDRec

CDRec object with recov_data set.

Example
>>> cdrec_imputer = Imputation.MatrixCompletion.CDRec(incomp_data)
>>> cdrec_imputer.impute()  # default parameters for imputation > or
>>> cdrec_imputer.impute(user_def=True, params={'rank': 5, 'epsilon': 0.01, 'iterations': 100})  # user-defined > or
>>> cdrec_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "bayesian", "options": {"n_calls": 2}})  # automl with bayesian
>>> recov_data = cdrec_imputer.recov_data
References

Khayati, M., Cudré-Mauroux, P. & Böhlen, M.H. Scalable recovery of missing blocks in time series with high and low cross-correlations. Knowl Inf Syst 62, 2257–2280 (2020). https://doi.org/10.1007/s10115-019-01421-7

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class GROUSE(incomp_data)[source]

Bases: BaseImputer

GROUSE class to impute missing values using GROUSE.

Methods
impute(self, user_def=True, params=None):

Perform imputation using the GROUSE algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'grouse'
impute(user_def=True, params=None)[source]

Perform imputation using the GROUSE algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the GROUSE algorithm or Auto-ML configuration, if None, default ones are loaded.

Algorithm parameters:

  • max_rankint

    Max rank of matrix reduction, which should be higher than 1 and smaller than the number of series.

Returns
selfGROUSE

GROUSE object with recov_data set.

Example
>>> grouse_imputer = Imputation.MatrixCompletion.GROUSE(incomp_data)
>>> grouse_imputer.impute()  # default parameters for imputation > or
>>> grouse_imputer.impute(params={'max_rank': 5}) # user-defined  > or
>>> grouse_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = grouse_imputer.recov_data
References
  1. Zhang and L. Balzano. Global convergence of a grassmannian gradient descent algorithm for subspace estimation. In Proceedings of the 19th International Conference on Artificial Intelligence and Statistics, AISTATS 2016, Cadiz, Spain, May 9-11, 2016, pages 1460–1468, 2016.

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class IterativeSVD(incomp_data)[source]

Bases: BaseImputer

IterativeSVD class to impute missing values using Iterative SVD.

Methods
impute(self, user_def=True, params=None):

Perform imputation using the Iterative SDV algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'iterative_svd'
impute(user_def=True, params=None)[source]

Perform imputation using the Iterative SVD algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the Iterative SVD algorithm or Auto-ML configuration, if None, default ones are loaded.

Algorithm parameters:

  • rankint

    Rank of matrix reduction, which should be higher than 1 and smaller than the number of series.

Returns
selfIterativeSVD

IterativeSVD object with recov_data set.

Example
>>> i_svd_imputer = Imputation.MatrixCompletion.IterativeSVD(incomp_data)
>>> i_svd_imputer.impute()  # default parameters for imputation > or
>>> i_svd_imputer.impute(params={'rank': 5}) # user-defined  > or
>>> i_svd_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = i_svd_imputer.recov_data
References

Olga Troyanskaya, Michael Cantor, Gavin Sherlock, Pat Brown, Trevor Hastie, Robert Tibshirani, David Botstein, Russ B. Altman, Missing value estimation methods for DNA microarrays , Bioinformatics, Volume 17, Issue 6, June 2001, Pages 520–525, https://doi.org/10.1093/bioinformatics/17.6.520

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class ROSL(incomp_data)[source]

Bases: BaseImputer

ROSL class to impute missing values using Robust Online Subspace Learning algorithm.

Methods
impute(self, user_def=True, params=None):

Perform imputation using the ROSL algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'rosl'
impute(user_def=True, params=None)[source]

Perform imputation using the ROSL algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the ROSL algorithm or Auto-ML configuration, if None, default ones are loaded.

Algorithm parameters:

rankint

The rank of the low-dimensional subspace for matrix decomposition. Must be greater than 0 and less than or equal to the number of columns in the matrix.

regularizationfloat

The regularization parameter to control the trade-off between reconstruction accuracy and robustness. Higher values enforce sparsity or robustness against noise in the data.

Returns
selfROSL

ROSL object with recov_data set.

Example
>>> rosl_imputer = Imputation.MatrixCompletion.ROSL(incomp_data)
>>> rosl_imputer.impute()  # default parameters for imputation > or
>>> rosl_imputer.impute(params={'rank': 5, 'regularization': 10}) # user-defined  > or
>>> rosl_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = rosl_imputer.recov_data
References
  1. Shu, F. Porikli, and N. Ahuja. Robust orthonormal subspace learning: Efficient recovery of corrupted low-rank matrices. In 2014 IEEE Conference on Computer Vision and Pattern Recognition, CVPR 2014, Columbus, OH, USA, June 23-28, 2014, pages 3874–3881, 2014.

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class SPIRIT(incomp_data)[source]

Bases: BaseImputer

SPIRIT class to impute missing values using SPIRIT algorithm.

Methods
impute(self, user_def=True, params=None):

Perform imputation using the SPIRIT algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'spirit'
impute(user_def=True, params=None)[source]

Perform imputation using the SPIRIT algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the SPIRIT algorithm or Auto-ML configuration, if None, default ones are loaded.

Algorithm parameters:

kint

The number of eigencomponents (principal components) to retain for dimensionality reduction. Example: 2, 5, 10.

wint

The window size for capturing temporal dependencies. Example: 5 (short-term), 20 (long-term).

lambda_valuefloat

The forgetting factor controlling how quickly past data is “forgotten”. Example: 0.8 (fast adaptation), 0.95 (stable systems).

Returns
selfSPIRIT

SPIRIT object with recov_data set.

Example
>>> spirit_imputer = Imputation.MatrixCompletion.SPIRIT(incomp_data)
>>> spirit_imputer.impute()  # default parameters for imputation > or
>>> spirit_imputer.impute(params={'k': 2, 'w': 5, 'lambda_value': 0.85}) # user-defined  > or
>>> spirit_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = spirit_imputer.recov_data
References
  1. Papadimitriou, J. Sun, and C. Faloutsos. Streaming pattern discovery in multiple time-series. In Proceedings of the 31st International Conference on Very Large Data Bases, Trondheim, Norway, August 30 - September 2, 2005, pages 697–708, 2005.

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class SVT(incomp_data)[source]

Bases: BaseImputer

SVT class to impute missing values using Singular Value Thresholding algorithm.

Methods
impute(self, user_def=True, params=None):

Perform imputation using the SVT algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'svt'
impute(user_def=True, params=None)[source]

Perform imputation using the SVT algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the SVT algorithm or Auto-ML configuration, if None, default ones are loaded.

Algorithm parameters:

taufloat

The thresholding parameter for singular values. Controls how singular values are shrunk during the decomposition process. Larger values encourage a sparser, lower-rank solution, while smaller values retain more detail.

Returns
selfSVT

SVT object with recov_data set.

Example
>>> svt_imputer = Imputation.MatrixCompletion.SVT(incomp_data)
>>> svt_imputer.impute()  # default parameters for imputation > or
>>> svt_imputer.impute(params={'tau': 1}) # user-defined  > or
>>> svt_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = svt_imputer.recov_data
References
  1. Cai, E. J. Candès, and Z. Shen. A singular value thresholding algorithm for matrix completion. SIAM Journal on Optimization, 20(4):1956–1982, 2010. [8] J. Cambronero, J. K. Feser, M. J. Smith, and

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class SoftImpute(incomp_data)[source]

Bases: BaseImputer

SoftImpute class to impute missing values using Soft Impute algorithm.

Methods
impute(self, user_def=True, params=None):

Perform imputation using the Soft Impute algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'soft_impute'
impute(user_def=True, params=None)[source]

Perform imputation using the Soft Impute algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the Soft Impute algorithm or Auto-ML configuration, if None, default ones are loaded.

Algorithm parameters:

max_rankint

The max rank of the low-dimensional subspace for matrix decomposition. Must be greater than 0 and less than or equal to the number of columns in the matrix.

Returns
selfSoftImpute

SoftImpute object with recov_data set.

Example
>>> soft_impute_imputer = Imputation.MatrixCompletion.SoftImpute(incomp_data)
>>> soft_impute_imputer.impute()  # default parameters for imputation > or
>>> soft_impute_imputer.impute(params={'max_rank': 5}) # user-defined  > or
>>> soft_impute_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = soft_impute_imputer.recov_data
References
  1. Mazumder, T. Hastie, and R. Tibshirani. Spectral regularization algorithms for learning large incomplete matrices. Journal of Machine Learning Research, 11:2287–2322, 2010.

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class TRMF(incomp_data)[source]

Bases: BaseImputer

TRMF class to impute missing values using Temporal Regularized Matrix Factorization.

Methods
impute(self, user_def=True, params=None):

Perform imputation using the TRMF algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'trmf'
impute(user_def=True, params=None)[source]

Perform imputation using the TRMF algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the TRMF algorithm or Auto-ML configuration, if None, default ones are loaded.

Algorithm parameters:

lagsarray-like, optional

Set of lag indices to use in model.

Kint, optional

Length of latent embedding dimension

lambda_ffloat, optional

Regularization parameter used for matrix F.

lambda_xfloat, optional

Regularization parameter used for matrix X.

lambda_wfloat, optional

Regularization parameter used for matrix W.

alphafloat, optional

Regularization parameter used for make the sum of lag coefficient close to 1. That helps to avoid big deviations when forecasting.

etafloat, optional

Regularization parameter used for X when undercovering autoregressive dependencies.

max_iterint, optional

Number of iterations of updating matrices F, X and W.

logsbool, optional

Whether to log the execution time (default is True).

Returns
selfTRMF

TRMF object with recov_data set.

Example
>>> trmf_imputer = Imputation.MatrixCompletion.SVT(incomp_data)
>>> trmf_imputer.impute()  # default parameters for imputation > or
>>> trmf_imputer.impute(params={"lags":[], "K":-1, "lambda_f":1.0, "lambda_x":1.0, "lambda_w":1.0, "eta":1.0, "alpha":1000.0, "max_iter":100}) # user-defined > or
>>> trmf_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = trmf_imputer.recov_data
References

H.-F. Yu, N. Rao, and I. S. Dhillon, “Temporal Regularized Matrix Factorization for High-dimensional Time Series Prediction,” in Advances in Neural Information Processing Systems, vol. 29, 2016. [Online]. Available: https://proceedings.neurips.cc/paper_files/paper/2016/file/85422afb467e9456013a2a51d4dff702-Paper.pdf

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class PatternSearch[source]

Bases: object

A class containing imputation algorithms for pattern-based methods.

Subclasses

STMVL :

Imputation method using Spatio-Temporal Matrix Variational Learning (STMVL).

DynaMMo :

Imputation method using Dynamic Multi-Mode modeling with Missing Observations algorithm (DynaMMo).

TKCM :

TKCM class to impute missing values using Tensor Kernelized Coupled Matrix Completion algorithm. (TKCM).

class DynaMMo(incomp_data)[source]

Bases: BaseImputer

DynaMMo class to impute missing values using Dynamic Multi-Mode modeling with Missing Observations algorithm.

Methods
impute(self, user_def=True, params=None):

Perform imputation using the DynaMMo algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'dynammo'
impute(user_def=True, params=None)[source]

Perform imputation using the DynaMMo algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the DynaMMo algorithm or Auto-ML configuration, if None, default ones are loaded.

Algorithm parameters:

hint

The time window (H) parameter for modeling temporal dynamics.

max_iterationint

The maximum number of iterations for the imputation process.

approximationbool

If True, enables faster approximate processing.

Returns
selfDynaMMo

DynaMMo object with recov_data set.

Example
>>> dynammo_imputer = Imputation.PatternSearch.DynaMMo(incomp_data)
>>> dynammo_imputer.impute()  # default parameters for imputation > or
>>> dynammo_imputer.impute(params={'h': 5, 'max_iteration': 100, 'approximation': True}) # user-defined  > or
>>> dynammo_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = dynammo_imputer.recov_data
References
  1. Li, J. McCann, N. S. Pollard, and C. Faloutsos. Dynammo: mining and summarization of coevolving sequences with missing values. In Proceedings of the 15th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, Paris, France, June 28 - July 1, 2009, pages 507–516, 2009.

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class STMVL(incomp_data)[source]

Bases: BaseImputer

STMVL class to impute missing values using Spatio-Temporal Matrix Variational Learning (STMVL).

Methods
impute(self, user_def=True, params=None):

Perform imputation using the STMVL algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'stmvl'
impute(user_def=True, params=None)[source]

Perform imputation using the STMVL algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the STMVL algorithm, if None, default ones are loaded.

  • window_sizeint

    The size of the temporal window for imputation.

  • gammafloat

    Smoothing parameter for temporal weights.

  • alphafloat

    Power for spatial weights.

Returns
selfSTMVL

The object with recov_data set.

Example
>>> stmvl_imputer = Imputation.PatternSearch.STMVL(incomp_data)
>>> stmvl_imputer.impute()  # default parameters for imputation > or
>>> stmvl_imputer.impute(user_def=True, params={'window_size': 7, 'learning_rate':0.01, 'gamma':0.85, 'alpha': 7})  # user-defined  > or
>>> stmvl_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "bayesian", "options": {"n_calls": 2}})  # automl with bayesian
>>> recov_data = stmvl_imputer.recov_data
References

Yi, X., Zheng, Y., Zhang, J., & Li, T. ST-MVL: Filling Missing Values in Geo-Sensory Time Series Data. School of Information Science and Technology, Southwest Jiaotong University; Microsoft Research; Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences.

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class TKCM(incomp_data)[source]

Bases: BaseImputer

TKCM class to impute missing values using Tensor Kernelized Coupled Matrix Completion algorithm.

Methods
impute(self, user_def=True, params=None):

Perform imputation using the TKCM algorithm.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'tkcm'
impute(user_def=True, params=None)[source]

Perform imputation using the TKCM algorithm.

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the TKCM algorithm or Auto-ML configuration, if None, default ones are loaded.

Algorithm parameters:

rankint

The rank for matrix decomposition (must be greater than 1 and smaller than the number of series).

Returns
selfTKCM

TKCM object with recov_data set.

Example
>>> tkcm_imputer = Imputation.PatternSearch.TKCM(incomp_data)
>>> tkcm_imputer.impute()  # default parameters for imputation > or
>>> tkcm_imputer.impute(params={'rank': 5})  # user-defined > or
>>> tkcm_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = tkcm_imputer.recov_data
References
  1. Wellenzohn, M. H. Böhlen, A. Dignös, J. Gamper, and H. Mitterer. Continuous imputation of missing values in streams of pattern-determining time series. In Proceedings of the 20th International Conference on Extending Database Technology, EDBT 2017, Venice, Italy, March 21-24, 2017., pages 330–341, 2017.

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class Statistics[source]

Bases: object

A class containing specific imputation algorithms for statistical methods.

Subclasses

ZeroImpute :

Imputation method that replaces missing values with zeros.

MinImpute :

Imputation method that replaces missing values with the minimum value of the ground truth.

MeanImputeBySeries :

Imputation method that replaces missing values with the minimum value of the ground truth by series.

Interpolation :

Imputation method that replaces missing values with the Interpolation

KNN :

Imputation method that replaces missing values with KNN logic

class Interpolation(incomp_data)[source]

Bases: BaseImputer

Interpolation class to impute missing values with interpolation-based algorithm

Methods
impute(self, params=None):

Perform imputation by replacing missing values with interpolation-based algorithm

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'interpolation'
impute(user_def=True, params=None)[source]

Impute missing values by replacing them with the interpolation-based algorithm

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the interpolation algorithm, if None, default ones are loaded.

Returns
selfInterpolation

The object with recov_data set.

Example
>>> interpolation_imputer = Imputation.Statistics.Interpolation(incomp_data)
>>> interpolation_imputer.impute()  # default parameters for imputation > or
>>> interpolation_imputer.impute(user_def=True, params={"method":"linear", "poly_order":2})  # user-defined > or
>>> interpolation_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = interpolation_imputer.recov_data
logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class KNN(incomp_data)[source]

Bases: BaseImputer

KNN class to impute missing values with K-Nearest Neighbor algorithm

Methods
impute(self, params=None):

Perform imputation by replacing missing values with K-Nearest Neighbor

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'knn'
impute(user_def=True, params=None)[source]

Impute missing values by replacing them with the K-Nearest Neighbor value

Parameters
user_defbool, optional

Whether to use user-defined or default parameters (default is True).

paramsdict, optional

Parameters of the KNN algorithm, if None, default ones are loaded.

Algorithm parameters: k : int, optional

Number of nearest neighbor (default is 5).

weightsstr, optional

“uniform” for mean, “distance” for inverse-distance weighting.

Returns
selfKNN

The object with recov_data set.

Example
>>> knn_imputer = Imputation.Statistics.KNN(incomp_data)
>>> knn_imputer.impute()  # default parameters for imputation > or
>>> knn_imputer.impute(user_def=True, params={'k': 5, 'weights': "uniform"})  # user-defined > or
>>> knn_imputer.impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "ray_tune"})  # automl with ray_tune
>>> recov_data = knn_imputer.recov_data
logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class MeanImpute(incomp_data)[source]

Bases: BaseImputer

MeanImpute class to impute missing values with the mean value of the ground truth.

Methods
impute(self, params=None):

Perform imputation by replacing missing values with the mean value of the ground truth.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'mean_impute'
impute(params=None)[source]

Impute missing values by replacing them with the mean value of the ground truth. Template for adding external new algorithm

Parameters
paramsdict, optional

Dictionary of algorithm parameters (default is None).

Returns
selfMinImpute

The object with recov_data set.

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class MeanImputeBySeries(incomp_data)[source]

Bases: BaseImputer

MeanImputeBySeries class to impute missing values with the mean value by series.

Methods
impute(self, params=None):

Perform imputation by replacing missing values with the mean value by series

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'mean_impute'
impute()[source]

Impute missing values by replacing them with the mean value of the series.

Returns
selfMeanImputeBySeries

The object with recov_data set.

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class MinImpute(incomp_data)[source]

Bases: BaseImputer

MinImpute class to impute missing values with the minimum value of the ground truth.

Methods
impute(self, params=None):

Perform imputation by replacing missing values with the minimum value of the ground truth.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'min_impute'
impute(params=None)[source]

Impute missing values by replacing them with the minimum value of the ground truth. Template for adding external new algorithm

Parameters
paramsdict, optional

Dictionary of algorithm parameters (default is None).

Returns
selfMinImpute

The object with recov_data set.

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

class ZeroImpute(incomp_data)[source]

Bases: BaseImputer

ZeroImpute class to impute missing values with zeros.

Methods
impute(self, params=None):

Perform imputation by replacing missing values with zeros.

__init__(incomp_data)

Initialize the BaseImputer with an infected time series matrix.

Parameters
incomp_datanumpy.ndarray

Matrix used during the imputation of the time series.

algorithm = 'zero_impute'
impute(params=None)[source]

Impute missing values by replacing them with zeros. Template for adding external new algorithm

Parameters
paramsdict, optional

Dictionary of algorithm parameters (default is None).

Returns
selfZeroImpute

The object with recov_data set.

logs = True
score(input_data, recov_data=None, downstream=None)

Compute evaluation metrics for the imputed time series.

Parameters
input_datanumpy.ndarray

The original time series without contamination.

recov_datanumpy.ndarray, optional

The imputed time series (default is None).

downstreamdict, optional

Dictionary that calls, if active, the downstream evaluation. (default is None). format : {“model”: “forcaster”, “params”: parameters}

Returns

None

evaluate_params(incomp_data, configuration, algorithm='cdrec')[source]

Evaluate various metrics for given parameters and imputation algorithm.

Parameters

input_datanumpy.ndarray

The original time series without contamination.

incomp_datanumpy.ndarray

The time series with contamination.

configurationtuple

Tuple of the configuration of the algorithm.

algorithmstr, optional

Imputation algorithm to use. Valid values: ‘cdrec’, ‘mrnn’, ‘stmvl’, ‘iim’ (default is ‘cdrec’).

Returns

dict

A dictionary of computed evaluation metrics.