Quick Start with fuzzytree

This package provides a fuzzy decision tree algorithm implementation, that is also scikit-learn compatible. Currently, only single-output multiclass classification problems are supported.

Basic usage of FuzzyDecisionTreeClassifier

1. Load your dataset

>>> from sklearn.datasets import make_moons
>>> from sklearn.model_selection import train_test_split
>>> X, y = make_moons(n_samples=300, noise=0.5, random_state=42)
>>> X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

2. Fit the classifier

>>> from fuzzytree import FuzzyDecisionTreeClassifier
>>> clf_fuzz = FuzzyDecisionTreeClassifier().fit(X_train, y_train)

We will also make comparison to basic scikit-learn decision tree classifier

>>> from sklearn.tree import DecisionTreeClassifier
>>> clf_sk = DecisionTreeClassifier().fit(X_train, y_train)

3. Evaluate models on the test set

>>> print(f"fuzzytree: {clf_fuzz.score(X_test, y_test)}")
>>> print(f"  sklearn: {clf_sk.score(X_test, y_test)}")

4. Plot the results

We can also plot the results.

>>> from mlxtend.plotting import plot_decision_regions
>>> import matplotlib.pyplot as plt
>>> import matplotlib.gridspec as gridspec
>>> gs = gridspec.GridSpec(2, 2)
>>> fig = plt.figure(figsize=(10,8))
>>> labels = ['Fuzzy Decision Tree', 'sklearn Decision Tree']
>>> for clf, lab, grd in zip([clf_fuzz, clf_sk],
>>>                          labels, [[0, 0], [0, 1]]):
>>>     ax = plt.subplot(gs[grd[0], grd[1]])
>>>     fig = plot_decision_regions(X=X_train, y=y_train, clf=clf, legend=2)
>>>     plt.title("%s (train)" % lab)
>>> for clf, lab, grd in zip([clf_fuzz, clf_sk],
>>>                          labels, [[1, 0], [1, 1]]):
>>>     ax = plt.subplot(gs[grd[0], grd[1]])
>>>     fig = plot_decision_regions(X=X_test, y=y_test, clf=clf, legend=2)
>>>     plt.title("%s (test)" % lab)
>>> plt.show()

See the results in General examples.