Metadata-Version: 2.4
Name: tranpy-ai
Version: 0.1.3
Summary: Power System Transient Stability Analysis with Machine Learning and Explainability
Author-email: Mahmoud Draz <m.draz@tu-berlin.de>
License: MIT
Project-URL: Homepage, https://github.com/mahmouddraz/tranpy
Project-URL: Documentation, https://mahmouddraz.github.io/tranpy
Project-URL: Repository, https://github.com/mahmouddraz/tranpy
Project-URL: Issues, https://github.com/mahmouddraz/tranpy/issues
Project-URL: Changelog, https://github.com/mahmouddraz/tranpy/releases
Keywords: power-system,stability-analysis,machine-learning,explainability,transient-stability
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: numpy>=1.20.0
Requires-Dist: pandas>=1.3.0
Requires-Dist: scikit-learn>=1.0.0
Requires-Dist: pyyaml>=5.4.0
Requires-Dist: matplotlib>=3.4.0
Requires-Dist: requests>=2.25.0
Requires-Dist: gdown>=5.0.0
Requires-Dist: seaborn>=0.13.2
Provides-Extra: explainability
Requires-Dist: lime>=0.2.0; extra == "explainability"
Requires-Dist: shap>=0.40.0; extra == "explainability"
Requires-Dist: dalex>=1.4.0; extra == "explainability"
Provides-Extra: explainability-lite
Requires-Dist: lime>=0.2.0; extra == "explainability-lite"
Provides-Extra: neural
Requires-Dist: tensorflow>=2.8.0; extra == "neural"
Provides-Extra: boosting
Requires-Dist: xgboost>=1.5.0; extra == "boosting"
Requires-Dist: lightgbm>=3.3.0; extra == "boosting"
Provides-Extra: all
Requires-Dist: lime>=0.2.0; extra == "all"
Requires-Dist: shap>=0.40.0; extra == "all"
Requires-Dist: dalex>=1.4.0; extra == "all"
Requires-Dist: xgboost>=1.5.0; extra == "all"
Requires-Dist: lightgbm>=3.3.0; extra == "all"
Requires-Dist: tensorflow>=2.8.0; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=3.0.0; extra == "dev"
Requires-Dist: jupyter>=1.0.0; extra == "dev"
Requires-Dist: ipykernel>=6.0.0; extra == "dev"
Requires-Dist: black>=22.0.0; extra == "dev"
Requires-Dist: isort>=5.10.0; extra == "dev"
Requires-Dist: nbconvert>=7.0.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx>=5.0.0; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=1.0.0; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints>=1.19.0; extra == "docs"
Requires-Dist: myst-parser>=0.18.0; extra == "docs"

# TranPy

Machine learning tool for power system transient stability analysis with a simple, sklearn-style API.

## Quick Start

```bash
pip install tranpy
```

```python
from tranpy.datasets import load_newengland
from tranpy.models import SVMClassifier

X_train, X_test, y_train, y_test = load_newengland(test_size=0.2, random_state=42)
model = SVMClassifier(kernel='rbf')
model.fit(X_train, y_train)

accuracy = model.score(X_test, y_test)
print(f"Accuracy: {accuracy:.4f}")

results = model.evaluate(X_test, y_test, verbose=True)
```

### XAI 

```python
from tranpy.explainers import SHAPExplainer

# Create explainer
explainer = SHAPExplainer(model, X_train, X_test)

# Generate global explanations
shap_values = explainer.explain_global()

# Visualize
explainer.plot_summary(save_path='shap_summary.png')

# Important features
top_features = explainer.get_top_features(n_features=10)
print(top_features)
``

Check out the [examples/](examples/) directory for Jupyter notebooks:

- `01_load_dataset.ipynb`
- `02_train_models.ipynb`
- `03_explainability.ipynb`
- `04_generate_data.ipynb` - > Requires PowerFactory local installation


