Skip to main content

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

CI Documentation DOI PyPI - Python Version PyPI - Version PyPI - License

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, HTSKRegressor
  • TSKClassifier, TSKRegressor
  • DombiTSKClassifier, DombiTSKRegressor
  • AYATSKClassifier, AYATSKRegressor
  • AdaTSKClassifier, AdaTSKRegressor
  • DGALETSKClassifier, DGALETSKRegressor
  • DGTSKClassifier, DGTSKRegressor
  • FSREAdaTSKClassifier, FSREAdaTSKRegressor
  • LogTSKClassifier, LogTSKRegressor

Estimator wrappers

  • HTSKClassifierEstimator, HTSKRegressorEstimator
  • TSKClassifierEstimator, TSKRegressorEstimator
  • LogTSKClassifierEstimator, LogTSKRegressorEstimator
  • AdaTSKClassifierEstimator, AdaTSKRegressorEstimator
  • AYATSKClassifierEstimator, AYATSKRegressorEstimator
  • DGALETSKClassifierEstimator, DGALETSKRegressorEstimator
  • DGTSKClassifierEstimator, DGTSKRegressorEstimator
  • FSREAdaTSKClassifierEstimator, 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 via highfis.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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

highfis-0.8.0.tar.gz (63.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

highfis-0.8.0-py3-none-any.whl (57.5 kB view details)

Uploaded Python 3

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

Hashes for highfis-0.8.0.tar.gz
Algorithm Hash digest
SHA256 0e2544ed6dab0e9e97c013af3e1352ac1f6b893dcfe5d535330b481d8cf61372
MD5 e445adc9e5263a1bb523e8e40e48cf43
BLAKE2b-256 a13da2dc5658c836fa8cd052c6d2323fba8342d442e794cea948cacd2e861cbd

See more details on using hashes here.

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

Hashes for highfis-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f7fa4da215bff85eacfc9f8cff04fb9eb3748dc65ca8820d79cb26ea542029fa
MD5 46e7dd8bb0575562e7901379db965a30
BLAKE2b-256 6c4aa4a22f1d49aeb1caf211812bc83e9e254aed41eb1acae8c5dccb8f153198

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page