highFIS is a comprehensive Python package for training and evaluating high-dimensional TSK fuzzy systems, built on PyTorch and compatible with the scikit-learn API.
Project description
highFIS
highFIS is a PyTorch-based framework for high-dimensional Takagi–Sugeno–Kang (TSK) fuzzy systems. It brings differentiable fuzzy inference, numerical stability, and sklearn-compatible estimators to both classification and regression workflows. It also includes DGTSK dynamic-gating models for feature and rule selection in high-dimensional fuzzy systems.
🚀 Quick Start
Install from PyPI:
pip install highfis
Run a classifier:
from highfis import HTSKClassifierEstimator
clf = HTSKClassifierEstimator(
n_mfs=4,
mf_init="kmeans",
epochs=150,
learning_rate=1e-3,
random_state=42,
)
clf.fit(X_train, y_train)
print(f"Test accuracy: {clf.score(X_test, y_test):.4f}")
highFIS works with sklearn.pipeline.Pipeline, GridSearchCV, and
cross_val_score.
Models Available
highFIS offers a family of TSK fuzzy models optimized for different high-dimensional behaviors.
Vanilla TSK— the original Takagi-Sugeno-Kang model with Gaussian MFs, product antecedent aggregation, and sum-based normalization.HTSK— high-dimensional TSK with geometric mean aggregation and log-space normalization to reduce dimensionality bias.LogTSK— log-space defuzzification with temperature scaling for numerically stable high-dimensional aggregation.AYATSK— adaptive Yager aggregation with sum-based consequent normalization.DombiTSK— Dombi t-norm aggregation with first-order consequents and a learnable shape parameter.AdaTSK— adaptive Dombi inference using Composite Gaussian MFs with a positive lower bound.FSRE-AdaTSK— adaptive model with gated feature selection and rule extraction in the consequent.DG-TSK— double-gated training for simultaneous feature selection and rule extraction, followed by first-order fine tuning.DG-ALETSK— DG-based adaptive Ln-Exp softmin with embedded feature and rule gates for sparse high-dimensional modeling.
🔧 What’s Included
Core models
HTSKClassifier,HTSKRegressorTSKClassifier,TSKRegressorDombiTSKClassifier,DombiTSKRegressorAYATSKClassifier,AYATSKRegressorAdaTSKClassifier,AdaTSKRegressorDGALETSKClassifier,DGALETSKRegressorDGTSKClassifier,DGTSKRegressorFSREAdaTSKClassifier,FSREAdaTSKRegressorLogTSKClassifier,LogTSKRegressor
Estimator wrappers
HTSKClassifierEstimator,HTSKRegressorEstimatorTSKClassifierEstimator,TSKRegressorEstimatorLogTSKClassifierEstimator,LogTSKRegressorEstimatorAdaTSKClassifierEstimator,AdaTSKRegressorEstimatorAYATSKClassifierEstimator,AYATSKRegressorEstimatorDGALETSKClassifierEstimator,DGALETSKRegressorEstimatorDGTSKClassifierEstimator,DGTSKRegressorEstimatorFSREAdaTSKClassifierEstimator,FSREAdaTSKRegressorEstimator
Building blocks
- Memberships:
GaussianMF,TriangularMF,TrapezoidalMF,BellMF,SigmoidalMF,DiffSigmoidalMF,ProdSigmoidalMF,SShapedMF,LinSShapedMF,ZShapedMF,LinZShapedMF,PiMF,CompositeExponentialMF,GaussianPIMF - Defuzzifiers:
SoftmaxLogDefuzzifier,SumBasedDefuzzifier,LogSumDefuzzifier - T-norms:
prod,min,gmean,dombi,yager,yager_simple,ale_softmin_yager - Rule base strategies:
cartesian,coco,en,custom - Persistence: estimator
.save(path)/.load(path)and versioned checkpoint validation viahighfis.persistence
📚 Documentation
The published documentation is available at https://dcruzf.github.io/highFIS.
Key reference pages:
🤝 Contributing & Development
See the published contribution guide at contributing.
📄 License
Distributed under the GPLv3.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file highfis-0.8.0.tar.gz.
File metadata
- Download URL: highfis-0.8.0.tar.gz
- Upload date:
- Size: 63.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e2544ed6dab0e9e97c013af3e1352ac1f6b893dcfe5d535330b481d8cf61372
|
|
| MD5 |
e445adc9e5263a1bb523e8e40e48cf43
|
|
| BLAKE2b-256 |
a13da2dc5658c836fa8cd052c6d2323fba8342d442e794cea948cacd2e861cbd
|
File details
Details for the file highfis-0.8.0-py3-none-any.whl.
File metadata
- Download URL: highfis-0.8.0-py3-none-any.whl
- Upload date:
- Size: 57.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7fa4da215bff85eacfc9f8cff04fb9eb3748dc65ca8820d79cb26ea542029fa
|
|
| MD5 |
46e7dd8bb0575562e7901379db965a30
|
|
| BLAKE2b-256 |
6c4aa4a22f1d49aeb1caf211812bc83e9e254aed41eb1acae8c5dccb8f153198
|