Alphabetical list of the C++ programs available as command lines:

The following programs: genrules, fislinks, perf, readdata, sample are utility programs. The other ones are learning programs.

The fis program is aimed for developers of new Fispro modules. it corresponds to the testfis.cpp source program, located in the cpp/base subdirectory of fispro. it gives example calls of Fispro C++ functions (refer to source comments for more details).

Note valid for all FisPro C++ programs:

A call without argument displays the program required and optional arguments.

We start with a brief description of the different steps to follow, then we illustrate the procedure on a data set. For each procedure, we give the command line arguments in C++, and the corresponding option in the (java) graphical user interface. User documentation gives more details about the interface.

The result files mentioned in command lines are stored in the EXAMPLES subdirectory.


FIS=fuzzy inference system
MF=membership function

  1. Partitioning

    Partitions induced by FisPro are standardized fuzzy partitions (see glossary), which guarantees that each fuzzy set corresponds to a linguistic label. There is one exception: the Gaussian MF fuzzy partitions generated by the OLS with the original algorithm from Hohensohn and Mendel

    Three partition types are available: hfp, k-means, regular.

    The easiest way is to use the 'Generate a FIS without rules' option, which allows to build input and output fuzzy partitions from data. A partition type, common to all inputs, must be specified, as well as an output partition type.

    The Learning menu has two options to generate the partitions: Generate a FIS without rules and HFP MF.

    The easiest way is to use the Generate a FIS without rules option, which allows to build input and output fuzzy partitions from data. A partition type, common to all inputs, must be specified, as well as an output partition type. This option is also available in the FIS menu and in the OLS learning option.

    The HFP MF option allows to choose the number of MFs per partition according to the data. The algorithm starts from the simplest configuration, complexifies it by adding a fuzzy set to the partition of one input variable, and searches for the best performing configuration among the most compact ones. In that case, the number of fuzzy sets per variable is not set a priori.

  2. Rule induction

    Several methods are available in FisPro to generate fuzzy rules:

    The first three methods all need both a FIS configuration file, used to define the fuzzy partitions, and a data file.

    The HFP MF option is another method, that only needs a data file and allows to generate the rules corresponding to the HFP MF option (Learning/Partition menu). It needs two specific files: a HFP configuration file and a vertex file, described in section 1. The algorithm starts from the simplest configuration, and complexifies it by adding each time a MF in one input dimension, and to search for the most accurate configuration among the most compact ones. The number of MFs in each input dimension is not known beforehand.

  3. Generate partitions and induce rules using OLS

    The OLS method can work using only data, first generating the partitions, either standard fuzzy partitions made of triangular and trapezoidal MFs, or Gaussian MF partitions, then generating the rules. It can also use a FIS configuration file, then using the FIS partitions, and only generating the rules.

  4. Optimization

    The optimization option of the Learning menu allows to adjust the fuzzy set parameters associated to the input or output variables, and/or to optimize the rule conclusions.

  5. Simplification

    Last of all, the simplification option of the Learning menu attempts to simplify the FIS by grouping rules together, or by removing some variables from the rule premises.

  6. Reduce the output vocabulary

    By output vocabulary, we mean the distinct fuzzy rule conclusions. Learning procedures often generate rules with as many conclusions as rules. For more interpretability, these conclusions can be slightly modified to reduce the number of distinct ones.

  7. Links

    We try to quantify links between fuzzy rules and data, by calculating the rule cumulated matching degree for a data file, by giving the matched rules for each row, and conversely by enumerating the examples matching each rule.

  8. Sampling

    The Generate sample option of the Data menu creates random learning/validation samples from a data file.

  9. Performance and data

    This program, or option, allows to measure the FIS performance on a data set.

    Two test data sets are included.

    The iris data (Fisher, 1936) are made up of four input variables: sepal length, sepal width, petal length and petal width. The output is the iris species: Setosa, Virginica or Versicolor. The sample includes 50 items of each species.

    The rice data (Ishibuchi, 1994) are sensory test data collected from a subjective evaluation of many different kinds of rice by plural panelists. The sample includes 105 items. The following five factors constitute the input data: flavor, appearance, taste, stickiness, toughness, and the output factor is the overall evaluation of quality.

  10. Check data

    The readdata program checks the data file reading: number of rows, number of columns, heading, field separator.

  11. Learning result files

    Each learning procedure creates several result data files. Two of these files share a common format, and are detailed in section 11.