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 HWClassifier
from hwm.metrics import prediction_stability_score

# Generate synthetic data
X, y = make_classification(n_samples=10000, 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 = HWClassifier(
    nonlinear_input_estimator=StandardScaler(),
    nonlinear_output_estimator=StandardScaler(),
    p=2,
    loss="cross_entropy", 
    max_iter =10 
)

# 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"\nPrediction 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.1.4.tar.gz (100.1 kB view details)

Uploaded Source

Built Distribution

hwm-1.1.4-py3-none-any.whl (98.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hwm-1.1.4.tar.gz
  • Upload date:
  • Size: 100.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.1.4.tar.gz
Algorithm Hash digest
SHA256 65d481821c653baff10c617a5acc0e24c9b30ef1e4a61d211b65078725d98856
MD5 5200a4fa5fed0fdbcaa62dbc83850dc5
BLAKE2b-256 634c2f65d50130523f2e5b7e9dbe228123d427112d42e71fee3f11d1bf707c88

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hwm-1.1.4-py3-none-any.whl
  • Upload date:
  • Size: 98.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.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 4d763cdca14ec7e3588f6ad9b4a8e570a524d62da23775469b3d761292fc4fcb
MD5 70145b0855826f2b296c6e55026caf7d
BLAKE2b-256 b46f86381897424ecbc1d5c9a99b173a8964356d68436e6ea46189f3a7431342

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