Metadata-Version: 2.4
Name: EASLT
Version: 0.0.3
Summary: Enhanced Automatic Shifted Log Transformer with Monte Carlo optimization
Home-page: https://github.com/AkmalHusain2003/enhanced-automatic-shifted-log
Author: Muhammad Akmal Husain
Author-email: Muhammad Akmal Husain <akmalhusain2003@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/AkmalHusain2003/enhanced-automatic-shifted-log
Project-URL: Repository, https://github.com/AkmalHusain2003/enhanced-automatic-shifted-log.git
Project-URL: Issues, https://github.com/AkmalHusain2003/enhanced-automatic-shifted-log/issues
Keywords: data-transformation,log-transformation,normality,monte-carlo-optimization,statistical-preprocessing,data-science,machine-learning,numba-acceleration,feng-transformation,adaptive-algorithms
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
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
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.19.0
Requires-Dist: pandas>=1.3.0
Requires-Dist: scikit-learn>=1.0.0
Requires-Dist: scipy>=1.7.0
Requires-Dist: numba>=0.50.0
Provides-Extra: dev
Requires-Dist: pytest>=6.0; extra == "dev"
Requires-Dist: pytest-cov>=2.10; extra == "dev"
Requires-Dist: pytest-xdist>=2.2; extra == "dev"
Requires-Dist: black>=21.0; extra == "dev"
Requires-Dist: flake8>=3.9; extra == "dev"
Requires-Dist: isort>=5.9; extra == "dev"
Requires-Dist: mypy>=0.910; extra == "dev"
Requires-Dist: pre-commit>=2.15; extra == "dev"
Requires-Dist: jupyter>=1.0.0; extra == "dev"
Requires-Dist: matplotlib>=3.3.0; extra == "dev"
Requires-Dist: seaborn>=0.11.0; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest>=6.0; extra == "test"
Requires-Dist: pytest-cov>=2.10; extra == "test"
Requires-Dist: pytest-xdist>=2.2; extra == "test"
Requires-Dist: hypothesis>=6.0; extra == "test"
Provides-Extra: docs
Requires-Dist: sphinx>=4.0; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=1.0; extra == "docs"
Requires-Dist: numpydoc>=1.1; extra == "docs"
Requires-Dist: myst-parser>=0.15; extra == "docs"
Provides-Extra: examples
Requires-Dist: jupyter>=1.0.0; extra == "examples"
Requires-Dist: matplotlib>=3.3.0; extra == "examples"
Requires-Dist: seaborn>=0.11.0; extra == "examples"
Requires-Dist: plotly>=5.0.0; extra == "examples"
Provides-Extra: performance
Requires-Dist: numba>=0.56.0; extra == "performance"
Requires-Dist: llvmlite>=0.39.0; extra == "performance"
Provides-Extra: all
Requires-Dist: pytest>=6.0; extra == "all"
Requires-Dist: pytest-cov>=2.10; extra == "all"
Requires-Dist: pytest-xdist>=2.2; extra == "all"
Requires-Dist: black>=21.0; extra == "all"
Requires-Dist: flake8>=3.9; extra == "all"
Requires-Dist: isort>=5.9; extra == "all"
Requires-Dist: mypy>=0.910; extra == "all"
Requires-Dist: pre-commit>=2.15; extra == "all"
Requires-Dist: jupyter>=1.0.0; extra == "all"
Requires-Dist: matplotlib>=3.3.0; extra == "all"
Requires-Dist: seaborn>=0.11.0; extra == "all"
Requires-Dist: hypothesis>=6.0; extra == "all"
Requires-Dist: sphinx>=4.0; extra == "all"
Requires-Dist: sphinx-rtd-theme>=1.0; extra == "all"
Requires-Dist: numpydoc>=1.1; extra == "all"
Requires-Dist: myst-parser>=0.15; extra == "all"
Requires-Dist: plotly>=5.0.0; extra == "all"
Requires-Dist: numba>=0.56.0; extra == "all"
Requires-Dist: llvmlite>=0.39.0; extra == "all"
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# Enhanced Automatic Shifted Log Transformer (EASLT)

Automatically transform skewed data into more normal distributions using a Monte Carlo–optimized shifted log transformation.

---

## 🚀 Features

- **Works with negative, zero, and positive values**
- **Reduces skewness and kurtosis**
- **Adaptive, data-driven transformation**
- **Multi-test normality assessment**
- **Scikit-learn compatible**
- **Numba-accelerated for speed**

---

## 📦 Installation

```bash
pip install EASLT
```

---

## ⚡ Quick Start

```python
from EASLT import AutomaticShiftedLogTransformer
import numpy as np

# Example skewed data
np.random.seed(42)
data = np.random.exponential(2, (1000, 3))

# Transform
transformer = AutomaticShiftedLogTransformer(mc_iterations=1000, random_state=42)
data_transformed = transformer.fit_transform(data)
```

---

## 📚 How It Works

EASLT:
1. **Detects data complexity** (normal, mild issues, needs transformation)
2. **Applies robust shifting** for negative/zero values
3. **Detects outliers** and optionally winsorizes
4. **Optimizes parameters** via Monte Carlo with Dirichlet sampling
5. **Applies Feng's shifted log transformation**

---

## 📝 License

MIT License © 2025 Muhammad Akmal Husain

## 🔗 Links

- **[GitHub Repository](https://github.com/AkmalHusain2003/enhanced-automatic-shifted-log)**
- **[Documentation](https://github.com/AkmalHusain2003/enhanced-automatic-shifted-log#readme)**
