Adaptive Hammerstein-Wiener Modeling Toolkit
Project description
HWM: Adaptive Hammerstein-Wiener Modeling Toolkit
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
andtwa_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:
- API Documentation: Detailed reference for all modules and functions.
- User Guide: Step-by-step guidance for using HWM.
- Installation Guide: Complete installation instructions.
🔗 Project Links
- Documentation: hwm.readthedocs.io
- Source Code: GitHub Repository
- Issue Tracker: GitHub Issues
- Download: PyPI Downloads
🤝 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
- Laurent Kouadio
- Email: etanoyau@gmail.com
📝 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 693321be6ca3324c4a8ec9b8431d38fbc4ab8f616fe009d293bf9df49bf07f9d |
|
MD5 | 37fcd20ab59b0b54ca4fafee8472fd75 |
|
BLAKE2b-256 | 6db84faa5bbb896fdaa0950f30dae0bfcf0388b034641d942b3022237c035663 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c5da53edf14f2cb3e2c3041e99d93b2b0b0e461870c4f022a5726c51723f225 |
|
MD5 | 411165ddd01c2ebdb80fa776c23e68e9 |
|
BLAKE2b-256 | 1598cd31d44ebf77cb1cb025b757008616c3a6d64f1d643c6b89494cb4ba9350 |