Características principales

El sistema FLPD se divide en dos partes: una librería de aprendizaje borroso y un entorno de experimentación.

Librería de aprendizaje borroso

Las características principales implementadas en la librería son:

Conjuntos borrosos

Se proporcionan las clases necesarias para representar y manipular conjuntos borrosos discretos y, en menor medida, continuos. Se incluyen clases específicas para la representación de conjuntos borrosos transformables en distribuciones de probabilidad LPD (Least Prejudiced Distribution), con la maquinaria necesaria para gestionar de forma automática las transformaciones.

Además de las operaciones básicas sobre conjuntos borrosos, se implementan aquellas operaciones basadas en la teoría de asignación de masas, como la fusión de conjuntos borrosos o la probabilidad condicional.

Prototipos borrosos

Se proporciona una implementación básica de prototipos borrosos, como contenedores de atributos borrosos. Es posible realizar las operaciones de fusión y comparación de prototipos definidas a partir de la teoría de asignación de masas: fusión, soporte y soporte medio normalizado.

Descripción lingüística

La librería incluye las herramientas necesarias para describir datos lingüísticamente. Para la discretización de datos continuos, se implementan diversos algoritmos de cobertura lingüística.

Algoritmos de inducción de prototipos

Se implementa el algoritmo de inducción jerárquica de prototipos HPI (Hierarchical Prototype Induction), así como HPIW (HPI with Weighting), que, basándose en HPI, estudia la importancia de cada atributo a la hora de elegir las fusiones a realizar, generando una ponderación que mejora los resultados de HPI.

Entrada/salida de datos

Se incluye una implementación básica de entrada/salida de datos, que permite leer y escribir datos de forma sencilla en distintos formatos (texto, CSV [Comma Separated Values] y XML [Extended Markup Language]).

Entorno de experimentación

El entorno de experimentación, basado en la librería, consta de una serie de utilidades para la línea de comandos y un sencillo interfaz gráfico escrito en PHP que implementan tareas habituales de aprendizaje automático:

Aprendizaje supervisado

A partir de un conjunto de datos de entrenamiento se induce un conjunto de prototipos que después se emplea para clasificar un conjunto de datos de prueba.

Si se desea aplicar validación cruzada a los resultados obtenidos, se parte de una base de datos y se divide en cierto número de folds, aplicando luego aprendizaje supervisado sobre cada fold.

Aprendizaje no supervisado

A partir de una base de datos de entrada se inducen prototipos para discriminar las clases en las que pueden clasificarse.

Estas funciones de aprendizaje están implementadas sobre un segundo conjunto de utilidades de más bajo nivel, que se encarga de realizar las distintas tareas que componen un proceso de aprendizaje completo:

Manipulación de datos en XML.
Descripción lingüística de datos.
Inducción de prototipos.
Clasificación de datos.
Evaluación de clasificaciones.
Representación gráfica.

Empleando directamente estas utilidades pueden diseñarse procesos de aprendizaje personalizados, completamente nuevos o aprovechando parcialmente la infraestructura de cálculo proporcionada por el sistema.