Ex-Fuzzy Documentation#
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.
Get up and running with Ex-Fuzzy in minutes. Learn the basics of fuzzy classification and see practical examples.
Comprehensive tutorials and examples for building fuzzy classifiers, analyzing patterns, and visualizing results.
Complete reference for all classes, functions, and modules with detailed descriptions and examples.
Real-world examples and case studies demonstrating Ex-Fuzzyβs capabilities across different domains.
Key Features#
Generate interpretable fuzzy rules that provide transparent decision-making processes for your machine learning models.
Optimized implementations with support for both Type-1 and Type-2 fuzzy systems, multiprocessing, and evolutionary algorithms.
Built-in plotting capabilities for fuzzy sets, rules, pattern stability analysis, and model performance metrics.
Modular design allows easy customization of fuzzy sets, membership functions, and inference mechanisms.
Advanced tools for analyzing pattern stability, variable importance, and rule discovery consistency across multiple runs.
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#
Getting Started
User Guide
Examples
API Reference
Development
Legacy Documentation
- Getting Started
- Creating fuzzy sets and fuzzy variables
- Using Fuzzy Rules
- Optimizing a Fuzzy rule base for a classification problem
- Visualize rules and results
- Computing fuzzy partitions
- Genetic algorithm details
- General Type 2
- Temporal Fuzzy Sets
- Extending Ex-Fuzzy
- Persistence
- Advanced classifiers
- Bootstrapping and rule robustness
Community and Support#
Join our community discussions, ask questions, and share your projects.
Found a bug or have a feature request? Let us know on GitHub.
Help improve Ex-Fuzzy by contributing code, documentation, or examples.
Get in touch with the development team for collaboration or support.
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}
}