Skip to main content

Adaptive Hammerstein-Wiener Modeling Toolkit

Project description

HWM: Adaptive Hammerstein-Wiener Modeling Toolkit

License
PyPI version
Documentation Status

HWM is a Python toolkit for adaptive dynamic system modeling, designed to capture complex nonlinear and linear relationships in data through the Hammerstein-Wiener architecture. With a flexible, modular design, HWM integrates seamlessly with Scikit-learn, enabling streamlined workflows for regression, classification, and time-series forecasting tasks.

🚀 Key Features

  • Adaptive Hammerstein-Wiener Models: Supports both regression and classification with customizable nonlinear and dynamic components.
  • Time-Series and Dynamic System Modeling: Tools for handling sequence-based and time-dependent data.
  • Scikit-Learn Compatible API: Designed to integrate easily with Scikit-learn workflows.
  • Flexible Metrics and Utilities: Custom metrics like prediction_stability_score and twa_score for model evaluation, along with data handling utilities.

📦 Installation

HWM requires Python 3.9 or later. Install it from PyPI using pip:

pip install hwm

For detailed installation instructions, refer to the Installation Guide.

🏁 Getting Started

🔍 Example: Classification with Hammerstein-Wiener Model

import numpy as np
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from hwm.estimators import HammersteinWienerClassifier
from hwm.metrics import prediction_stability_score

# Generate synthetic data
X, y = make_classification(n_samples=1000, n_features=20)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# Initialize the model
hw_model = HammersteinWienerClassifier(
    nonlinear_input_estimator=StandardScaler(),
    nonlinear_output_estimator=StandardScaler(),
    p=2,
    loss="cross_entropy"
)

# Train and evaluate
hw_model.fit(X_train, y_train)
y_pred = hw_model.predict(X_test)
stability_score = prediction_stability_score(y_pred)
print(f"Prediction Stability Score: {stability_score:.4f}")

For more usage examples, see the Examples Page.

📖 Documentation

Comprehensive documentation is available on Read the Docs. Key sections include:

🔗 Project Links

🤝 Contributing

We welcome contributions! Please submit issues or pull requests via our GitHub repository. For major changes, discuss your ideas in the issues section first to align with project goals.

👨‍💼 Maintainers

📝 License

HWM is licensed under the BSD-3-Clause license. See the LICENSE file for details.

🏷️ Keywords

machine learning, dynamic systems, regression,
classification, time-series, Scikit-learn compatible


For additional resources, visit the User Guide and explore our rich tools for dynamic system modeling and time-series analysis. A practical example of network intrusion detection is the use of KDD Cup 1999 dataset.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hwm-1.0.0.tar.gz (81.1 kB view details)

Uploaded Source

Built Distribution

hwm-1.0.0-py3-none-any.whl (80.9 kB view details)

Uploaded Python 3

File details

Details for the file hwm-1.0.0.tar.gz.

File metadata

  • Download URL: hwm-1.0.0.tar.gz
  • Upload date:
  • Size: 81.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for hwm-1.0.0.tar.gz
Algorithm Hash digest
SHA256 693321be6ca3324c4a8ec9b8431d38fbc4ab8f616fe009d293bf9df49bf07f9d
MD5 37fcd20ab59b0b54ca4fafee8472fd75
BLAKE2b-256 6db84faa5bbb896fdaa0950f30dae0bfcf0388b034641d942b3022237c035663

See more details on using hashes here.

File details

Details for the file hwm-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: hwm-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 80.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for hwm-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9c5da53edf14f2cb3e2c3041e99d93b2b0b0e461870c4f022a5726c51723f225
MD5 411165ddd01c2ebdb80fa776c23e68e9
BLAKE2b-256 1598cd31d44ebf77cb1cb025b757008616c3a6d64f1d643c6b89494cb4ba9350

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page