Skip to main content

Univariate time-series expansion for Pymfe package

Project description

ts-pymfe: meta-feature extractor for one-dimensional time-series

A backup for the pymfe expansion for time-series data. Currently, this repository contains the methods for meta-feature extraction and an modified pymfe core to run extract the meta-features.

Please note that tspymfe is not intended to be a stand-alone package, and will be oficially merged (hopefully soon) to the original Pymfe package. Until then, this package is available as a beta version.

There is 149 distinct metafeature extraction methods in this version, distributed in the following groups:

  1. General
  2. Local statistics
  3. Global statistics
  4. Statistical tests
  5. Autocorrelation
  6. Frequency domain
  7. Information theory
  8. Randomize
  9. Landmarking
  10. Model based

Install

From pip:

pip install -U tspymfe

or:

python3 -m pip install -U tspymfe

Usage

To extract the meta-features, the API behaves pretty much like the original Pymfe API:

import tspymfe.tsmfe
import numpy as np

# random time-series
ts = 0.3 * np.arange(100) + np.random.randn(100)

extractor = tspymfe.tsmfe.TSMFE()
extractor.fit(ts)
res = extractor.extract()

print(res)

Dev-install

If you downloaded directly from github, install the required packages using:

pip install -Ur requirements.txt

You can run some test scripts:

python test_a.py <data_id> <random_seed> <precomp 0/1>
python test_b.py <data_id> <random_seed> <precomp 0/1>

Where the first argument is the test time-series id (check data/comp-engine-export-sample.20200503.csv file.) and must be between 0 (inclusive) and 19 (also inclusive), the random seed must be an integer, and precomp is a boolean argument ('0' or '1') to activate the precomputation methods, used to calculate common values between various methods and, therefore, speed the main computations.

Example:

python test_a.py 0 16 1
python test_b.py 0 16 1

The code format style is checked using flake8, pylint and mypy. You can use the Makefile to run all verifications by yourself:

pip install -Ur requirements-dev.txt
make code-check

Available meta-features by group

Below I present the full list of available meta-features in this package separated by meta-feature group. Also note that you can use the following methods to recover the available meta-feature, groups, and summary functions:

import tspymfe.tsmfe

groups = tspymfe.tsmfe.TSMFE.valid_groups()
print(groups)

metafeatures = tspymfe.tsmfe.TSMFE.valid_metafeatures()
print(metafeatures)

summaries = tspymfe.tsmfe.TSMFE.valid_summary()
print(summaries)

landmarking:

  1. model_arima_010_c
  2. model_arima_011_c
  3. model_arima_011_nc
  4. model_arima_021_c
  5. model_arima_100_c
  6. model_arima_110_c
  7. model_arima_112_nc
  8. model_exp
  9. model_gaussian
  10. model_hwes_ada
  11. model_hwes_adm
  12. model_linear
  13. model_linear_acf_first_nonpos
  14. model_linear_embed
  15. model_linear_seasonal
  16. model_loc_mean
  17. model_loc_median
  18. model_mean
  19. model_mean_acf_first_nonpos
  20. model_naive
  21. model_naive_drift
  22. model_naive_seasonal
  23. model_ses
  24. model_sine

general:

  1. bin_mean
  2. cao_e1
  3. cao_e2
  4. diff
  5. emb_dim_cao
  6. emb_lag
  7. embed_in_shell
  8. fnn_prop
  9. force_potential
  10. frac_cp
  11. fs_len
  12. length
  13. moving_threshold
  14. peak_frac
  15. period
  16. pred
  17. step_changes
  18. step_changes_trend
  19. stick_angles
  20. trough_frac
  21. turning_points
  22. turning_points_trend
  23. walker_cross_frac
  24. walker_path

