Ex-Fuzzy Documentation#

PyPI version Python versions License GitHub stars

Ex-Fuzzy is a powerful Python library for explainable fuzzy logic inference and approximate reasoning. It provides comprehensive tools for building, training, and analyzing fuzzy rule-based classifiers with a special focus on interpretability and explainability.

πŸš€ Quick Start

Get up and running with Ex-Fuzzy in minutes. Learn the basics of fuzzy classification and see practical examples.

Getting Started
πŸ“– User Guide

Comprehensive tutorials and examples for building fuzzy classifiers, analyzing patterns, and visualizing results.

User Guide
πŸ” API Reference

Complete reference for all classes, functions, and modules with detailed descriptions and examples.

API Reference
πŸ§ͺ Examples

Real-world examples and case studies demonstrating Ex-Fuzzy’s capabilities across different domains.

Examples

Key Features#

🧠 Explainable AI

Generate interpretable fuzzy rules that provide transparent decision-making processes for your machine learning models.

⚑ High Performance

Optimized implementations with support for both Type-1 and Type-2 fuzzy systems, multiprocessing, and evolutionary algorithms.

πŸ“Š Rich Visualizations

Built-in plotting capabilities for fuzzy sets, rules, pattern stability analysis, and model performance metrics.

πŸ”§ Flexible Architecture

Modular design allows easy customization of fuzzy sets, membership functions, and inference mechanisms.

πŸ“ˆ Pattern Analysis

Advanced tools for analyzing pattern stability, variable importance, and rule discovery consistency across multiple runs.

πŸ”¬ Research Ready

Designed for academic research with comprehensive statistical testing, bootstrapping, and experimental validation tools.

Quick Example#

Here’s a simple example to get you started:

import ex_fuzzy.evolutionary_fit as evf
import ex_fuzzy.eval_tools as eval_tools
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import pandas as pd

# Load and prepare data
iris = load_iris()
X = pd.DataFrame(iris.data, columns=iris.feature_names)
y = iris.target

# Split the data
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.33, random_state=0
)

# Create and train fuzzy classifier
classifier = evf.BaseFuzzyRulesClassifier(nRules=10, nAnts=4)
classifier.fit(X_train, y_train, n_gen=50, pop_size=30)

# Evaluate and visualize
evaluator = eval_tools.FuzzyEvaluator(classifier)
evaluator.eval_fuzzy_model(
    X_train, y_train, X_test, y_test,
    plot_rules=True, print_rules=True, plot_partitions=True
)

Installation#

Install Ex-Fuzzy using pip:

pip install ex-fuzzy

Or install from source:

git clone https://github.com/fuminides/ex-fuzzy.git
cd ex-fuzzy
pip install -e .

What’s New#

Version 1.0.0

  • πŸŽ‰ New comprehensive test suite with >90% code coverage

  • πŸ“š Modernized documentation with interactive examples

  • πŸ”§ Improved API consistency across all modules

  • ⚑ Performance optimizations for large datasets

  • πŸ› Bug fixes and stability improvements

Documentation Contents#

Community and Support#

πŸ’¬ Discussion

Join our community discussions, ask questions, and share your projects.

https://github.com/fuminides/ex-fuzzy/discussions
πŸ› Report Issues

Found a bug or have a feature request? Let us know on GitHub.

https://github.com/fuminides/ex-fuzzy/issues
πŸ“– Contributing

Help improve Ex-Fuzzy by contributing code, documentation, or examples.

Contributing
πŸ“§ Contact

Get in touch with the development team for collaboration or support.

mailto:your-email@example.com

Citation#

If you use Ex-Fuzzy in your research, please cite:

@article{ex_fuzzy_2023,
    title={Ex-Fuzzy: A Python Library for Explainable Fuzzy Logic Inference},
    author={Fumanal Idocin, Javier},
    journal={Software Impacts},
    year={2023},
    publisher={Elsevier}
}

Indices and Tables#