A Python toolkit for introducing missing values into datasets
Project description
Welcome to PyGrinder
a Python toolkit for grinding data beans into the incomplete
PyGrinder is a part of PyPOTS (a Python toolbox for data mining on Partially-Observed Time Series), was called PyCorruptor and separated from PyPOTS for decoupling missingness-creating functionalities from learning algorithms.
In data analysis and modeling, sometimes we may need to corrupt the original data to achieve our goal, for instance, evaluating models' ability to reconstruct corrupted data or assessing the model's performance on only partially-observed data. PyGrinder is such a tool to help you corrupt your data, which provides several patterns to create missing values in the given data.
❖ Usage Examples
PyGrinder now is available on ❗️
Install it with conda install pygrinder
, you may need to specify the channel with option -c conda-forge
or install from PyPI:
pip install pygrinder
or install from source code:
pip install
https://github.com/WenjieDu/PyGrinder/archive/main.zip
import numpy as np
import pygrinder
# given a time-series dataset with 128 samples, each sample with 10 time steps and 36 data features
ts_dataset = np.random.randn(128, 10, 36)
# grind the dataset with MCAR pattern, 10% missing probability, and using 0 to fill missing values
X_intact, X, missing_mask, indicating_mask = pygrinder.mcar(ts_dataset, p=0.1, nan=0)
# grind the dataset with MAR pattern
X_intact, X, missing_mask, indicating_mask = pygrinder.mar_logistic(ts_dataset[:, 0, :], obs_rate=0.1, missing_rate=0.1, nan=0)
# grind the dataset with MNAR pattern
X_intact, X, missing_mask, indicating_mask = pygrinder.mnar_x(ts_dataset, offset=0.1, nan=0)
X_intact, X, missing_mask, indicating_mask = pygrinder.mnar_t(ts_dataset, cycle=20, pos = 10, scale = 3, nan=0)
❖ Citing PyGrinder/PyPOTS
The paper introducing PyPOTS project is available on arXiv at this URL, and we are pursuing to publish it in prestigious academic venues, e.g. JMLR (track for Machine Learning Open Source Software). If you use PyGrinder in your work, please cite PyPOTS project as below and 🌟star this repository to make others notice this library. 🤗 Thank you!
@article{du2023PyPOTS,
title={{PyPOTS: a Python toolbox for data mining on Partially-Observed Time Series}},
author={Wenjie Du},
year={2023},
eprint={2305.18811},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2305.18811},
doi={10.48550/arXiv.2305.18811},
}
Wenjie Du. (2023). PyPOTS: a Python toolbox for data mining on Partially-Observed Time Series. arXiv, abs/2305.18811.https://arxiv.org/abs/2305.18811
or
@inproceedings{du2023PyPOTS,
title={{PyPOTS: a Python toolbox for data mining on Partially-Observed Time Series}},
booktitle={9th SIGKDD workshop on Mining and Learning from Time Series (MiLeTS'23)},
author={Wenjie Du},
year={2023},
url={https://arxiv.org/abs/2305.18811},
}
Wenjie Du. (2023). PyPOTS: a Python toolbox for data mining on Partially-Observed Time Series. In 9th SIGKDD workshop on Mining and Learning from Time Series (MiLeTS'23). https://arxiv.org/abs/2305.18811
🏠 Visits
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pygrinder-0.3.tar.gz
.
File metadata
- Download URL: pygrinder-0.3.tar.gz
- Upload date:
- Size: 13.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f59e5cc58fb21f29a11c0739c8367225c7184d9f966dfb581a52f2494373aea7 |
|
MD5 | 4ecb4cf9c7559a9f900a90ce562b2ec4 |
|
BLAKE2b-256 | f5d9f1b62cf4f58db4dd2d5d2e012fadf4e9ead72d2825b87bdbc2fe3b1048ac |
File details
Details for the file pygrinder-0.3-py3-none-any.whl
.
File metadata
- Download URL: pygrinder-0.3-py3-none-any.whl
- Upload date:
- Size: 16.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4cb6ef4fd944ff3c226d5f9ed012811377f123a02917e9878ef465a0e138b1d2 |
|
MD5 | 790f56a036757743c603797aa59b1dd0 |
|
BLAKE2b-256 | accda78f0f086f51cc3807607b434414135052b16bee32ddf40f92b164be1d7e |