striXhooT: Hybrid Generative Model for Regression Tasks
=============================================
striXhooT
striXhooT is a hybrid machine learning package that integrates generative models (CVAE, CGAN) with LightGBM for enhanced predictive modeling. The package is designed for structured datasets where generating synthetic data can improve regression performance.
Features
- Train Conditional Variational Autoencoder (CVAE) and Conditional Generative Adversarial Network (CGAN) models.
- Use generative models to augment training data for better regression performance.
- Implement an optimized LightGBM model with optional hyperparameter tuning.
- Supports PCA and SVD for dimensionality reduction.
- Provides end-to-end orchestration of model training and evaluation.
Installation
To install striXhoot, clone the repository and install dependencies:
# Clone the repository
git clone https://github.com/AliBavarchee/strixhoot.git
cd strixhoot
# Install dependencies
pip install -r requirements.txt
Usage
Below is an example script to train the hybrid model using striXhoot:
import os
import argparse
from strixhoot.trainer import main as train_model
# Define paths
input_path = "input.csv" # Path to the dataset
output_path = "output_results" # Directory to save all models and results
# Define training configuration
config = {
"input_path": input_path,
"output_path": output_path,
"seed": 42, # Set a random seed for reproducibility
"gen_model": "both", # Train both CVAE and CGAN models
"train_generative": True, # Enable training of generative models
"tune_lgbm": False, # Set to True if hyperparameter tuning is needed
"dim_reducer": "pca", # Choose between "pca" or "svd"
"n_iter": 20, # Number of iterations for hyperparameter tuning (only if tune_lgbm=True)
}
# Ensure the output directory exists
os.makedirs(output_path, exist_ok=True)
# Convert dictionary to argparse namespace
args = argparse.Namespace(**config)
# Train the models using the defined configuration
train_model(args)
Configuration Options
| Parameter | Description |
|---|---|
input_path |
Path to the dataset (CSV format) |
output_path |
Directory where results and models will be saved |
seed |
Random seed for reproducibility |
gen_model |
Choose between cvae, cgan, or both |
train_generative |
Boolean flag to enable generative model training |
tune_lgbm |
Boolean flag to enable LightGBM hyperparameter tuning |
dim_reducer |
Choose dimensionality reduction method: pca or svd |
n_iter |
Number of iterations for LightGBM hyperparameter tuning (only if tune_lgbm=True) |
Results and Outputs
After running the script, the following artifacts will be saved in the output_results/ directory:
- Trained CVAE and CGAN models
- Trained LightGBM regressor
- Performance metrics and visualizations (such as
true_vs_pred.png)
Contributor(s)
- Ali Bavarchee (ali.bavarchee@gmail.com)
Configuration
Default parameters can be modified through:
- Command-line arguments
- JSON configuration files
- Python API parameters
License
This project is licensed under the MIT License - see the LICENSE file for details.
=============================================
| https://github.com/AliBavarchee/ |
Metadata
Release files for strixhoot 0.0.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| strixhoot-0.0.9.tar.gz | 17.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| strixhoot-0.0.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.8 kB
Release files / strixhoot-0.0.9.tar.gz
| Download URL | strixhoot-0.0.9.tar.gz |
|---|---|
| Size | 17.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
22b4a23231b229fb42b2cfd2afb8a4a0d9c2f529e94b80f8a74e4eccc76da1e9
|
|
BLAKE2b-256 checksum How to use checksums |
afe980f00254cd2dae69b6ff21e35bd29176a2227365474bd66b03fd8d9f486a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.7
|
Release files / strixhoot-0.0.9-py3-none-any.whl
| Download URL | strixhoot-0.0.9-py3-none-any.whl |
|---|---|
| Size | 21.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
856ec1fbdea38f8e7860e41f37f0b70394dc8791a3e90bf77b94cf3cd01cb766
|
|
BLAKE2b-256 checksum How to use checksums |
0efa2754517252cdf6b1ecb4f1bbc5eb1e62415363c202c421e6cf73a2e82f4f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.7
|
Security for strixhoot 0.0.9
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.