Metadata-Version: 2.4
Name: dlspit
Version: 2.0.1
Summary: A multi-domain experiment package: Deep Learning (MLP, CNN, ResNet, RNN, LSTM, Transformer, GAN, VAE) and ML ESE Lab (regression, SVM, decision tree, random forest, XGBoost, k-means).
Project-URL: Repository, https://github.com/PrathamShid07/DL_Expts
Project-URL: Issues, https://github.com/PrathamShid07/DL_Expts/issues
Author: DLSPIT Team Open Source Contributor
License: MIT
Keywords: clustering,cnn,decision-tree,deep-learning,gan,kmeans,lstm,machine-learning,mlp,neural-network,pytorch,random-forest,resnet,rnn,sklearn,svm,tensorflow,transformer,vae,xgboost
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Education
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Requires-Dist: numpy>=1.24
Provides-Extra: all
Requires-Dist: matplotlib>=3.6; extra == 'all'
Requires-Dist: pandas>=1.5; extra == 'all'
Requires-Dist: scikit-learn>=1.3; extra == 'all'
Requires-Dist: seaborn>=0.12; extra == 'all'
Requires-Dist: tensorflow>=2.12; extra == 'all'
Requires-Dist: xgboost>=1.7; extra == 'all'
Provides-Extra: dev
Requires-Dist: build>=1.0; extra == 'dev'
Requires-Dist: hatchling>=1.18; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: twine>=5.0; extra == 'dev'
Provides-Extra: dl
Requires-Dist: tensorflow>=2.12; extra == 'dl'
Provides-Extra: ml-ese
Requires-Dist: matplotlib>=3.6; extra == 'ml-ese'
Requires-Dist: pandas>=1.5; extra == 'ml-ese'
Requires-Dist: scikit-learn>=1.3; extra == 'ml-ese'
Requires-Dist: seaborn>=0.12; extra == 'ml-ese'
Requires-Dist: xgboost>=1.7; extra == 'ml-ese'
Provides-Extra: sklearn
Requires-Dist: scikit-learn>=1.3; extra == 'sklearn'
Description-Content-Type: text/markdown

# dlspit v2.0.0 — Multi-Domain Experiment Package

A pip-installable multi-domain experiment viewer and runner covering:

- **DL** — Deep Learning: MLP, Backpropagation, CNN, ResNet, RNN, LSTM,
  Transformer, GAN, VAE, Transfer Learning
- **ML-ESE** — Machine Learning ESE Lab: EDA, Linear Regression, Decision
  Tree, SVM, SVM RBF, Random Forest, XGBoost, K-Means Clustering

By default, `dlspit` **prints the source code** of the selected experiment.
Use `--run` to actually execute it.

---

## Installation

```bash
# Core only (source viewing works for all experiments)
pip install dlspit

# With DL dependencies (tensorflow — required to --run DL experiments)
pip install "dlspit[dl]"

# With ML-ESE dependencies (scikit-learn, pandas, xgboost, …)
pip install "dlspit[ml-ese]"

# Everything
pip install "dlspit[all]"
```

---

## CLI Usage

### List commands

```bash
# Show available domains
dlspit --list

# List all DL experiments
dlspit DL --list

# List all ML-ESE experiments
dlspit ML-ESE --list
```

### Deep Learning experiments

```bash
# Print source code (default)
dlspit DL 1aMP_Xor
dlspit DL 4CNN 5Resnet 6RNN

# Execute an experiment
dlspit DL --run 1aMP_Xor
dlspit DL --run 4CNN

# As a module
python -m dl_experiments DL 1aMP_Xor
python -m dl_experiments DL --run 4CNN
```

### ML-ESE experiments

```bash
# Print source code (default)
dlspit ML-ESE linear_regression
dlspit ML-ESE decision_tree

# Execute an experiment
dlspit ML-ESE --run linear_regression
dlspit ML-ESE --run kmeans_clustering

# As a module
python -m dl_experiments ML-ESE linear_regression
python -m dl_experiments ML-ESE --run random_forest
```

---

## DL Experiment Index

| Key                  | Description                                         |
|----------------------|-----------------------------------------------------|
| `1aMP_Xor`           | McCulloch-Pitts neuron — XOR & XNOR gates           |
| `1bMP_Binary`        | MLP binary classifier (XNOR via backprop)           |
| `2aLoss_Activation`  | Activation & loss function comparison on MNIST      |
| `2bBPN`              | Backpropagation on MNIST (SGD feedforward NN)       |
| `3regularization`    | L2 regularisation + Dropout on MNIST                |
| `4CNN`               | Convolutional Neural Network on MNIST               |
| `5Resnet`            | ResNet50 transfer learning on CIFAR-10              |
| `6RNN`               | Simple RNN for IMDB sentiment analysis              |
| `7Lstm`              | Stacked LSTM for time-series prediction             |
| `8Transform`         | Transformer encoder for IMDB text classification    |
| `9aVAE`              | Variational Autoencoder on MNIST                    |
| `9bGAN`              | Generative Adversarial Network on MNIST             |
| `10Transfer`         | MobileNetV2 transfer learning on CIFAR-10           |

---

## ML-ESE Experiment Index

| Key                  | Description                                                 | Dataset           |
|----------------------|-------------------------------------------------------------|-------------------|
| `eda_titanic`        | EDA & data visualisation on the Titanic dataset             | Seaborn built-in  |
| `linear_regression`  | Linear Regression — predicting student marks                | `dataset.csv`     |
| `decision_tree`      | Decision Tree Classifier — sports match prediction          | Inline            |
| `svm_classifier`     | SVM Classifier — student pass/fail prediction               | Inline            |
| `svm_rbf_kernel`     | SVM with RBF Kernel — non-linear XOR-like classification    | Inline            |
| `random_forest`      | Random Forest Classifier — loan approval prediction         | `loan_approval_dataset.csv` |
| `xgboost_classifier` | XGBoost Classifier — loan approval prediction               | `loan_approval_dataset.csv` |
| `kmeans_clustering`  | K-Means Clustering — customer segmentation (Elbow Method)   | `seg.csv`         |

> **Note**: Experiments marked with a CSV dataset require that file to be
> present in your **current working directory** when using `--run`.
> Source code display (`dlspit ML-ESE <key>`) always works without any CSV.

---

## Python API

```python
# DL domain
from dl_experiments.dl import list_experiments, show_source, run_experiment

print(list_experiments())          # ['1aMP_Xor', '1bMP_Binary', ...]
show_source("4CNN")                # print source, never executes
run_experiment("4CNN")             # executes (requires tensorflow)

# ML-ESE domain
from dl_experiments.ml_ese import list_experiments, show_source, run_experiment

print(list_experiments())          # ['eda_titanic', 'linear_regression', ...]
show_source("linear_regression")   # print source, never executes
run_experiment("decision_tree")    # executes (requires scikit-learn)
```

---

## Requirements

| Group    | Packages                                          | Required for               |
|----------|---------------------------------------------------|----------------------------|
| core     | `numpy>=1.24`                                     | Always                     |
| `dl`     | `tensorflow>=2.12`                                | Running DL experiments     |
| `ml-ese` | `scikit-learn`, `pandas`, `matplotlib`, `seaborn`, `xgboost` | Running ML-ESE experiments |

---

## License

MIT