{"id":18561641,"url":"https://github.com/ajayarunachalam/deep_xf","last_synced_at":"2025-08-31T11:44:20.360Z","repository":{"id":39946390,"uuid":"421340252","full_name":"ajayarunachalam/Deep_XF","owner":"ajayarunachalam","description":"Package towards building Explainable Forecasting and Nowcasting Models with State-of-the-art Deep Neural Networks and Dynamic Factor Model on Time Series data sets with  single line of code. Also, provides utilify facility for time-series signal similarities matching, and removing noise from timeseries signals.","archived":false,"fork":false,"pushed_at":"2022-12-08T13:58:47.000Z","size":28883,"stargazers_count":118,"open_issues_count":1,"forks_count":24,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-08-19T22:07:56.116Z","etag":null,"topics":["auto-ml","auto-timeseries","deep-learning","deep-neural-networks","ecg-signal","explainable-ml","forecasting","forecasting-models","interpretable-ai","machine-learning","multivariate","nowcasting-models","python","sensors","siamese-neural-network","time-series","time-series-analysis","timeseries"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ajayarunachalam.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-10-26T08:20:45.000Z","updated_at":"2025-06-17T13:34:31.000Z","dependencies_parsed_at":"2023-01-25T13:46:04.101Z","dependency_job_id":null,"html_url":"https://github.com/ajayarunachalam/Deep_XF","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ajayarunachalam/Deep_XF","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajayarunachalam%2FDeep_XF","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajayarunachalam%2FDeep_XF/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajayarunachalam%2FDeep_XF/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajayarunachalam%2FDeep_XF/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ajayarunachalam","download_url":"https://codeload.github.com/ajayarunachalam/Deep_XF/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajayarunachalam%2FDeep_XF/sbom","scorecard":{"id":174201,"data":{"date":"2025-08-11","repo":{"name":"github.com/ajayarunachalam/Deep_XF","commit":"38cbe532c3f023f1796f83a0f2391b4339f0aa5d"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":0,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/22 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":0,"reason":"binaries present in source code","details":["Warn: binary detected: deep_xf/__pycache__/__init__.cpython-36.pyc:1","Warn: binary detected: deep_xf/__pycache__/denoise.cpython-36.pyc:1","Warn: binary detected: deep_xf/__pycache__/dpp.cpython-36.pyc:1","Warn: binary detected: deep_xf/__pycache__/forecast_ml.cpython-36.pyc:1","Warn: binary detected: deep_xf/__pycache__/forecast_ml_extension.cpython-36.pyc:1","Warn: binary detected: deep_xf/__pycache__/gnn_layer.cpython-36.pyc:1","Warn: binary detected: deep_xf/__pycache__/main.cpython-36.pyc:1","Warn: binary detected: deep_xf/__pycache__/similarity.cpython-36.pyc:1","Warn: binary detected: deep_xf/__pycache__/stats.cpython-36.pyc:1","Warn: binary detected: deep_xf/__pycache__/utility.cpython-36.pyc:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: pipCommand not pinned by hash: setup.sh:7","Info:   0 out of   1 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":0,"reason":"24 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-cjgq-5qmw-rcj6","Warn: Project is vulnerable to: GHSA-x4wf-678h-2pmq","Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: PYSEC-2020-73","Warn: Project is vulnerable to: PYSEC-2024-110 / GHSA-jw8x-6495-233v","Warn: Project is vulnerable to: GHSA-jxfp-4rvq-9h9m","Warn: Project is vulnerable to: PYSEC-2019-156 / GHSA-xp76-357g-9wqq","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114","Warn: Project is vulnerable to: GHSA-3749-ghw9-m3mg","Warn: Project is vulnerable to: PYSEC-2022-43015 / GHSA-47fc-vmwq-366v","Warn: Project is vulnerable to: PYSEC-2025-41 / GHSA-53q9-r3pm-6pq6","Warn: Project is vulnerable to: PYSEC-2024-252 / GHSA-5pcm-hx3q-hm94","Warn: Project is vulnerable to: GHSA-887c-mr87-cxwp","Warn: Project is vulnerable to: PYSEC-2024-251 / GHSA-pg7h-5qx3-wjr3","Warn: Project is vulnerable to: PYSEC-2024-250","Warn: Project is vulnerable to: PYSEC-2024-259","Warn: Project is vulnerable to: PYSEC-2017-74"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-16T17:19:02.232Z","repository_id":39946390,"created_at":"2025-08-16T17:19:02.232Z","updated_at":"2025-08-16T17:19:02.232Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272976181,"owners_count":25025040,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-31T02:00:09.071Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auto-ml","auto-timeseries","deep-learning","deep-neural-networks","ecg-signal","explainable-ml","forecasting","forecasting-models","interpretable-ai","machine-learning","multivariate","nowcasting-models","python","sensors","siamese-neural-network","time-series","time-series-analysis","timeseries"],"created_at":"2024-11-06T22:07:32.441Z","updated_at":"2025-08-31T11:44:20.266Z","avatar_url":"https://github.com/ajayarunachalam.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"DeepXF: Explainable Forecasting and Nowcasting with State-of-the-art Deep Neural Networks and Dynamic Factor Model\n==================================================================================================================\nAlso, verify TS signal similarities and Filtering of TS signals with single line of code at ease\n================================================================================================\n\n**deep-xf**\n\npypi: https://pypi.org/project/deep_xf\n\n.. image:: images/logo.png\n\n**Related Blog:** https://towardsdatascience.com/interpretable-nowcasting-with-deepxf-using-minimal-code-6b16a76ca52f\n\n**Related Blog:** https://medium.com/analytics-vidhya/building-explainable-forecasting-models-with-state-of-the-art-deep-neural-networks-using-a-ad3fa5844fef\n\n**Related Blog:** https://towardsdatascience.com/learning-similarities-between-biomedical-signals-with-deep-siamese-network-7684648e2ba0\n\n**Related Blog:** https://ajay-arunachalam08.medium.com/denoising-ecg-signals-with-ensemble-of-filters-65919d15afe9\n\nAbout deep-xf\n=============\n\n`DeepXF` is an open source, low-code python library for forecasting and nowcasting tasks. `DeepXF` helps in designing complex forecasting and nowcasting models with built-in utility for time series data. One can automatically build interpretable deep forecasting and nowcasting models at ease with this `simple`, `easy-to-use` and `low-code` solution. It enables users to perform end-to-end Proof-Of-Concept (POC) quickly and efficiently. One can build models based on deep neural network such as Recurrent Neural Network (RNN), Long Short Term Memory (LSTM), Gated Recurrent Unit (GRU), Bidirectional RNN/LSTM/GRU (BiRNN/BiLSTM/BiGRU), Spiking Neural Network (SNN), Graph Neural Network (GNN), Transformers, Generative Adversarial Network (GAN), Convolutional Neural Network (CNN), and others. It also provides facility to build nowcast model using Dynamic Factor Model. \n\n.. image:: images/representation.png\n\n`DeepXF` is conceived and developed by Ajay Arunachalam - https://www.linkedin.com/in/ajay-arunachalam-4744581a/\n\nPlease Note:- This is still by large a work in progress, so always open to your comments and things you feel to be included. Also, if you want to be a contributor, you are always most welcome. The RNN/LSTM/GRU/BiRNN/BiLSTM/BiGRU are already part of the initial version roll-out, while the latter ones (SNN, GNN, Transformers, GAN, CNN, etc.) are work in progress, and will be added soon once the testing is completed. \n\n\nThe library provides (not limited too):-\n========================================\n\n- Exploratory Data Analysis with services like profiling, filtering outliers, univariate/multivariate plots, plotly interactive plots, rolling window plots, detecting peaks, etc. \n\n- Data Preprocessing for Time-series data with services like finding missing, imputing missing, date-time extraction, single timestamp generation, removing unwanted features, etc. \n\n- Descriptive statistics for the provided time-series data, Normality evaluation, etc.\n\n- Feature engineering with services like generating time lags, date-time features, one-hot encoding, date-time cyclic features, etc.\n\n- **Finding similarity between homogeneous time-series inputs with Siamese Neural Networks.**\n\n- **Denoising time-series input signals.**\n\n- **Building Deep Forecasting Model with hyperparameters tuning and leveraging available computational resource (CPU/GPU).**\n\n- **Forecasting model performance evaluation with several key metrics** \n\n- **Game theory based method to interpret forecasting model results.**\n\n- **Building Nowcasting model with Expectation–maximization algorithm**\n\n- **Explainable Nowcasting**\n\n\nWho can use deep-xf?\n====================\n\nDeepXF is an open-source library ideal for:-\n\n- Citizen Data Scientists who prefer a low code solution.\n- Experienced Data Scientists who want to increase model accuracy and improve productivity.\n- Data Science Professionals and Consultants involved in building proof-of-concept (poc) projects.\n- Researchers for quick poc prototyping and testing.\n- Students and Teachers.\n- ML Enthusiasts.\n- Learners.\n\n\nRequirements\n============\n\n-  **Python 3.6.x**\n-  torch[\u003e=1.4.0]\n-  NumPy[\u003e=1.9.0]\n-  SciPy[\u003e=0.14.0]\n-  Scikit-learn[\u003e=0.16]\n-  statsmodels[0.12.2]\n-  Pandas[\u003e=0.23.0]\n-  Matplotlib\n-  Seaborn[0.9.0]\n-  plotly[5.10.0]\n-  tqdm\n-  shap\n-  keras[2.6.0]\n-  pandas_profiling[3.1.0]\n-  py-ecg-detectors\n\n\n\nQuickly Setup package with automation scripts\n=============================================\n\n.. code:: bash\n\n    sudo bash setup.sh\n\nInstallation\n------------\nUsing pip:\n\n.. code:: sh\n\n    pip install deep-xf or pip3 install deep-xf or pip install git+git://github.com/ajayarunachalam/Deep_XF\n\n.. code:: bash\n\n    $ git clone https://github.com/ajayarunachalam/Deep_XF\n    $ cd Deep_XF\n    $ python setup.py install\n\n\nUsing notebook:\n\n.. code:: sh\n\n    !pip install deep-xf\n\n\nUsing conda:\n\n.. code:: bash\n\n\t$ conda install -c conda-forge deep-xf\n\n\nGetting started\n===============\n\n-  **FORECASTING DEMO:**\n\n.. code:: python\n\t\n\t# set model config\n\tselect_model, select_user_path, select_scaler, forecast_window = Forecast.set_model_config(select_model='rnn', select_user_path='./forecast_folder_path/', select_scaler='minmax', forecast_window=1)\n\n\t# select hyperparameters\n\thidden_dim, layer_dim, batch_size, dropout, n_epochs, learning_rate, weight_decay = Forecast.hyperparameter_config(hidden_dim=64, \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlayer_dim = 3, batch_size=64, dropout = 0.2,                                \t\t\t\t\t\t\t\t\t\t\t\t\tn_epochs = 30, learning_rate = 1e-3, weight_decay = 1e-6)\n\n\t# train model\n\topt, scaler = Forecast.train(df=df_full_features, target_col='value', split_ratio=0.2, select_model=select_model,              select_scaler=select_scaler, forecast_window=forecast_window, batch_size=batch_size, hidden_dim=hidden_dim, layer_dim=layer_dim,dropout=dropout, n_epochs=n_epochs, learning_rate=learning_rate, weight_decay=weight_decay)\n\n\t# forecast for user selected period\n\tforecasted_data, ff_full_features, ff_full_features_ = Forecast.forecast(model_df, ts, fc, opt, scaler, period=25, fq='1h', select_scaler=select_scaler,)\n\n\t# interpret the forecasting result\n\tHelper.explainable_forecast(df_full_features, ff_full_features_, fc, specific_prediction_sample_to_explain=df_full_features.shape[0]+2, input_label_index_value=0, num_labels=1)\n\nExample Illustration\n--------------------\n\n.. code:: python\n\n    __author__ = 'Ajay Arunachalam'\n    __version__ = '0.0.1'\n    __date__ = '7.11.2021'\n\n\n\tfrom deep_xf.main import *\n\tfrom deep_xf.dpp import *\n\tfrom deep_xf.forecast_ml import *\n\tfrom deep_xf.forecast_ml_extension import *\n\tfrom deep_xf.stats import *\n\tfrom deep_xf.utility import *\n\tfrom deep_xf.denoise import *\n\tfrom deep_xf.similarity import *\n\tdf = pd.read_csv('../data/PJME_hourly.csv')\n\tprint(df.shape)\n\tprint(df.columns)\n\t# set variables\n\tts, fc = Forecast.set_variable(ts='Datetime', fc='PJME_MW')\n\t# get variables\n\tmodel_df, orig_df = Helper.get_variable(df, ts, fc)\n\t# EDA\n\tExploratoryDataAnalysis.plot_dataset(df=model_df,fc=fc, title='PJM East (PJME) Region: estimated energy consumption in Megawatts (MW)')\n\t# Feature Engg\n\tdf_full_features = Features.generate_date_time_features_hour(model_df, ['hour','month','day','day_of_week','week_of_year'])\n\t# generating cyclic features\n\tdf_full_features = Features.generate_cyclic_features(df_full_features, 'hour', 24, 0)\n\tdf_full_features = Features.generate_cyclic_features(df_full_features, 'day_of_week', 7, 0)\n\tdf_full_features = Features.generate_cyclic_features(df_full_features, 'month', 12, 1)\n\tdf_full_features = Features.generate_cyclic_features(df_full_features, 'week_of_year', 52, 0)\n\t# holiday feature\n\tdf_full_features = Features.generate_other_related_features(df=df_full_features)\n\tselect_model, select_user_path, select_scaler, forecast_window = Forecast.set_model_config(select_model='rnn', select_user_path='./forecast_folder_path/', select_scaler='minmax', forecast_window=1)\n\n\thidden_dim, layer_dim, batch_size, dropout, n_epochs, learning_rate, weight_decay = Forecast.hyperparameter_config(hidden_dim=64, \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlayer_dim = 3, batch_size=64, dropout = 0.2,                                \t\t\t\t\t\t\t\t\t\t\t\t\tn_epochs = 30, learning_rate = 1e-3, weight_decay = 1e-6)\n\n\topt, scaler = Forecast.train(df=df_full_features, target_col='value', split_ratio=0.2, select_model=select_model,              select_scaler=select_scaler, forecast_window=forecast_window, batch_size=batch_size, hidden_dim=hidden_dim, layer_dim=layer_dim,dropout=dropout, n_epochs=n_epochs, learning_rate=learning_rate, weight_decay=weight_decay)\n\n\tforecasted_data, ff_full_features, ff_full_features_ = Forecast.forecast(model_df, ts, fc, opt, scaler, period=25, fq='1h', select_scaler=select_scaler,)\n\n\tHelper.explainable_forecast(df_full_features, ff_full_features_, fc, specific_prediction_sample_to_explain=df.shape[0]+1, input_label_index_value=0, num_labels=1)\n\n-  **NOWCASTING DEMO:**\n\n.. code:: python\n\t\n\t# set model config\n\tselect_model, select_user_path, select_scaler, forecast_window = Forecast.set_model_config(select_model='em', select_user_path='./forecast_folder_path/', select_scaler='minmax', forecast_window=5)\n\n\t# nowcast for user selected window\n\tnowcast_full_data, nowcast_pred_data = EMModel.nowcast(df_full_features, ts, fc, period=5, fq='1h', forecast_window=forecast_window, \tselect_model=select_model)\n\n\t# interpret the nowcasting model result\n\tEMModel.explainable_nowcast(df_full_features, nowcast_pred_data, fc, specific_prediction_sample_to_explain=df.shape[0]+2, input_label_index_value=0, num_labels=1)\n\n\nExample Illustration\n--------------------\n\n.. code:: python\n\n    __author__ = 'Ajay Arunachalam'\n    __version__ = '0.0.1'\n    __date__ = '7.11.2021'\n\n\tfrom deep_xf.main import *\n\tfrom deep_xf.dpp import *\n\tfrom deep_xf.forecast_ml import *\n\tfrom deep_xf.forecast_ml_extension import *\n\tfrom deep_xf.stats import *\n\tfrom deep_xf.utility import *\n\tfrom deep_xf.denoise import *\n\tfrom deep_xf.similarity import *\n\tdf = pd.read_csv('./data/PJME_hourly.csv')\n\t# set variables\n\tts, fc = Forecast.set_variable(ts='Datetime', fc='PJME_MW')\n\t# get variables\n\tmodel_df, orig_df = Helper.get_variable(df, ts, fc)\n\tselect_model, select_user_path, select_scaler, forecast_window = Forecast.set_model_config(select_model='em', select_user_path='./forecast_folder_path/', select_scaler='minmax', forecast_window=5)\n\tdf_full_features = Features.generate_date_time_features_hour(model_df, ['hour','month','day','day_of_week','week_of_year'])\n\t# generating cyclic features\n\tdf_full_features = Features.generate_cyclic_features(df_full_features, 'hour', 24, 0)\n\tdf_full_features = Features.generate_cyclic_features(df_full_features, 'day_of_week', 7, 0)\n\tdf_full_features = Features.generate_cyclic_features(df_full_features, 'month', 12, 1)\n\tdf_full_features = Features.generate_cyclic_features(df_full_features, 'week_of_year', 52, 0)\n\tdf_full_features = Features.generate_other_related_features(df=df_full_features)\n\tnowcast_full_data, nowcast_pred_data = EMModel.nowcast(df_full_features, ts, fc, period=5, fq='1h', forecast_window=forecast_window, select_model=select_model)\n\tEMModel.explainable_nowcast(df_full_features, nowcast_pred_data, fc, specific_prediction_sample_to_explain=df.shape[0]+3, input_label_index_value=0, num_labels=1)\n\nTested Demo\n===========\n## Important Links\n------------------\n- Find the forecasting demo here : https://github.com/ajayarunachalam/Deep_XF/blob/main/demo_notebook/Forecast-Demo.py\n- Find the notebook of the nowcasting demo here : https://github.com/ajayarunachalam/Deep_XF/blob/main/demo_notebook/Nowcast-Demo.ipynb\n\n\nLicense\n=======\nCopyright 2021-2022 Ajay Arunachalam \u003cajay.arunachalam08@gmail.com\u003e\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. © 2021 GitHub, Inc.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajayarunachalam%2Fdeep_xf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fajayarunachalam%2Fdeep_xf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajayarunachalam%2Fdeep_xf/lists"}