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.1.tar.gz (75.0 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.1-py3-none-any.whl (68.3 kB view details)

Uploaded Python 3

File details

Details for the file highfis-0.8.1.tar.gz.

File metadata

  • Download URL: highfis-0.8.1.tar.gz
  • Upload date:
  • Size: 75.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","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.1.tar.gz
Algorithm Hash digest
SHA256 3594a76f2a1f0ce26de0ed7c9c4344d5089143c256be3298526a8eaf88739b7a
MD5 8f2871f337ca6d0c97f6a8f5bbed6ba3
BLAKE2b-256 3db1d28c26f7de0375160507062c7b78fd4aa8fa3bc2a6a08022b0fcff590f24

See more details on using hashes here.

File details

Details for the file highfis-0.8.1-py3-none-any.whl.

File metadata

  • Download URL: highfis-0.8.1-py3-none-any.whl
  • Upload date:
  • Size: 68.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 90757750a593970d1eaf3e5b5e0fc362b5e8e136af83cd965813a5a4b84c26ad
MD5 29f0016780cf62446d251c73ac75f07a
BLAKE2b-256 6e28b98e0a5b02a41132f4750c0ffa115023174610306b2cf397131c0cc4156b

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