Skip to main content

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:

🤝 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.

Metadata

Release files for hwm 1.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hwm 1.1.4
File Size Uploaded
hwm-1.1.4.tar.gz 100.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hwm 1.1.4
File Interpreter ABI Platform
hwm-1.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 199.0 kB

Release files / hwm-1.1.4.tar.gz

Download URL hwm-1.1.4.tar.gz
Size 100.1 kB
Tags Source
SHA-256 checksum
How to use checksums
65d481821c653baff10c617a5acc0e24c9b30ef1e4a61d211b65078725d98856
BLAKE2b-256 checksum
How to use checksums
634c2f65d50130523f2e5b7e9dbe228123d427112d42e71fee3f11d1bf707c88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.13

Release files / hwm-1.1.4-py3-none-any.whl

Download URL hwm-1.1.4-py3-none-any.whl
Size 98.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4d763cdca14ec7e3588f6ad9b4a8e570a524d62da23775469b3d761292fc4fcb
BLAKE2b-256 checksum
How to use checksums
b46f86381897424ecbc1d5c9a99b173a8964356d68436e6ea46189f3a7431342
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.13

Release history Release notifications | RSS feed

This release

1.1.4 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

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