# PDStoolkit
### Table of Contents
1. [Project Description](#desc)
2. [Documentation & Tutorials](#docs)
3. [Package Contents](#content)
4. [Installation](#install)
5. [Usage](#usage)
## Description <a name="desc"></a>
The PDStoolkit (Process Data Science Toolkit) package has been created to provide easy-to-use modules to help quickly build data-based solutions for process systems such as those for process monitoring, modeling, fault diagnosis, system identification, etc. Current modules in the package are wrappers around pre-existing Sklearn's classes and provide several additional methods to facilitate a process data scientist's job. Details on these are provided in the following section. More modules relevant for process data science will be added over time.
## Documentation and Tutorials <a name="docs"></a>
- PDStoolkit_Manual.pdf (in Github repository) provides some quick information on the algorithms implemented in the package
- Class documentations are provided in the 'docs' folder in Github (Source Code) repository
- Tutorials are provided in the 'tutorials' folder in Github (Source Code) repository
- The blog post (https://mlforpse.com/intro-to-pdstoolkit-python-package/) gives some perspective behind the motivation for development of PDStoolkit package
- Theoretical and conceptual details on specific algorithms can be found in our book (https://leanpub.com/machineLearningPSE)
## Package Contents <a name="content"></a>
The main modules in the package currently are:
- **PDS_PCA: Principal Component analysis for Process Data Science**
- This class is a child of [sklearn.decomposition.PCA class](http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html)
- The following additional methods are provided
- *computeMetrics*: computes the monitoring indices (Q or SPE, T2) for the supplied data
- *computeThresholds*: computes the thresholds / control limits for the monitoring indices from training data
- *draw_monitoring_charts*: draws the monitoring charts for the training or test data
- *detect_abnormalities*: detects if the observations are abnormal or normal samples
- *get_contributions*: returns abnormality contributions for T2 and SPE for an observation sample
- **PDS_PLS: Partial Least Squares regression for Process Data Science**
- This class is a child of [sklearn.cross_decomposition.PLSRegression class](http://scikit-learn.org/stable/modules/generated/sklearn.cross_decomposition.PLSRegression.html)
- The following additional methods are provided
- *computeMetrics*: computes the monitoring indices (SPEx, SPEy, T2) for the supplied data
- *computeThresholds*: computes the thresholds / control limits for the monitoring indices from training data
- *draw_monitoring_charts*: draws the monitoring charts for the training or test data
- *detect_abnormalities*: detects if the observations are abnormal or normal samples
- **PDS_DPCA: Dynamic Principal Component analysis for Process Data Science**
- This class is a child of [sklearn.decomposition.PCA class](http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html)
- The following additional methods are provided
- *computeMetrics*: computes the monitoring indices (Q or SPE, T2) for the supplied data
- *computeThresholds*: computes the thresholds / control limits for the monitoring indices from training data
- *draw_monitoring_charts*: draws the monitoring charts for the training or test data
- *detect_abnormalities*: detects if the observations are abnormal or normal samples
- **PDS_DPLS: Dynamic Partial Least Squares regression for Process Data Science**
- This class is a child of [sklearn.cross_decomposition.PLSRegression class](http://scikit-learn.org/stable/modules/generated/sklearn.cross_decomposition.PLSRegression.html)
- The following additional methods are provided
- *computeMetrics*: computes the monitoring indices (SPEx, SPEy, T2) for the supplied data
- *computeThresholds*: computes the thresholds / control limits for the monitoring indices from training data
- *draw_monitoring_charts*: draws the monitoring charts for the training or test data
- *detect_abnormalities*: detects if the observations are abnormal or normal samples
- **PDS_CVA: Canonical Variate Analysis for Process Data Science**
- This class is written from scratch
- The following additional methods are provided
- *computeMetrics*: computes the monitoring indices (Ts2, Te2, Q) for the supplied data
- *computeThresholds*: computes the thresholds / control limits for the monitoring indices from training data
- *draw_monitoring_charts*: draws the monitoring charts for the training or test data
- *detect_abnormalities*: detects if the observations are abnormal or normal samples
## Instalation <a name="install"></a>
Installation from Pypi:
pip install PDStoolkit
Import modules
from PDStoolkit import PDS_PCA
from PDStoolkit import PDS_PLS
## Usage <a name="usage"></a>
The following code builds a PCA-based process monitoirng model using PDS-PCA class and uses it for subsequent fault detectiona and fault diagnosis on test data. For details on data and results, see the ProcessMonitoring_PCA notebook in the tutorials folder.
```
# imports
from PDStoolkit import PDS_PCA
# fit PDS_PCA model
pca = PDS_PCA()
pca.fit(data_train_normal, autoFindNLatents=True)
T2_train, SPE_train = pca.computeMetrics(data_train_normal, isTrainingData=True)
T2_CL, SPE_CL = pca.computeThresholds(method='statistical', alpha=0.01)
pca.draw_monitoring_charts(title='training data')
# fault detectiona and fault diagnosis on test data
pca.detect_abnormalities(data_test_normal, title='test data')
T2_contri, SPE_contri = pca.get_contributions(data_test_normal)
```
### License
All code is provided under a BSD 3-clause license. See LICENSE file for more information.
Raw data
{
"_id": null,
"home_page": "https://mlforpse.com/intro-to-pdstoolkit-python-package/",
"name": "PDStoolkit",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "",
"author": "Ankur Kumar",
"author_email": "MLforPSE@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/f4/24/83f7e283b5ffde97580676ea2b48012054b005111e650799349c76c52e42/PDStoolkit-0.0.2.tar.gz",
"platform": null,
"description": "# PDStoolkit\r\n\r\n### Table of Contents\r\n1. [Project Description](#desc)\r\n2. [Documentation & Tutorials](#docs)\r\n3. [Package Contents](#content)\r\n4. [Installation](#install)\r\n5. [Usage](#usage)\r\n\r\n## Description <a name=\"desc\"></a>\r\nThe PDStoolkit (Process Data Science Toolkit) package has been created to provide easy-to-use modules to help quickly build data-based solutions for process systems such as those for process monitoring, modeling, fault diagnosis, system identification, etc. Current modules in the package are wrappers around pre-existing Sklearn's classes and provide several additional methods to facilitate a process data scientist's job. Details on these are provided in the following section. More modules relevant for process data science will be added over time.\r\n\r\n## Documentation and Tutorials <a name=\"docs\"></a>\r\n- PDStoolkit_Manual.pdf (in Github repository) provides some quick information on the algorithms implemented in the package\r\n- Class documentations are provided in the 'docs' folder in Github (Source Code) repository\r\n- Tutorials are provided in the 'tutorials' folder in Github (Source Code) repository\r\n- The blog post (https://mlforpse.com/intro-to-pdstoolkit-python-package/) gives some perspective behind the motivation for development of PDStoolkit package \r\n- Theoretical and conceptual details on specific algorithms can be found in our book (https://leanpub.com/machineLearningPSE) \r\n\r\n## Package Contents <a name=\"content\"></a>\r\nThe main modules in the package currently are:\r\n\r\n - **PDS_PCA: Principal Component analysis for Process Data Science**\r\n - This class is a child of [sklearn.decomposition.PCA class](http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html) \r\n - The following additional methods are provided\r\n - *computeMetrics*: computes the monitoring indices (Q or SPE, T2) for the supplied data\r\n - *computeThresholds*: computes the thresholds / control limits for the monitoring indices from training data\r\n - *draw_monitoring_charts*: draws the monitoring charts for the training or test data\r\n - *detect_abnormalities*: detects if the observations are abnormal or normal samples\r\n - *get_contributions*: returns abnormality contributions for T2 and SPE for an observation sample\r\n\t \r\n - **PDS_PLS: Partial Least Squares regression for Process Data Science**\r\n - This class is a child of [sklearn.cross_decomposition.PLSRegression class](http://scikit-learn.org/stable/modules/generated/sklearn.cross_decomposition.PLSRegression.html) \r\n - The following additional methods are provided\r\n - *computeMetrics*: computes the monitoring indices (SPEx, SPEy, T2) for the supplied data\r\n - *computeThresholds*: computes the thresholds / control limits for the monitoring indices from training data\r\n - *draw_monitoring_charts*: draws the monitoring charts for the training or test data\r\n - *detect_abnormalities*: detects if the observations are abnormal or normal samples\r\n\t \r\n - **PDS_DPCA: Dynamic Principal Component analysis for Process Data Science**\r\n - This class is a child of [sklearn.decomposition.PCA class](http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html) \r\n - The following additional methods are provided\r\n - *computeMetrics*: computes the monitoring indices (Q or SPE, T2) for the supplied data\r\n - *computeThresholds*: computes the thresholds / control limits for the monitoring indices from training data\r\n - *draw_monitoring_charts*: draws the monitoring charts for the training or test data\r\n - *detect_abnormalities*: detects if the observations are abnormal or normal samples\r\n \r\n - **PDS_DPLS: Dynamic Partial Least Squares regression for Process Data Science**\r\n - This class is a child of [sklearn.cross_decomposition.PLSRegression class](http://scikit-learn.org/stable/modules/generated/sklearn.cross_decomposition.PLSRegression.html) \r\n - The following additional methods are provided\r\n - *computeMetrics*: computes the monitoring indices (SPEx, SPEy, T2) for the supplied data\r\n - *computeThresholds*: computes the thresholds / control limits for the monitoring indices from training data\r\n - *draw_monitoring_charts*: draws the monitoring charts for the training or test data\r\n - *detect_abnormalities*: detects if the observations are abnormal or normal samples\r\n \r\n - **PDS_CVA: Canonical Variate Analysis for Process Data Science**\r\n - This class is written from scratch \r\n - The following additional methods are provided\r\n - *computeMetrics*: computes the monitoring indices (Ts2, Te2, Q) for the supplied data\r\n - *computeThresholds*: computes the thresholds / control limits for the monitoring indices from training data\r\n - *draw_monitoring_charts*: draws the monitoring charts for the training or test data\r\n - *detect_abnormalities*: detects if the observations are abnormal or normal samples\r\n \r\n## Instalation <a name=\"install\"></a>\r\nInstallation from Pypi:\r\n\r\n pip install PDStoolkit\r\n\r\nImport modules\r\n\r\n from PDStoolkit import PDS_PCA\r\n from PDStoolkit import PDS_PLS\r\n\r\n## Usage <a name=\"usage\"></a>\r\nThe following code builds a PCA-based process monitoirng model using PDS-PCA class and uses it for subsequent fault detectiona and fault diagnosis on test data. For details on data and results, see the ProcessMonitoring_PCA notebook in the tutorials folder.\r\n\r\n```\r\n# imports\r\nfrom PDStoolkit import PDS_PCA\r\n\r\n# fit PDS_PCA model\r\npca = PDS_PCA()\r\npca.fit(data_train_normal, autoFindNLatents=True)\r\n\r\nT2_train, SPE_train = pca.computeMetrics(data_train_normal, isTrainingData=True)\r\nT2_CL, SPE_CL = pca.computeThresholds(method='statistical', alpha=0.01)\r\npca.draw_monitoring_charts(title='training data')\r\n\r\n# fault detectiona and fault diagnosis on test data\r\npca.detect_abnormalities(data_test_normal, title='test data')\r\nT2_contri, SPE_contri = pca.get_contributions(data_test_normal)\r\n```\r\n \r\n### License\r\nAll code is provided under a BSD 3-clause license. See LICENSE file for more information.\r\n",
"bugtrack_url": null,
"license": "",
"summary": "A Python package to facilitate building process data science solutions including process modeling, monitoring, fault diagnosis, etc.",
"version": "0.0.2",
"project_urls": {
"Homepage": "https://mlforpse.com/intro-to-pdstoolkit-python-package/",
"Source Code:": "https://github.com/ML-PSE/PDStoolkit-Python-Package"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8318d32d801f86c65fb4d76b11ac2b671ba4a8b530009def81cb4806335fea83",
"md5": "1257bf5d027b11e6e299d3a816000269",
"sha256": "54d87f1801edba95de6d342340868d62024ab73cafb9fe9ef8a11a69d2feb87f"
},
"downloads": -1,
"filename": "PDStoolkit-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1257bf5d027b11e6e299d3a816000269",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 26607,
"upload_time": "2023-07-24T21:06:17",
"upload_time_iso_8601": "2023-07-24T21:06:17.409211Z",
"url": "https://files.pythonhosted.org/packages/83/18/d32d801f86c65fb4d76b11ac2b671ba4a8b530009def81cb4806335fea83/PDStoolkit-0.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f42483f7e283b5ffde97580676ea2b48012054b005111e650799349c76c52e42",
"md5": "05eb019b71b31650de1af573fd9fb508",
"sha256": "5c51496d3a28d251bd5c67e6a3224a2fbf9158709682904d17254765e9bb46ef"
},
"downloads": -1,
"filename": "PDStoolkit-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "05eb019b71b31650de1af573fd9fb508",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 17575,
"upload_time": "2023-07-24T21:06:18",
"upload_time_iso_8601": "2023-07-24T21:06:18.794350Z",
"url": "https://files.pythonhosted.org/packages/f4/24/83f7e283b5ffde97580676ea2b48012054b005111e650799349c76c52e42/PDStoolkit-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-24 21:06:18",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ML-PSE",
"github_project": "PDStoolkit-Python-Package",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pdstoolkit"
}