global-stat:

  1. corr_dim
  2. dfa
  3. exp_hurst
  4. exp_max_lyap
  5. ioe_tdelta_mean
  6. kurtosis_diff
  7. kurtosis_residuals
  8. kurtosis_sdiff
  9. opt_boxcox_coef
  10. sd_diff
  11. sd_residuals
  12. sd_sdiff
  13. season_strenght
  14. skewness_diff
  15. skewness_residuals
  16. skewness_sdiff
  17. spikiness
  18. t_mean
  19. trend_strenght

local-stat:

  1. local_extrema
  2. local_range
  3. lumpiness
  4. moving_acf
  5. moving_acf_shift
  6. moving_approx_ent
  7. moving_avg
  8. moving_avg_shift
  9. moving_gmean
  10. moving_gmean_shift
  11. moving_kldiv
  12. moving_kldiv_shift
  13. moving_kurtosis
  14. moving_kurtosis_shift
  15. moving_lilliefors
  16. moving_sd
  17. moving_sd_shift
  18. moving_skewness
  19. moving_skewness_shift
  20. moving_var
  21. moving_var_shift
  22. stability

model-based:

  1. avg_cycle_period
  2. curvature
  3. des_level
  4. des_trend
  5. ets_level
  6. ets_season
  7. ets_trend
  8. gaussian_r_sqr
  9. ioe_std_adj_r_sqr
  10. ioe_std_slope
  11. linearity

info-theory:

  1. low_freq_power
  2. ps_entropy
  3. ps_freqs
  4. ps_peaks
  5. ps_residuals

stat-tests:

  1. test_adf
  2. test_adf_gls
  3. test_dw
  4. test_earch
  5. test_kpss
  6. test_lb
  7. test_lilliefors
  8. test_pp
  9. test_za

autocorr:

  1. acf
  2. acf_detrended
  3. acf_diff
  4. acf_first_nonpos
  5. acf_first_nonsig
  6. autocorr_crit_pt
  7. autocorr_out_dist
  8. first_acf_locmin
  9. gen_autocorr
  10. gresid_autocorr
  11. gresid_lbtest
  12. pacf
  13. pacf_detrended
  14. pacf_diff
  15. tc3
  16. trev

randomize:

  1. itrand_acf
  2. itrand_mean
  3. itrand_sd
  4. resample_first_acf_locmin
  5. resample_first_acf_nonpos
  6. resample_std
  7. surr_tc3
  8. surr_trev

freq-domain:

  1. ami
  2. ami_curvature
  3. ami_detrended
  4. ami_first_critpt
  5. approx_entropy
  6. control_entropy
  7. hist_ent_out_diff
  8. hist_entropy
  9. lz_complexity
  10. sample_entropy
  11. surprise

Main references

Papers

  1. T.S. Talagala, R.J. Hyndman and G. Athanasopoulos. Meta-learning how to forecast time series (2018)..
  2. Kang, Yanfei., Hyndman, R.J., & Smith-Miles, Kate. (2016). Visualising Forecasting Algorithm Performance using Time Series Instance Spaces (Department of Econometrics and Business Statistics Working Paper Series 10/16).
  3. C. Lemke, and B. Gabrys. Meta-learning for time series forecasting and forecast combination (Neurocomputing Volume 73, Issues 10–12, June 2010, Pages 2006-2016)
  4. B.D. Fulcher and N.S. Jones. hctsa: A computational framework for automated time-series phenotyping using massive feature extraction. Cell Systems 5, 527 (2017).
  5. B.D. Fulcher, M.A. Little, N.S. Jones. Highly comparative time-series analysis: the empirical structure of time series and their methods. J. Roy. Soc. Interface 10, 83 (2013).

Books

  1. Hyndman, R.J., & Athanasopoulos, G. (2018) Forecasting: principles and practice, 2nd edition, OTexts: Melbourne, Australia. OTexts.com/fpp2. Accessed on April 29 2020.

Packages

  1. tsfeatures (R language)
  2. hctsa (Matlab language)

Data

Data sampled from: https://comp-engine.org/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tspymfe-0.0.7.tar.gz (112.4 kB view hashes)

Uploaded Source

Built Distribution

tspymfe-0.0.7-py3-none-any.whl (121.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page