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. The library also includes DGTSK dynamic-gating models for feature and rule selection in high-dimensional fuzzy systems.

🚀 Overview

  • Differentiable TSK fuzzy systems built for high-dimensional data.
  • Supports both concrete model classes and sklearn-style estimator wrappers.
  • Includes adaptive and gated inference variants for feature selection and sparse rule extraction.
  • Designed for numerical stability with log-space and inverse-log defuzzifiers.

📦 Installation

Install from PyPI:

pip install highfis

🧠 Quick Start

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 integrates with sklearn.pipeline.Pipeline, GridSearchCV, and cross_val_score.

🧩 Model families

highFIS provides a full family of TSK models, each tuned for a specific high-dimensional inference strategy.

  • TSK — vanilla TSK with product antecedent aggregation and sum-based normalization.
  • HTSK — high-dimensional TSK with geometric mean aggregation and log-space normalization.
  • LogTSK — log-domain inverse-log normalization for stable aggregation.
  • MHTSK — multihead sparse TSK with feature-subset heads and sparse consequents.
  • DombiTSK — Dombi t-norm aggregation with a learnable shape parameter.
  • ADMTSK — adaptive Dombi TSK with Composite Gaussian membership functions.
  • AYATSK — Yager aggregation for flexible antecedent behavior.
  • AdaTSK — adaptive softmin-style inference with dynamic rule weighting.
  • ADPTSK — adaptive double-parameter softmin inference with stable normalized rule weights.
  • FSRE-AdaTSK — adaptive model with gated feature selection and rule extraction.
  • DG-TSK — double-gated training for feature selection and rule extraction.
  • DG-ALETSK — adaptive Ln-Exp softmin with embedded feature and rule gates.
  • HDFIS — high-dimensional inference with product DMF (HDFIS-prod) and minimum T-norm frozen antecedents (HDFIS-min).

Each family exposes classifier and regressor variants.

🔧 Core components

Models

  • HTSKClassifier, HTSKRegressor
  • TSKClassifier, TSKRegressor
  • LogTSKClassifier, LogTSKRegressor
  • DombiTSKClassifier, DombiTSKRegressor
  • ADMTSKClassifier, ADMTSKRegressor
  • AYATSKClassifier, AYATSKRegressor
  • AdaTSKClassifier, AdaTSKRegressor
  • ADPTSKClassifier, ADPTSKRegressor
  • FSREAdaTSKClassifier, FSREAdaTSKRegressor
  • DGTSKClassifier, DGTSKRegressor
  • DGALETSKClassifier, DGALETSKRegressor
  • HDFISProdClassifier, HDFISProdRegressor
  • HDFISMinClassifier, HDFISMinRegressor
  • MHTSKClassifier, MHTSKRegressor

Estimator wrappers

  • HTSKClassifierEstimator, HTSKRegressorEstimator
  • TSKClassifierEstimator, TSKRegressorEstimator
  • LogTSKClassifierEstimator, LogTSKRegressorEstimator
  • DombiTSKClassifierEstimator, DombiTSKRegressorEstimator
  • ADMTSKClassifierEstimator, ADMTSKRegressorEstimator
  • MHTSKClassifierEstimator, MHTSKRegressorEstimator
  • DGALETSKClassifierEstimator, DGALETSKRegressorEstimator
  • DGTSKClassifierEstimator, DGTSKRegressorEstimator
  • FSREAdaTSKClassifierEstimator, FSREAdaTSKRegressorEstimator
  • AYATSKClassifierEstimator, AYATSKRegressorEstimator
  • AdaTSKClassifierEstimator, AdaTSKRegressorEstimator
  • ADPTSKClassifierEstimator, ADPTSKRegressorEstimator
  • HDFISProdClassifierEstimator, HDFISProdRegressorEstimator
  • HDFISMinClassifierEstimator, HDFISMinRegressorEstimator

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: checkpoint save/load and validation via highfis.persistence

🛠️ Training options

highFIS uses gradient-based optimization and supports:

  • adaptive optimizers like Adam/W and standard SGD
  • early stopping with validation
  • uniform rule regularization for balanced rule activation
  • custom T-norms, custom rule bases, and custom defuzzifiers

📚 Documentation

The published documentation is available at:

https://dcruzf.github.io/highFIS

Key reference pages:

🧪 Testing & quality

Run the test suite with coverage:

hatch test -c -a

Format and lint the repository:

hatch fmt

Run static type checks:

hatch run typing

🤝 Contributing

Contributions are welcome! Please open issues or pull requests, and refer to our development guide in the documentation:

https://dcruzf.github.io/highFIS/latest/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.14.0.tar.gz (105.5 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.14.0-py3-none-any.whl (90.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: highfis-0.14.0.tar.gz
  • Upload date:
  • Size: 105.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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.14.0.tar.gz
Algorithm Hash digest
SHA256 fad170ae823f0bdf5beb9b3c44b083d5cbf16b6f490488f0d1e4dafd56ae365d
MD5 6f42c23c3c0704d268c9896f6c7d7633
BLAKE2b-256 9f2ac0f1aba71fef09090deec489c51a0b00b6e03b3758bfcf837c78ee0e01b5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: highfis-0.14.0-py3-none-any.whl
  • Upload date:
  • Size: 90.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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.14.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6152a991087af46b8d7f7b1021f1436244850788be0a9f8bd748f5250010f870
MD5 e9be501fccd8b28effe16fa462341c27
BLAKE2b-256 8c0e9305a8595fce9ebb4af8ef70308cb3103e14a5417ea79d2320f13e092905

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