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.
- 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.
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.
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.
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.
- Documentation: hwm.readthedocs.io
- Source Code: GitHub Repository
- Issue Tracker: GitHub Issues
- Download: PyPI Downloads
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.
- Laurent Kouadio
- Email: etanoyau@gmail.com
HWM is licensed under the BSD-3-Clause license. See the LICENSE file for details.
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.