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.
  • 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
  • AdaTSKClassifier, AdaTSKRegressor
  • DGALETSKClassifier, DGALETSKRegressor
  • DGTSKClassifier, DGTSKRegressor
  • FSREAdaTSKClassifier, FSREAdaTSKRegressor
  • LogTSKClassifier, LogTSKRegressor

Estimator wrappers

  • HTSKClassifierEstimator, HTSKRegressorEstimator
  • TSKClassifierEstimator, TSKRegressorEstimator
  • LogTSKClassifierEstimator, LogTSKRegressorEstimator
  • AdaTSKClassifierEstimator, AdaTSKRegressorEstimator
  • DGALETSKClassifierEstimator, DGALETSKRegressorEstimator
  • DGTSKClassifierEstimator, DGTSKRegressorEstimator
  • FSREAdaTSKClassifierEstimator, FSREAdaTSKRegressorEstimator

Building blocks

  • Memberships: GaussianMF, TriangularMF, TrapezoidalMF, BellMF, SigmoidalMF, DiffSigmoidalMF, ProdSigmoidalMF, SShapedMF, LinSShapedMF, ZShapedMF, LinZShapedMF, PiMF, GaussianPIMF
  • Defuzzifiers: SoftmaxLogDefuzzifier, SumBasedDefuzzifier, LogSumDefuzzifier
  • T-norms: prod, min, gmean, dombi
  • 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.7.0.tar.gz (62.3 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.7.0-py3-none-any.whl (56.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: highfis-0.7.0.tar.gz
  • Upload date:
  • Size: 62.3 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.7.0.tar.gz
Algorithm Hash digest
SHA256 50c06fea5a9b31f713d6e746393ff862051de186e09e07cc710760dc9734e548
MD5 3295dd6bf343106ff5ed271e359e86a5
BLAKE2b-256 f491095e057c305414ed14b0d3e6e641b2be198ca94308292dccc19541aca4f6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: highfis-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 56.9 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.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cdc156a0fc32cd0fb0d52e7e9b74f5b0dfbb00ce754074b07764bbf0153789b4
MD5 5ea783c1245182fdedb9b70210aaa67e
BLAKE2b-256 a4656fdf4f58c7b8fb61c62f5d4469d1202ced5429a0adfd33e69dc22df0e0aa

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