Skip to main content

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 PyTorch model classes and sklearn-compatible estimators.
  • 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 HTSKClassifier

clf = HTSKClassifier(
    n_mfs=5,
    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 Pi membership functions.
  • AYATSK — Yager T-norm 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.
  • DGTSK — double-gated training for feature selection and rule extraction.
  • DGALETSK — adaptive Ln-Exp softmin with embedded feature and rule gates.
  • HDFIS — high-dimensional inference with product T-norm (HDFISProd) and minimum T-norm (HDFISMin) variants.

Each family exposes classifier and regressor variants.

🔧 Core components

highFIS exposes a compact, model-family-driven API with both concrete model classes and sklearn-compatible estimator wrappers.

  • Model families: TSK, HTSK, LogTSK, MHTSK, DombiTSK, ADMTSK, AYATSK, ADATSK, ADPTSK, FSRE-ADATSK, DGTSK, DGALETSK, HDFIS
  • Estimators: *Classifier and *Regressor variants for each model family, accessible directly from import highfis
  • Building blocks: membership functions (highfis.memberships), defuzzifiers (highfis.defuzzifiers), T-norms (highfis.t_norms), and PyTorch model classes (highfis.models)

For the full class list and API reference, see the documentation:

🛠️ 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

Format, lint, and type check:

hatch check --fix

Run the test suite with coverage:

hatch test -c -a

Run security scan:

hatch run security

🤝 Contributing

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

📄 License

Distributed under the GPLv3.

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.24.1.tar.gz (165.7 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.24.1-py3-none-any.whl (164.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: highfis-0.24.1.tar.gz
  • Upload date:
  • Size: 165.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","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.24.1.tar.gz
Algorithm Hash digest
SHA256 99711bc48c0dba49bcafe72fd57d8f5efe2891f9b380f278cb4f082abf7a7355
MD5 c29476cab4405e73bd62b187f1a9893f
BLAKE2b-256 a6d737aa529589be2c9ee0289709a95c3e18d224b60bfe62bed9768b835da636

See more details on using hashes here.

File details

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

File metadata

  • Download URL: highfis-0.24.1-py3-none-any.whl
  • Upload date:
  • Size: 164.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","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.24.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0a3914a605a558e7dacf42e24ba287aef0a03b3b53dbfa047ee9a22f4e7ce71d
MD5 9bd2ce82ee34890671af86d71c77fe4f
BLAKE2b-256 c8225d4d048f1a2477bbf03c3fade711b8b7eb3475cd4510f8c09bd489659816

See more details on using hashes here.

Release history Release notifications | RSS feed

0.29.0

2 files

0.28.0

2 files

0.27.0

2 files

0.26.0

2 files

0.25.0

2 files

This release

0.24.1 This release

2 files

0.24.0

2 files

0.23.7

2 files

0.23.6

2 files

0.23.5

2 files

0.23.4

2 files

0.23.3

2 files

0.23.2

2 files

0.23.1

2 files

0.23.0

2 files

0.22.1

2 files

0.22.0

2 files

0.21.2

2 files

0.21.1

2 files

0.21.0

2 files

0.20.1

2 files

0.20.0

2 files

0.19.0

2 files

0.18.1

2 files

0.18.0

2 files

0.17.0

2 files

0.16.0

2 files

0.15.0

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

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