Skip to main content

striXhooT: Hybrid Generative Model for Regression Tasks

=============================================

StrixHoot

=============================================

Python Version License: MIT

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)

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.

=============================================

ALI BAVARCHIEE

=============================================

| https://github.com/AliBavarchee/ |

| https://www.linkedin.com/in/ali-bavarchee-qip/ |

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)

Source distribution for strixhoot 0.0.9
File Size Uploaded Provenance
strixhoot-0.0.9.tar.gz 17.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for strixhoot 0.0.9
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.0.9 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page