| Main FeaturesThe FLPD system consists of two
parts: a fuzzy learning library and a experimentation
framework.
The main features implemented in the library are the
following:
- Fuzzy Sets
-
The system includes the needed classes for
representing and manipulating discrete fuzzy sets and, at some extent,
continuous fuzzy sets. Specific classes for handling fuzzy sets
transformable in LPD (Least Prejudiced
Distribution) probability distributions are also included,
with the appropriate mechanics for handling the needed transformations
automatically.
Besides the common operations on fuzzy sets, the
library implements those operations derived from the Mass
Assignment Theory: as the fusion of
fuzzy sets and the conditional
probability.
- Fuzzy Prototypes
-
A basic implementation of prototypes is provided, as
containers of fuzzy attributes. The operations on fuzzy prototypes
derived from the Mass Assignment Theory are implemented: fusion,
support and average normalized
support.
- Linguistic Description
-
Some tools for data
fuzzification are included in the library. For
discretization of continuous data, several
linguistic covering algorithms are implemented.
- Prototype Induction Algorithms
-
The library includes an implementation of the
Hierarchical Prototype Induction algorithm
(HPI), and also HPIW
(HPI with Weighting), that,
based on HPI, takes care of the relevance of each
attribute when searching prototypes for fusion, and generates a
pondering function that enhances the results of raw
HPI.
- Data Input/Output
-
A basic implementation of data I/O is provided,
allowing read and write data in several formats (text,
CSV [Comma Separated Values]
and XML [Extended Markup
Language]) in an easy way.
Experimentation Framework
Besides the library, the system includes some front-ends for
the command line and a simple graphic interface write in PHP that,
based on the library, implement some habitual automatic learning
tasks:
- Supervised Learning
-
A training dataset is converted in a fuzzy prototype
set, after an induction process. The induced prototypes are then used
to determine the class of the elements of a test dataset.
If cross-validation is desired, an input dataset is
splitted into several folds. A supervised learning process is then
applied to each fold.
- Unsupervised Learning
-
From an input dataset a set of induced prototypes is
extracted. Each prototype represents a differentiated class of data
elements detected in the input data.
This learning front-ends are implemented over a group of
back-ends, at lower abstraction level. Each back-end calculates only
one step in the several sequential tasks needed for a learning process
to be completed:
Data conversion from/to the own XML
format. | XML data manipulation. | Data fuzzification. | Prototype induction. | Data classification. | Evaluation of classifications. | Graphic representation. |
Using this back-ends directly, a personalized learning
process can be designed, completely new or partially based on the
calculation infrastructure already provided by the system.
|