The Xfuzzy 3 development environment

The Knowledge acquisition tool - Xfdm

The tool xfdm facilitates the identification of fuzzy systems from numerical data using different algorithms based on matrix partitioning (Grid Partitioning) or data grouping (Cluster Partitioning) techniques. xfdm can be executed from the command line, or through its graphical user interface using the "Data Mining" option of the Tuning or the corresponding icon in the main window of the environment.

The main window of xfdm is divided into two parts. The upper part is used to configure the identification process: selection of the algorithm, input/output data file, number of inputs and outputs, inputs style and fuzzy system style.


The buttons located in the lower part of the window allow, respectively, to load or save a configuration file, create the fuzzy system and close the tool's graphical user interface.


xfdm includes different identification algorithms grouped into two categories:

a) Structure-oriented algorithms

    These algorithms perform a fixed or variable partition of the universes discourse of the input variables and analyze the numerical data that describe the behavior of the system to assign a rule for each line of the input file. Subsequently, they resolve the conflicts that may have occurred and select the fuzzy system rules based on their activation degrees and the configuration parameters defined by the user. xfdm includes three identification algorithms that work with fixed partitions (Wang & Mendel, Nauck and Senhadji) and one that includes a variable number of partitions (Incremental Grid). Additionally, the "Flat System" option allows the generation of fuzzy system specifications with a flat I/O behavior that can be useful as input to the training tool or to other Xfuzzy facilities.

    The specific options and parameters of these algorithms are:

    - Nauck:
    • Number of rules: number of rules to identify
    • Type of selection: Best rules or Best per class

    - Sendhadji:
    • Number of rules: number of rules to identify

    - Incremental Grid:
    • Limit of MFCs, Limit of Rules, Limit of RMSE: the execution of the algorithm ends when one of these limits is reached
    • Learnig option: activated/not activated

b) Cluster-oriented algorithms

    xfdm also includes other algorithms to generate a fuzzzy system from a series of data using clustering techniques. By grouping sets of points in clusters represented by prototype points, this type of techniques allow to considerably reduce the information that the algorithm must handle and usually give rise to fuzzy systems with fewer rules. The tool includes four algorithms that use a fixed number of clusters (Hard C-Means, Fuzzy C-Means, Gustafson-Kessel and Gath-Geva), as well as two algorithms that allow iteratively varying the number of clusters until the limit defined by the user is reached (Incremental Clustering and ICFA).

    The specific options and parameters of these algorithms are:

    - Incremental Clustering:
    • Neighborhood radius
    • Max. N. of clusters: maximum number of clusters

    - Fixed Clustering:
    • Clustering algorithm: Hard C-Means, Fuzzy C-Means, Gustafson-Kessel, Gath-Geva
    • Number of clusters
    • Limit on iterations
    • Fuzziness index
    • Limit on cluster variation
    • Number of clusters
    • Learning option: activated/not activated

    - ICFA (Incremental Clustering for Function Approximation):
    • Number of clusters
    • Max. Iterations
    • Fuzziness index
    • Limit on cluster variation
    • Activate migration: activated/not activated

Style selection

The graphical user interface for style selection of the system input variables allows to choose, jointly for all the variables or independently for each of them, the range, the number and the type of membership functions. The available options include piecewise linear, Gaussian and spline-based membership functions (free or grouped in families).


On the other hand, the graphical user interface for selection of the fuzzy system style allows to choose the conjunctive operator used to implement the connective of antecedents in the rules, as well as the defuzzification method. In this last case, the possible alternatives are: Fuzzy Mean, Weighted Fuzzy Mean, first order Takagi-Sugeno and Max Label (for fuzzy classifiers).


Configuration file

The configuration of an identification process can be saved to and loaded from an external file. The content of this file consists of the following directives:


The xfdm_pattern directive selects the pattern file used to identify the system. xfdm_inputs and xfdm_outputs specify the number of inputs and outputs, respectively. The style of the input variables is defined by one or more xfdm_input directives, whose parameters indicate the name of the variable ('ANY' for all of the system), the range of values ('0.0, 0.0' if obtained from the pattern file), the number of membership functions and their style (0: Free triangles; 1: Triangular family; 2: Free shouldered triangles; 3: Shouldered-triangular Family; 4: Free gaussians; and 5: B-spline family). The xfdm_system directive defines the fuzzy system style, including as parameters the name of the rule base, the name of the output variable, the operator used as connective of antecedents (0: min; 1: prod), the system generation option (0: only identifies the rule base; 1: also generates the structure of the system) and the defuzzification method (0: FuzzyMean; 1: WeightedFuzzyMean, 2: Takagi- Sugeno; and 3: MaxLabel). Finally, the identification algorithm, as well as its possible parameters, is defined by the directive xfdm_algorithm.

The following figure shows some examples of fuzzy systems for function approximation generated with xfdm.


For comments, patches, bug reports, etc contact us at:

©IMSE-CNM 2018