Está en la página 1de 138

Aprendizaje

PID_00200713

Vicenç Torra i Reventós


David Masip i Rodó
© FUOC • PID_00200713 Aprendizaje

Vicenç Torra i Reventós David Masip i Rodó

Licenciado y doctor en Informáti- Ingeniero en Informática por la UAB


ca por la Universidad Politécnica de (2001) y doctor en Informática por
Cataluña. Actualmente es científico la UAB, en el programa de docto-
titular en el Instituto de Investiga- rado de Visión por Computador
ción en Inteligencia Artificial. Ha im- (2005). Actualmente es profesor en
partido clases en las universidades la Universitat Oberta de Catalun-
de Lleida, Rovira i Virgili (donde fue ya, de los Estudios de Informática,
profesor titular) y Autónoma de Bar- Multimedia y Telecomunicaciones.
celona. Sus temas de investigación Con anterioridad ha sido docen-
son la fusión de información y los te en la Universidad Autónoma de
sistemas difusos. Barcelona, en el Departamento de
Ciencias de la Computación, y en la
Universidad de Barcelona, en el De-
partamento de Matemática Aplica-
da y Análisis. Sus principales temas
de investigación son: la visión por
computador, el reconocimiento es-
tadístico de patrones, el aprendizaje
computacional y las aplicaciones de
clasificación facial.

Ninguna parte de esta publicación, incluido el diseño general y la cubierta, puede ser copiada,
reproducida, almacenada o transmitida de ninguna forma, ni por ningún medio, sea este eléctrico,
químico, mecánico, óptico, grabación, fotocopia, o cualquier otro, sin la previa autorización escrita
de los titulares de los derechos.
© FUOC • PID_00200713 Aprendizaje

Índice

Introducción............................................................................................... 5

Objetivos....................................................................................................... 7

1. Introducción al aprendizaje computacional.............................. 9


1.1. Algoritmos genéticos para el ajuste de sistemas difusos ............. 10
1.1.1. Algoritmos genéticos para el aprendizaje de sistemas
difusos ............................................................................ 10
1.1.2. Los sistemas difusos: resumen ....................................... 11
1.1.3. El problema y su codificación ....................................... 11
1.2. Una clasificación de las técnicas de aprendizaje ........................ 14
1.3. El sesgo y la varianza .................................................................. 18
1.3.1. Sesgo y varianza cuando se evalúa el error de un
modelo ........................................................................... 21
1.3.2. Compromiso entre sesgo y varianza ............................. 25

2. Extracción de características.......................................................... 29
2.1. Conjuntos de entrenamiento y espacios de características. ........ 29
2.2. Taxonomía de los algoritmos de extracción de características .... 30
2.3. Selección de características ......................................................... 31
2.3.1. Ejemplo de selección de características ......................... 34
2.4. Extracción de características ....................................................... 36
2.4.1. Análisis de componentes principales ............................ 38
2.4.2. Análisis discriminante lineal (ADL) ............................... 44
2.5. Conclusión .................................................................................. 46

3. Aprendizaje no supervisado............................................................ 48
3.1. Algoritmos de categorización: introducción ............................... 48
3.1.1. Estructura de los datos a categorizar y tipos de
atributos ......................................................................... 49
3.1.2. Definición de distancias y semejanzas para los
distintos tipos de atributos ............................................ 53
3.1.3. Estructuras posibles para las categorías construidas ...... 62
3.1.4. Descripciones posibles para las categorías
construidas ..................................................................... 63
3.1.5. Tipos de algoritmos ....................................................... 64
3.2. Particiones y particiones difusas de objetos ............................... 64
3.2.1. El C-Means ..................................................................... 65
3.2.2. Fuzzy C-Means ............................................................... 67
3.2.3. Vector Quantization ...................................................... 72
3.2.4. Mapas autoorganizativos ............................................... 74
© FUOC • PID_00200713 Aprendizaje

3.3. Jerarquías de objetos ................................................................... 77


3.3.1. Métodos aglomerativos .................................................. 77
3.3.2. Métodos basados en la clausura transitiva .................... 79

4. Aprendizaje supervisado.................................................................. 83
4.1. Métodos basados en métodos de categorización ........................ 83
4.1.1. Vecino más próximo ..................................................... 84
4.1.2. Clasificación basada en el Vector Quantization ............ 84
4.1.3. Clasificación basada en el C-Means .............................. 86
4.2. Máquinas de vectores de soporte ............................................... 86
4.2.1. Máquinas lineales de vectores de soporte ..................... 87
4.2.2. Máquinas no lineales de vectores de soporte ................ 92
4.2.3. Aplicaciones y extensiones de las SVM ......................... 94
4.3. Descripciones lógicas de conceptos ............................................ 94
4.4. Árboles de decisión ..................................................................... 98
4.4.1. Variaciones sobre árboles de decisión ........................... 101
4.5. Combinación de métodos ........................................................... 105
4.5.1. Conjuntos de clasificadores ........................................... 106
4.5.2. Algoritmos basados en boosting .................................... 108
4.5.3. Algoritmos basados en bagging....................................... 114
4.5.4. Algoritmos random subspace methods.............................. 116
4.5.5. Algoritmos de stacked learning........................................ 117
4.5.6. Ensembles de clasificadores: Conclusiones ..................... 118
4.6. Redes neuronales ......................................................................... 118
4.6.1. Una arquitectura y un algoritmo de aprendizaje: el
método de retropropagación ......................................... 120
4.6.2. Análisis de las redes neuronales .................................... 126

5. Representación del conocimiento y aprendizaje....................... 128


5.1. Programación lógica inductiva ................................................... 129

Actividades.................................................................................................. 133

Ejercicios de autoevaluación.................................................................. 133

Solucionario................................................................................................ 135

Glosario........................................................................................................ 137

Bibliografía................................................................................................. 138
© FUOC • PID_00200713 5 Aprendizaje

Introducción

Un componente fundamental de los sistemas inteligentes es el aprendizaje. Su


objetivo es que el rendimiento del sistema mejore a partir de su experiencia.
Los métodos de aprendizaje automático se han desarrollado con esta finali-
dad. Sin embargo, el aprendizaje automático incluye los métodos que extraen
conocimiento a partir de datos (de ejemplos). En la asignatura Inteligencia ar-
tificial ya vimos algunos de los métodos que se consideran en esta familia.

En este módulo repasamos los principales conceptos del aprendizaje y vemos


algunos de los métodos que hay para llevarlo a cabo.

El módulo empieza con una introducción en la que se presentan los concep-


tos fundamentales, y se hace una clasificación de los principales métodos de
aprendizaje. En particular, analizamos la clasificación teniendo en cuenta la
información que hay en cada ejemplo que utilizamos para el aprendizaje. Así,
en este apartado definimos el aprendizaje supervisado, no supervisado y por
refuerzo; y tanto el aprendizaje en problemas de clasificación y regresión co-
mo para problemas de búsqueda.

En el segundo apartado, estudiaremos la primera etapa en cualquier proceso de


aprendizaje, la extracción de características a partir de los datos observados del
medio. Veremos que en general existen dos aproximaciones: la selección y la
extracción de características. Analizaremos algunos de los algoritmos lineales
para llevar a cabo el proceso de extracción de características desde un punto de
vista de minimización del error de reconstrucción (análisis de componentes
principales) y desde un punto de vista discriminante.

En el tercer apartado, estudiamos los conceptos más importantes del aprendi-


zaje no supervisado y algunos de los métodos que hay para este tipo de apren-
dizaje. Vemos, entre otros, los algoritmos de categorización C-Means, Fuzzy
C-Means y los mapas autoorganizativos. También consideramos algunos algo-
ritmos para construir jerarquías de categorías.

El cuarto apartado, dedicado al aprendizaje supervisado, presenta varios algo-


ritmos para construir sistemas de clasificación. Empezamos con los métodos
que se basan en los algoritmos de categorización, como los que vemos en el
apartado 2, para pasar después a las máquinas de vectores de soporte y árbo-
les de deducción. A continuación se expondrá la teoría que permite combinar
métodos para incrementar la eficiencia de los sistemas en los problemas de
clasificación y regresión. Repasamos el aprendizaje multiestratégico y los con-
juntos de clasificadores. Finalmente el apartado acaba con la exposición de los
© FUOC • PID_00200713 6 Aprendizaje

algoritmos basados en redes neuronales, un modelo computacional que per-


mite representar conocimiento inspirándose en las neuronas que conforman
los seres vivos.

El módulo acaba en el quinto apartado, que estudia los sistemas de aprendi-


zaje que combinan el aprendizaje con la representación del conocimiento o
los métodos de búsqueda. En este apartado recordamos los sistemas de razo-
namiento basados en casos que vimos en la asignatura Inteligencia artificial y
describimos los sistemas de programación lógica inductiva.
© FUOC • PID_00200713 7 Aprendizaje

Objetivos

Los objetivos de este módulo didáctico son:

1. Obtener una visión general de lo que es el aprendizaje dentro de la inte-


ligencia artificial.

2. Distinguir entre el aprendizaje supervisado y el no supervisado.

3. Estudiar distintos métodos de aprendizaje.

4. Conocer algunos de los métodos que combinan aprendizaje y conocimien-


to.
© FUOC • PID_00200713 9 Aprendizaje

1. Introducción al aprendizaje computacional

(1)
El aprendizaje automático1 estudia métodos para conseguir incrementar el ren- En inglés, machine learning.

dimiento de los sistemas a partir de su experiencia. Como el objetivo es me-


jorar el comportamiento de un sistema existente, los métodos de aprendiza-
je están fuertemente relacionados con los formalismos de representación del
conocimiento, y con todos los aspectos relativos al funcionamiento de los sis-
temas basados en el conocimiento. Así, en la actualidad hay distintos tipos
de métodos de aprendizaje, que corresponden a las distintas alternativas que
hay para la representación del conocimiento: reglas difusas, lógica de primer
orden, redes bayesianas, etc.

En la asignatura Inteligencia artificial se vio brevemente un ejemplo de técni-


ca que, a veces, se considera desde el punto de vista del aprendizaje: los algo-
ritmos genéticos. Se vio desde el punto de vista de los métodos de búsqueda
(módulo de "Resolución de problemas y búsqueda").

Los algoritmos genéticos se utilizan en el aprendizaje automático tanto como


método de búsqueda para ajustar parámetros, como para encontrar la repre-
sentación adecuada. Por ejemplo, podemos considerar el uso en sistemas di-
fusos para ajustar las funciones de pertenencia (por ejemplo, ajustar los pará-
metros de una función de pertenencia triangular), o bien para encontrar las
reglas.

Los algoritmos genéticos, dado que son un método de búsqueda, forman Ved también
un mecanismo bastante general para ser aplicado como herramienta para el
En el apartado 1.1 vemos un
aprendizaje en muchos formalismos de representación. De hecho, una aplica- ejemplo de este tipo de aplica-
ción bastante diferente consiste en usarlos para la construcción de conceptos. ción para sistemas difusos.

En este caso, se definen conceptos en términos de conjunciones y disyuncio-


nes lógicas de atributos.

A continuación damos un ejemplo de descripción de un concepto de esta forma. La des- (2)


Ejemplo extraído de: D.�Riaño
cripción corresponde a una regla2 para un sistema de clasificación de plantas. La regla (1997). Automatic Construction of
define cuándo una planta es una Iris setosa a partir de la información del ancho y el largo Descriptive Rules. Tesis doctoral.
del sépalo y el pétalo. Es decir, se define el concepto Iris setosa a partir de unos atributos. Barcelona: Universitat Politècnica
de Catalunya.

Ved también

El aprendizaje en el problema
de clasificación contrapuesto
al problema de regresión está
detallado en el apartado 1.2.
Las descripciones de conceptos en términos de reglas se pueden obtener me-
diante algoritmos genéticos. En este caso es necesario definir la estructura de
los cromosomas de manera que para cada una de las posibles reglas haya una
representación.
© FUOC • PID_00200713 10 Aprendizaje

En este apartado introducimos el tema del aprendizaje. Empezamos con un


ejemplo que aplica los algoritmos genéticos a los sistemas difusos. Después,
este ejemplo nos servirá para ilustrar algunos conceptos. Más tarde daremos
una clasificación de los métodos de aprendizaje y plantearemos el problema
del sesgo y la varianza (términos complementarios para la evaluación de la
capacidad de generalización de un método). El apartado acaba presentando
los métodos de aprendizaje que se verán en este módulo.

1.1. Algoritmos genéticos para el ajuste de sistemas difusos

A continuación se describe el uso de los algoritmos genéticos para la determi-


nación de parámetros en sistemas difusos. Vemos que los algoritmos genéticos
permiten ajustar las funciones de pertenencia que hay asociadas a los conjun-
tos difusos de los términos lingüísticos que aparecen en las reglas.

Antes de describir la aplicación, repasemos brevemente tanto los sistemas di-


fusos, como los algoritmos genéticos. Empecemos por estos últimos.

1.1.1. Algoritmos genéticos para el aprendizaje de sistemas


difusos

Los algoritmos genéticos, inspirados en la evolución biológica, consisten en la Ved también


evolución en paralelo de una población de soluciones posibles. La implemen-
Podéis ver el apartado "Algo-
tación requiere la codificación de las posibles soluciones de un problema en ritmos genéticos" del módu-
forma de los llamados cromosomas (secuencias de genes). Después, en iteracio- lo "Resolución de problemas y
búsqueda" de la asignatura In-
nes sucesivas, se seleccionan aquellos cromosomas que corresponden a solu- teligencia artificial,donde se in-
troducen los algoritmos gené-
ciones mejores y se eliminan los que corresponden a soluciones peores. Con ticos.
los cromosomas seleccionados se construyen nuevos cromosomas (mediante
cruces, mutaciones y otras operaciones inspiradas en la evolución genética).
En otro apartado se presentó como ejemplo la maximización de la función
g(x) en el intervalo real [0, 16):

Para conseguir el máximo de la función se consideraban poblaciones de nú-


meros en el intervalo [0, 16). Para representar estos números, se consideraron
16 bits. Por lo tanto, eran cromosomas correctos todos los enteros positivos
representables con 16 bits. Es decir, los enteros del intervalo [0, 65536). Como
la solución la queríamos en el intervalo [0, 16), dado un cromosoma cr, cons-
truíamos la posible solución en [0, 16) haciendo:

(entero(cr)/65.536) * 16 = entero(cr)/4.096

En el ejemplo tomábamos una población de ocho cromosomas. En cada pa-


so seleccionábamos los mejores (y el mejor era el que daba un valor mayor
de la función g(x), y éstos eran los que se utilizaban para construir la nueva
© FUOC • PID_00200713 11 Aprendizaje

población mediante las operaciones de cruce (simple y doble), mutación e in-


versión. Cada una de las operaciones era aplicada con probabilidad 0,2 (y con
probabilidad 0,2 el cromosoma no era modificado).

1.1.2. Los sistemas difusos: resumen

Los sistemas difusos utilizan reglas de la forma: Ved también

En el apartado "Sistemas difu-


sos" del módulo "Incertidum-
Si X1 es t1,a y X2 es t2,b y X3 es t3,c y... y Xn es tn,z bre y razonamiento aproxima-
do" de la asignatura Inteligen-
entonces Y es tY,o cia artificial se describió el fun-
cionamiento de los sistemas
basados en reglas difusas.

X1, ..., Xn son variables de entrada e Y es la variable de salida (la variable sobre
la que queremos concluir algo). Cada una de las Xi está relacionada con un
término lingüístico ti, j que tiene asociado un conjunto difuso. Así, la aplica-
ción de la regla representa la evaluación del conjunto difuso ti, j de acuerdo
con el valor que toma la variable Xi.

1.1.3. El problema y su codificación

La construcción de un sistema difuso no es una tarea nada fácil porque requie-


re un experto que suministre todo el conocimiento necesario para definir el
sistema: las variables (de entrada y de salida), las reglas, los términos lingüís-
ticos, las funciones de pertenencia, etc. Tanto las redes neuronales como los
algoritmos genéticos se han utilizado para facilitar esta tarea.

Bibliografía

Un resumen de diferentes métodos para determinar/mejorar los parámetros de los siste-


mas difusos se puede encontrar en:

P.�Bonissone (1996). "Soft Computing: the Convergence of Emerging Problem-Solving


Technologies". Boletín de l'ACIA (núm. 7, pág. 17-35).

Una revisión extensa de la combinación de algoritmos genéticos con sistemas difusos se


puede encontrar en:

O.�Cordon;�F.�Herrera;�M.�Lozano. "A classified review on the combination fuzzy lo-


gic-genetic algorithms bibliography". Technical Report 95129. Departamento de Ciencias
de la Computación e Inteligencia Artificial, Universidad de Granada, ftp://decsai.ugr.es/
pub/arai/tech_rep/ga-fl/rev-bib.ps.Z

Las redes neuronales se usan, principalmente, para la construcción de reglas a


partir de ejemplos y los algoritmos genéticos para ajustar los parámetros.

Si inferimos que ya tenemos todas las reglas definidas y que siguen la estruc-
tura dada más arriba, lo que necesitamos para que el sistema funcione correc-
tamente es que cada término tenga asociado su conjunto difuso. Estos con-
juntos difusos se deben definir de manera óptima para que la inferencia (la
asignación de un valor a la variable de salida) sea lo más ajustada posible al
valor esperado.
© FUOC • PID_00200713 12 Aprendizaje

Con el fin de resolver este problema mediante algoritmos genéticos, lo que


necesitamos es poder codificar las posibles soluciones del problema (en este
caso encontrar las funciones de pertenencia), definir los operadores de mani-
pulación genética y una función de evaluación (lo bien que se comporta el
sistema para una posible solución concreta o unos conjuntos difusos concre-
tos). Empecemos por la función de evaluación.

Pensemos que el sistema para el cual diseñamos el algoritmo de aprendizaje


corresponde a un sistema de control de la temperatura (por ejemplo, para un
aire acondicionado). En este caso, lo que interesa es que dada una temperatura
(la que tiene la habitación en un momento determinado) y una temperatura
objetivo (la que queremos para la habitación), lleguemos a la temperatura ob-
jetivo lo más rápido posible (evidentemente, se podrían considerar otras ma-
neras de evaluar la mejor solución como, por ejemplo, el coste energético ne-
cesario para conseguir la temperatura objetivo). Así, si t(t) es la temperatura en
el instante t y t0 es la temperatura objetivo, una manera de evaluar la eficiencia
del sistema en T instantes de tiempo es considerar:

2
Eficiencia = ∑T>t>0 (t(t) − to)

La figura 1 muestra dos ejemplos de sistemas en los que el primero es más


eficiente que el segundo, de acuerdo con la expresión que hemos dado más
arriba, dado que la diferencia entre la temperatura y t0 es menor.

Figura 1. Cálculo de la eficiencia en el sistema

El otro elemento es considerar cuáles son las soluciones posibles. Como se tra-
ta de ajustar las funciones de pertenencia, lo que tenemos que hacer es definir
una representación a fin de que las funciones de pertenencia que tengan inte-
rés se puedan representar. Si consideramos funciones de pertenencia triangu-
lar y de manera que el conjunto de funciones de pertenencia asociadas a una
variable defina una partición difusa, basta con definir los puntos normales de
las funciones de pertenencia. Es decir, encontrar los puntos x0, x1, ..., xN de
la figura 2.
© FUOC • PID_00200713 13 Aprendizaje

Figura 2. Partición difusa con funciones de pertenencia triangular donde los puntos normales corresponden a x0, x1, ..., xN.

Para representar en un cromosoma todos los puntos xi, podemos utilizar la


misma idea que hemos usado para maximizar la función g(x) del apartado
1.1.1. Es decir, utilizar una codificación mediante secuencias de bits. Sin em-
bargo, con el fin de ahorrarnos la consideración de las restricciones que xi ≤ xi+1
utilizamos las diferencias entre xi+1 y xi en lugar de representar propiamente los
puntos xi. Así, tendremos que un cromosoma es una secuencia de N enteros:

<n0, n1, ..., nN>

descritos con una secuencia de bits que representan los valores:

x0 = a

a+d1

a+d1+d2

< x0, (x1 − x0), (x2 − x1), (x3 − x2), ..., (xN − xN–1)>

Utilizaremos di para denotar estas diferencias. Así pues, d0 = x0 y para los otros
i > 0 tenemos que di = xi−xi–1.

xN = a+d1+d2+ ... + dN

Como los valores de una variable están en un intervalo arbitrario, que imagi-
namos igual al intervalo [a, b], tendremos que normalizar los valores de los xi
de manera que estén en este intervalo (es decir, que x0 = a, xN = b). Suponiendo
que d0 siempre es cero, la normalización corresponderá a tomar:

xi = a +(b − a)(∑j≤i dj) / (∑j≤N dj)

Se puede notar que con esta definición xN = b, y también que con d0 = 0 en-
tonces x0 = a. Puesto que d0 debe ser cero, en la práctica consideraremos los
cromosomas sin n0. Así tendremos un cromosoma de la forma:
© FUOC • PID_00200713 14 Aprendizaje

<n1, ..., nN>

El tercer elemento que hay que definir son los operadores de manipulación
genética. Podemos utilizar los mismos que en el apartado 1.1.1: cruce (sim-
ple y doble), mutación e inversión. Si utilizamos esta codificación y la expre-
sión Eficiencia que hemos dado más arriba como función objetivo, ya pode-
mos aplicar los algoritmos genéticos. Empezaríamos generando una población
de sistemas difusos y evaluaríamos cada uno mediante la función Eficiencia.
Después seleccionaríamos los mejores y generaríamos una nueva población
aplicando los operadores de manipulación genética. Con la nueva población
volveríamos a repetir el proceso.

1.2. Una clasificación de las técnicas de aprendizaje

Hemos comentado antes que hay diferentes técnicas de aprendizaje, y que


algunas de las diferencias que se dan entre éstas se producen por aplicarlas
en entornos con diferentes formalismos de representación. Sin embargo, hay
otros aspectos que caracterizan los distintos métodos. En este apartado damos
una clasificación de los métodos de aprendizaje describiendo las características
más importantes.

En particular, uno de los aspectos más importantes a la hora de considerar estos


métodos es su supervisión. Es decir, de qué tipo de información se dispone
sobre el resultado que tiene que dar un sistema basado en el conocimiento. Así,
si consideramos un sistema como una función que da resultados (la salida del
sistema) a partir de cierta información (las entradas del sistema), tenemos tres
tipos de métodos según lo que se pueda decir sobre la salida. Estos tipos son
los siguientes: métodos con aprendizaje supervisado, aprendizaje por refuerzo
y aprendizaje no supervisado. A continuación, los repasamos y damos algunos
ejemplos.

Aprendizaje supervisado: corresponde a la situación en la que hay co-


nocimiento completo sobre cuál es la respuesta que se tiene que dar en
una determinada situación. Así, cuando tenemos aprendizaje supervi-
sado, el objetivo es conseguir un sistema basado en el conocimiento que
reproduzca la salida cuando estemos en una situación que corresponda
a la entrada.

(3)
En muchos casos, el problema se puede describir formalmente como un pro- En inglés, training set.
blema de optimización o como la aproximación de una función a partir de
unos ejemplos (pares entrada/salida). Cuando el problema se plantea de esta
manera, se habla de aprendizaje�inductivo. También se habla a menudo de
aprendizaje a partir de ejemplos, y el conjunto de ejemplos se llama conjunto
de�entrenamiento3.
© FUOC • PID_00200713 15 Aprendizaje

Para formalizar este tipo de aprendizaje, consideremos un conjunto de entre-


namiento C formado por N ejemplos, donde cada ejemplo es un par (x, y) en
el que x es un vector de dimensión M e y es el resultado de aplicar una fun-
ción f (que no conocemos) al vector x. Por lo tanto, tenemos N ejemplos en
un espacio de dimensión M. Es decir X = { x1, ..., xi, ..., xN }. En caso de que
haya un error en las medidas, tenemos que y es f(x) más un cierto error ε. Es
decir, y = f(x) + ε. A partir de esta información se quiere construir un modelo
que denotamos por MC (utilizamos el subíndice porque el modelo depende
del conjunto de ejemplos C). Así, el objetivo es conseguir que el modelo MC
aplicado a un elemento x dé semejante a f(x). Es decir, MC(x) es una aproxi-
mación de f(x). Cuando no haya peligro de confusión, usaremos simplemente
M para expresar el modelo.

A la hora de considerar el aprendizaje supervisado, conviene distinguir dife-


rentes tipos de problemas porque los métodos de aprendizaje que se aplican
son diferentes. Hay que decir que esta división no es propia del aprendizaje
supervisado sino general, pero en los otros tipos de aprendizaje no es tan re-
levante. Ahora pasaremos a considerar los diferentes tipos de problemas: pro-
blemas de regresión, de clasificación y de búsqueda.

• Problemas de regresión: cada instancia, o ejemplo, incluye un atributo


(consideramos la salida como un dato más de la descripción del objeto)
con la solución. El objetivo de los sistemas basados en el conocimiento
es reproducir este atributo. La regresión corresponde al caso de tener un
atributo solución de tipo numérico.
Dado que en las redes neuronales tanto las entradas como las salidas son
habitualmente numéricas, las podemos tomar como ejemplo de método
de aprendizaje de esta familia. Los métodos de regresión estadística (por
ejemplo, construir una recta de regresión a partir de un conjunto de pun-
tos) también pertenecen a este grupo.

(4)
• Problemas de clasificación4: como en el caso de la regresión, cada instan- En inglés, classification.

cia incluye un atributo con la descripción de la solución. En este caso, el


atributo es categórico (no numérico) o bien binario. El objetivo del apren-
dizaje es inducir un modelo que predice con esmero este atributo.
Cuando cada valor del atributo se ve como un concepto diferente, el mo-
delo construido define condiciones bajo las cuales se infieren los diferen-
tes conceptos. Por eso, se dice que los algoritmos construyen descripciones
de conceptos. Los algoritmos para construir reglas como la que se ha dado
más arriba de clasificación de la Iris setosa son de esta familia.
Dado que las redes bayesianas utilizan principalmente valores categóricos
(por ejemplo, concluyen sobre una cierta enfermedad), podemos ver los
algoritmos que las construyen a partir de ejemplos como pertenecientes
a esta familia.
© FUOC • PID_00200713 16 Aprendizaje

• Problemas de búsqueda: corresponde al aprendizaje relacionado con la re- Ved también


solución de problemas. Sabemos que la resolución de problemas se basa
La resolución de problemas se
en el uso de algoritmos de búsqueda que construyen una solución a partir estudió en el módulo "Resolu-
de la aplicación de una serie de pasos, donde cada paso consiste en aplicar ción de problemas y búsque-
da" de la asignatura Inteligen-
un operador. Hay métodos de aprendizaje que se aplican para incorporar cia artificial.

el conocimiento necesario para resolver problemas o para mejorar el ren-


dimiento del proceso de búsqueda.
El aprendizaje puede ir ligado a los diferentes elementos involucrados en
la búsqueda. Por ejemplo, a los diferentes tipos de conocimiento como el
conocimiento estratégico (que guía la búsqueda) o el aprendizaje de ope-
radores. De hecho, eso último corresponde al llamado aprendizaje de ma-
crooperadores, que son operadores complejos que se definen en términos de
operadores que ya hay (y más simples). También podemos tener aprendi-
zaje para las heurísticas (aprendizaje de heurísticas a partir del estudio de
las trazas que genera un algoritmo de búsqueda para encontrar soluciones).

Los macrooperadores fueron introducidos en el sistema de planificación STRIPS. STRIPS


construía planes y después los almacenaba con el fin de poder reutilizarlos de manera
que el sistema incrementara su eficiencia. STRIPS se describen en R. E. Fikes; N. J. Nils-
son (1971). STRIPS: "A new approach to the application of theorem proving to problem
solving." Artificial intelligence 2 (núm. 3-4, pág. 189-208). Volveremos a considerar los
macrooperadores en el apartado 5, ya que es un aprendizaje ligado al conocimiento.

En la asignatura Inteligencia artificial vimos como aplicación de la búsqueda el problema


de integración simbólica de funciones. Un ejemplo de aprendizaje de heurísticas es el
sistema LEX de Mitchell, que aprendía heurísticas para problemas de este tipo. El sistema
LEX se describe en:

T. M. Mitchell; P. E. Utgoff; R. Banerji (1983). Learning by experimentation: acquiring and


refining problem-solving heuristics (pág. 163-190), en el libro editado por R. S. Michalski;
J. G. Carbonell; T. M. Mitchell. Machine Learning: An Artificial Intelligence Approach. San
Mateo, California, Estados Unidos: Morgan Kaufmann.

Cuando el método de aprendizaje sirve para mejorar el conocimiento de ma- Aprendizaje deductivo y
nera que sea más sencillo o más eficiente de utilizar en la búsqueda, hablamos aprendizaje inductivo

de métodos de aprendizaje. Aquí, sin embargo, no hay incorporación de co- De acuerdo con lo que he-
nocimiento nuevo, sino sólo reelaboración de conocimiento (es decir, dedu- mos visto en este apartado, el
aprendizaje inductivo extrae
cible del conocimiento ya incluido en el sistema). conocimiento nuevo a partir
de los ejemplos, mientras que
el deductivo, no. Sólo es una
reelaboración de conocimiento
En el entorno de los problemas de búsqueda tendremos el aprendizaje super- ya conocido.
visado cuando dispongamos de un experto que nos dé información sobre el
operador adecuado en un instante concreto.
© FUOC • PID_00200713 17 Aprendizaje

Aprendizaje por refuerzo: en este caso, el conocimiento sobre la calidad


del sistema sólo es parcial. No se dispone del valor que no corresponde
a la salida para un determinado conjunto de valores de entrada sino,
solamente, una gratificación o una penalización según el resultado que
ha dado el sistema. Por ejemplo, si un robot planifica una trayectoria
y choca con un objeto, recibirá una penalización, pero en ningún mo-
mento hay un experto que le ofrezca una trayectoria alternativa correc-
ta. De la misma manera, si la trayectoria planificada por el robot no
provoca ninguna colisión, el robot recibe una gratificación. Las planifi-
caciones que el robot haga a partir de este momento tendrán en cuenta
las penalizaciones/gratificaciones recibidas.

El ejemplo de los algoritmos genéticos para sistemas difusos se puede ver como
caso de aprendizaje por refuerzo porque no se proporciona la solución correcta
sino sólo una evaluación (más o menos positiva) de la solución planteada.

Aprendizaje no supervisado: sólo se dispone de información sobre las


entradas, y no sobre las salidas. El aprendizaje tiene que extraer conoci-
miento útil a partir de la información disponible. En este tipo de apren-
dizaje están los algoritmos de categorización (que permiten ordenar la
información disponible).

Aunque la clasificación presentada es la habitual, no es la única. Así, pues,


hay otras maneras de clasificar los métodos de aprendizaje y subrayar otros
elementos de este aprendizaje. Por ejemplo, Luger y Stubblefield (1997) con-
sideran el aprendizaje basado en símbolos, el aprendizaje conexionista y el
aprendizaje social y emergente. El basado en símbolos corresponde a la situa-
ción en la que el conocimiento está expresado de manera simbólica, mientras
que el conexionista corresponde a las redes neuronales donde el conocimiento
está distribuido en la red. Como ejemplo de aprendizaje social y emergente,
toma los algoritmos genéticos y otros modelos similares, dado que en estos
modelos el individuo que sobrevive se ha construido a partir de la interacción
con los otros individuos y este individuo se forma (aparece) a medida que pa-
san generaciones de individuos:

"Through this simple process of introducing variations into successive generations and
selectively eliminating less fit individuals, adaptations of increasing capability and diver-
sity emerge in a population. Evolution and emergence occur in populations of embodied
individuals, whose actions affect others and that, in turn, are affected by others. Thus,
selective pressures come not only from the outside environment, but also from interac-
tions between members of a population. An ecosystem has many members, each with
roles and skills appropriate to their own survival, but more importantly, whose cumula-
tive behavior shapes and is shaped by the rest of the population."

G. F. Luger; W. A. Stubblefield (1997). Artificial intelligence (pág. 714). California: Addi-


son-Wesley.
© FUOC • PID_00200713 18 Aprendizaje

1.3. El sesgo y la varianza

La construcción de modelos mediante métodos de aprendizaje inductivo (uti-


lizando el aprendizaje para clasificar o hacer regresión) requiere la capacidad
de generalización a partir de los ejemplos de los que se dispone. Así, por ejem-
plo, cuando se construye una regla de clasificación para pacientes de una de-
terminada enfermedad a partir de ejemplos, nunca tendremos ejemplos de
todos los enfermos posibles sino solamente de unos cuantos. Sin embargo, a
partir de estos ejemplos se tiene que construir una regla que clasifique no sólo
los que ya teníamos, sino también todos los demás. Por lo tanto, el algoritmo
de aprendizaje correspondiente tiene que ser capaz de generalizar a fin de que
la regla que se construya pueda tratar todos los casos de manera correcta.

En la figura 3 se ilustra el problema de la generalización y se consideran pro-


blemas con una variable de entrada y una variable de salida. La figura muestra
cuatro puntos y tres generalizaciones posibles.

Figura 3. Tres generalizaciones posibles para unos conjuntos de puntos

En la figura hay tres posibles generalizaciones para un conjunto de cuatro


puntos. La generalización aproxima los puntos a considerando sólo rectas ho-
rizontales (con discontinuidad), la b utiliza rectas y la c permite considerar
polinomios de grado tres. Estas consideraciones sobre el modelo corresponden
al sesgo.

(5)
La generalización plantea dificultades porque a partir de un conjunto de ejem- En inglés, inductive bias.
plos hay muchas generalizaciones posibles (y no todas darán el resultado co-
rrecto para los casos no incluidos en el conjunto de entrenamiento). Por eso, Nota
los algoritmos incorporan heurísticas para dirigir la búsqueda y también in-
La limitación en el aprendiza-
corporan otros elementos con el fin de restringir el espacio de búsqueda (el je que provoca el sesgo está
relacionada con la traducción
espacio de generalizaciones posibles). Todo aquello que restringe el espacio de la palabra inglesa bias por
'predisposición' (tal como apa-
de búsqueda es lo que se llama sesgo inductivo5. También provoca sesgo el rece en la versión castellana
formalismo de representación elegido, puesto que hay conocimiento que no del libro Artificial intelligence de
E. Rich y K. Knight). Así, el sis-
se puede expresar correctamente (esto va ligado a las capacidades de modeli- tema tiene predisposición pa-
ra aprender ciertas cosas, y no
zación de cada formalismo –la capacidad de modelización se estudia desde el para aprender otras.
punto de vista lógico de los formalismos).
© FUOC • PID_00200713 19 Aprendizaje

De acuerdo con lo que se ha dicho, el sesgo permite construir generalizaciones


sin estar desbordado por el tamaño del espacio de la búsqueda. Sin embargo,
el sesgo provoca inconvenientes porque se puede dar el caso de que generali-
zaciones interesantes no se puedan aprender porque el conocimiento necesa-
rio no está incorporado en el sistema. Así, por ejemplo, en la figura anterior
puede ser interesante considerar polinomios de grado tres. En caso de que sólo
se permitieran rectas, no podríamos construir el modelo de la figura c.

El ejemplo visto en el subapartado 1.1.1 para el aprendizaje de funciones de Ved también


pertenencia contiene sesgo inductivo porque representa que las reglas ya son
Los tres niveles de abstracción
conocidas y, por lo tanto, no se pueden modificar los antecedentes o los con- (nivel de conocimiento, lógi-
secuentes. Además, se infiere que las funciones de pertenencia son triangula- co y de símbolo) mediante los
cuales se pueden ver los for-
res (por lo tanto, no se pueden conseguir funciones con otras formas como malismos de representación se
vieron en el apartado 2.1 del
gausianas) y forman particiones difusas. módulo "Sistemas basados en
el conocimiento" de la asigna-
tura Inteligencia artificial.

Recordemos:

La esperanza�matemática (o media) de una variable X con probabili-


dad (función de densidad) p es:

E(X) = ∑x ∈ X x · p(x)

O bien, si los valores de la variable no están agrupados y N es el número


de valores que se consideran en X, es:

E(X) = (1/N) ∑ x ∈ Xx

La varianza de una variable X, cuando los valores no están agrupados,


es:

s2 = (1/N) ∑ (xi − E(X))2

que, para aquellos casos con E(X) = 0, corresponde, evidentemente, a:

s2 = (1/N) ∑ (xi)2

En los métodos de aprendizaje para problemas de regresión el sesgo se forma-


liza teniendo en cuenta la diferencia entre el valor estimado por nuestro mo-
delo (si x0 es el valor de entrada y M nuestro modelo, utilizamos M(x0) para
denotar el valor estimado) y el valor real (el valor de la función que modeliza-
mos, que denotamos f, aplicada al mismo valor x0):

Sesgo(M(x0)) = E(M(x0)) − f(x0)

En esta expresión, E(M(x0)) corresponde a la esperanza de nuestro mode-


lo para x0 cuando consideramos distintos conjuntos de ejemplos. De ma-
nera informal podemos decir que si disponemos de cinco conjuntos de
ejemplos C = { C1, C2, C3, C4, C5 }, E(M(x0)) corresponde a la media del
© FUOC • PID_00200713 20 Aprendizaje

resultado de construir cinco modelos distintos ,


cada uno definido a partir de uno de los conjuntos de ejemplos:
.

Evidentemente, tendremos que el método no tiene sesgo cuando la esperanza


del modelo construido corresponde perfectamente a la función f en el punto
x0. En cambio, el método tiene sesgo si la esperanza del modelo es diferente
de f(x0). Es importante ver que el hecho de no tener sesgo no quiere decir que
el modelo que se construye a partir de un conjunto de ejemplos concretos
aproxime bien f(x0). En el ejemplo podemos tener que E(M(x0)) = f(x0), pero
para todo . Un aspecto importante de un método de apren-
dizaje para asegurar que aproxima bien las funciones es que sea consistente.
Se dice que un método es consistente si al incrementar el tamaño del conjun-
to de ejemplos, tenemos que el modelo se acerca a la función f. Es decir, que
cuando |C1| < |C2| < |C3| <... tenemos que para valores de i crecientes
tiende hacia f(x0). Más formalmente, cuando se incrementa el tamaño de los
ejemplos, la esperanza tiende a f(x0).

Podemos subrayar que el sesgo inductivo definido más arriba puede provocar,
cuando reduce el espacio de búsqueda, que la esperanza del valor del modelo
para x0 se aleje de f(x0), e incremente el sesgo (M(x0)). Por ejemplo, el uso
de funciones de pertenencia triangulares y particiones difusas provoca que
el modelo de un sistema difuso sea continuo. Si la función f es discontinua,
podría ir mejor que términos contiguos tuvieran funciones de pertenencia con
intersección nula. Por lo tanto, la reducción del espacio de búsqueda en este
caso puede provocar un aumento del sesgo.

El sesgo no es el único elemento que se debe tener en cuenta a la hora de eva-


luar un método de aprendizaje. Otro aspecto importante es la varianza que,
como es sabido, corresponde a saber la posible dispersión de los valores en
torno a la esperanza. Así, si para un modelo tenemos que para un valor x0 se
cumple que E(M(x0)) es igual a f(x0), pero la varianza es muy grande, podemos
tener que para el conjunto de ejemplos que tenemos en la práctica, el valor
obtenido de M(x0) sea muy diferente de f(x0). Por lo tanto, es importante co-
nocer la varianza. La varianza del modelo se define como:

2
Varianza (M(x0)) = E([M(x0) – E(M(x0))] )

Cuando consideramos diversos métodos de aprendizaje, entre los que tienen


el mismo sesgo siempre interesará el que tenga una varianza menor.
© FUOC • PID_00200713 21 Aprendizaje

Figura 4. Distribuciones de probabilidad para métodos de aprendizaje

En la figura 4 se da una representación gráfica de distintas distribuciones de


probabilidad para modelos que sólo dependen de un único parámetro p conti-
nuo. La distribución corresponde al valor del modelo aplicado a x0. La primera
figura corresponde a un caso de método no sesgado con varianza pequeña,
mientras que la segunda corresponde a un método sesgado con varianza gran-
de. La tercera figura representa distintas distribuciones, cada una construida
con un conjunto de ejemplos mayor que el anterior. Así, la distribución P1
corresponde a la de los modelos con número de ejemplos igual a NE1; P2 a una
distribución para modelos con NE2 ejemplos, y Pi con NEi ejemplos. Tenien-
do en cuenta que NE1 < NE2 < NE3 < NE4 < NE5, el resultado es que la figura
corresponde a un método de aprendizaje consistente porque la esperanza del
modelo tiende a f(x0).

1.3.1. Sesgo y varianza cuando se evalúa el error de un modelo

En este apartado estudiamos más detalladamente el sesgo y la varianza, y ve-


mos cómo están relacionados con el error de un modelo. En particular, vemos
cómo el error se puede describir en términos de estos dos elementos. La forma-
lización de la relación confirmará lo que ya hemos expresado informalmente
más arriba: sesgo y varianza proporcionan información sobre los diferentes
métodos de aprendizaje.

Para la formalización de la relación entre el error de un modelo y su sesgo


y varianza, utilizamos una notación que amplía la del subapartado 1.2. Esta
notación aparece representada en la figura 5 y resumida en la tabla siguiente.

Es decir, imaginemos un valor de entrada que denotamos x y un sistema que


queremos modelizar que corresponde a la función f. Pensemos que esta fun-
ción está sujeta a un error ε que sigue una distribución con esperanza cero.
Por lo tanto, la correspondiente salida del sistema que queremos modelizar,
que denotamos y, es y = f(x) + ε. El modelo que construimos a partir de un
conjunto c se denota por Mc. Para denotar el error entre el modelo y el sistema
real, utilizamos e. Es decir, e = Mc(x) − y = Mc(x) − (f(x) +ε).
© FUOC • PID_00200713 22 Aprendizaje

Siguiendo el esquema que hemos visto en el apartado anterior, la evaluación


de un método de aprendizaje considera la aplicación de un modelo sobre una
determinada entrada x0 para saber cuál es su valor de salida, y el error en re-
lación con el valor conocido. En este punto, en lugar de considerar la aplica-
ción en un único modelo, consideramos que hemos generado un conjunto de
modelos a partir de conjuntos de ejemplos diferentes, y consideramos el valor
de salida esperado.

Figura 5. El error en un modelo

Resumen de notación

x Entrada del sistema

X = { x1, x2, ..., xN} Conjunto de entradas del sistema

C = {c1, c2, ..., cK } Conjunto de ejemplos (cada ci es un subconjunto de X)

f(x) Modelo ideal del sistema que queremos modelizar

ε Error que se añade al sistema real; suponemos que el error sigue una
distribución con esperanza cero: E(ε) = 0

y = f (x) + ε Salida que ofrece el sistema que queremos modelizar

Mc(x) Resultado del modelo que construimos a partir del conjunto de ejem-
plos c

e = Mc(x) − y Error del modelo

Así, si consideramos diversos conjuntos de ejemplos que llamamos C (con K


la cardinalidad de C), el valor esperado para x0 será:

2 2
E(e ) = (1/K) ∑c∈C (y0 − Mc(x0))
© FUOC • PID_00200713 23 Aprendizaje

Que de acuerdo con la equivalencia de yi = f(xi) + εi (utilizamos εi para expre- Nota


sar que cada ejemplo tiene un error aunque εi no dependa realmente de xi)
Notad que para los pares (x, y)
podemos rescribir como: incluidos en los conjuntos de
ejemplos c de C, ε0 depende
de c porque ε0 puede ser dife-
(1/K) ∑c∈C (f(x0) + ε0 − Mc(x0))
2 rente para ejemplos distintos.

que es equivalente a:

2 2 2
= (1/K) ∑[f(x0) + ε0 + Mc(x0) + 2 f(x0) · ε0 − 2 f(x0) · Mc(x0) − 2 ε0 · Mc(x0)]

2 2
= (1/K)∑ [f(x0) + Mc(x0) − 2 f(x0) · Mc(x0)] +

2
+ (1/K)∑ [ε0 ] +

+ (1/K)∑ [2 f(x0) · ε0 − 2 ε0 · Mc(x0)]

En esta última expresión, el primer término corresponde a la esperanza de


(f(x0) − Mc(x0))2 y el segundo término a la esperanza de ε2. El tercer término
corresponde a la esperanza de:

2ε · (f(x0) − M(x0))

Sin embargo, eso es cero porque el ruido ε no está correlacionado con las sa-
lidas de los modelos y, cuando las variables no están correlacionadas, la espe-
ranza del producto es el producto de las esperanzas y, por la hipótesis que he-
mos tomado antes, E(ε) = 0. Por lo tanto, la expresión E(e2) es igual a:

2 2
E((f(x0) − M(x0)) ) + E(ε )

Se puede observar que, en esta expresión, sólo el primer término tiene en cuen-
ta el modelo que construimos (es decir, M(x0)) porque el segundo término, que
corresponde a la varianza del error, sólo depende del error ε y no de M(x0). El
término E((f(x0) − M(x0))2) corresponde a la esperanza del error entre el mode-
lo ideal del sistema que modelizamos y el modelo que hemos construido. El
mínimo para este término se obtiene cuando f(x0) = M(x0).

2
El término E((f(x0) − M(x0)) ) se puede descomponer en dos nuevos términos
que corresponden al sesgo del error y a la varianza del error. Para verlo, toma-
mos la expresión E((f(x0) − M(x0))2) y vemos, sumando y restando E(M(x0)),
que es equivalente a:

2 2
E((f(x0) − M(x0)) ) = E((f(x0) − E(M(x0)) − (M(x0) − E(M(x0)))) )
© FUOC • PID_00200713 24 Aprendizaje

Que, puesto que la esperanza de una suma es equivalente a la suma de las


esperanzas, se puede transformar en:

2
E((f(x0) − E(M(x0)) − (M(x0) − E(M(x0)))) ) =

2 2
E([f(x0) − E(M(x0))] + [M(x0) − E(M(x0))] − 2 [f(x0) − E(M(x0))] [M(x0) − E(M(x0))])

2 2
= E([f(x0) − E(M(x0))] ) + E([M(x0) − E(M(x0))] ) − E(2 [f(x0) − E(M(x0))] [M(x0)
− E(M(x0))])

Desarrollando el tercer término de esta igualdad (la esperanza del modelo


M(x0) necesita considerar todos los modelos correspondientes a todos los con-
juntos c ∈ C) obtenemos:

E(2[f(x0) − E(M(x0))] [M(x0) − E(M(x0))]) = ∑c∈C (1/K) (2[f(x0) − E(M(x0))] [ Mc(x0)


− E(M(x0))])

Aquí se puede ver que da cero (notad que hemos dividido por 2, que no afecta
al resultado):

∑c∈C (1/K)[f(x0) − E(M(x0))] [ Mc(x0) − E(M(x0))]) =

2
=∑c∈C (1/K) [f(x0) Mc(x0) − f(x0) E(M(x0)) − E(M(x0)) Mc(x0) + [E(M(x0))] =

2
= f(x0)∑c∈C (1/K) Mc(x0) − f(x0)E(M(x0)) − E(M(x0)) ∑c∈C (1/K) Mc(x0) + [E(M(x0))] =

2
= f(x0)E(M(x0)) − f(x0)E(M(x0)) − E(M(x0))E(M(x0)) + [E(M(x0))] = 0 + 0

Por lo tanto, queda:

2 2 2
E((f(x0) − M(x0)) ) = E([f(x0) − E(M(x0))] ) + E([M(x0) − E(M(x0))] )

2
En esta expresión, el primer término E([f(x0) − E(M(x0))] ) es igual a:

2
[f(x0) − E(M(x0))]

porque f(x0) no depende del conjunto de ejemplos, y E(M(x0)) es la esperanza


para todos los ejemplos y, por lo tanto, también es constante. Por lo tanto,
podemos escribir la igualdad siguiente:

2 2 2
E((f(x0) − M(x0)) ) = [f(x0) − E(M(x0))] + E([M(x0) − E(M(x0))] )
© FUOC • PID_00200713 25 Aprendizaje

En esta expresión, el término f(x0) − E(M(x0)) corresponde, como hemos visto


2
en el apartado anterior, al sesgo del error y E([M(x0) − E(M(x0))] es la varianza
del error:

2 2
E((f(x0) − M(x0)) ) = Sesgo (M(x0)) + Varianza(M(x0))

De acuerdo con lo que se ha expuesto, el valor esperado por el error es:

2 2
E(e ) = E(ε ) + Sesgo(M(x0)) + Varianza(M(x0))

por lo tanto, el error tiene en cuenta los dos elementos descritos en el subapar-
tado anterior.

Sin embargo, el sesgo y la varianza son elementos contradictorios, ya que de-


crecer el sesgo generalmente implica incrementar la varianza, y a la inversa.

1.3.2. Compromiso entre sesgo y varianza

En la construcción de modelos el sesgo decrece a medida que el modelo se Nota


complica.
Generalmente, un modelo más
complejo corresponde a un
Así, el sesgo sigue típicamente una curva como la de la figura 6. Con más número de parámetros más
elevado o a un rango mayor
parámetros, el modelo se va ajustando cada vez más a los ejemplos (y a los para los valores de los paráme-
tros.
errores que los ejemplos incorporan).

Figura 6. Sesgo con relación a la complejidad del modelo

La varianza, en cambio, sigue una curva como la de la figura 7. Es decir, crece


la varianza al incrementar la complejidad. Eso es debido al hecho de que pe-
queños cambios en los ejemplos provocan grandes cambios en los modelos.
© FUOC • PID_00200713 26 Aprendizaje

Figura 7. Varianza en relación con la complejidad del modelo

Esta contradicción entre la varianza y el sesgo se puede ver cuando utilizamos


polinomios para aproximar un conjunto de puntos. Es conocido que un con-
junto de n puntos puede ser aproximado mediante una regresión de un poli-
nomio de grado m < n. Cuanto mayor es el grado del polinomio (y mayor el
número de parámetros –recordemos que un polinomio de grado m tiene m + 1
parámetros para determinar–), menor es la diferencia entre el valor estimado
y el valor original para los puntos que tenemos. En este sentido, el valor ópti-
mo se encuentra cuando m = n porque todos los valores son aproximados con
error cero. Así, en este caso, cuando crece el grado y, por lo tanto, el número de
parámetros, el sesgo tiende a cero (el valor estimado tiende al valor correcto).

Sin embargo, la varianza crece con la complejidad del modelo, porque a medi-
da que crece el grado del polinomio, variaciones muy pequeñas en la posición
de los puntos pueden provocar variaciones del modelo muy grandes. Así, si a
partir de doce puntos en un plano aproximamos la posición de una recta, el
cambio de un punto no provocará cambios muy grandes en la posición de la
recta. Por el contrario, si la aproximación es con un polinomio de grado once,
el cambio de un punto puede provocar que la nueva curva sea completamente
distinta de la anterior.
© FUOC • PID_00200713 27 Aprendizaje

Figura 8. Ejemplos de sesgo grande y varianza pequeña (1); y sesgo pequeño y varianza grande (2)

(6)
Por lo tanto, aunque a primera vista puede parecer que si disponemos de unos En inglés, overfitting.
ejemplos tenemos que preferir un sesgo pequeño a una varianza pequeña, eso
no es así. Sesgo pequeño con varianza grande corresponde a situaciones en las
que el modelo está ajustado en exceso6 a los datos. Por lo tanto, el modelo
ha aprendido incluso los errores que pueda haber en los ejemplos y no tiene
capacidad de generalización. Éste es el caso descrito más arriba del polinomio
de grado once. La consideración de ejemplos adicionales para poner a prueba
los modelos permite ilustrar este proceso. Si consideramos unos puntos adi-
cionales a la figura superior de los cuales conocemos el resultado, podemos ver
que el modelo con menos parámetros puede aproximar mejor que el modelo
ajustado en exceso (podéis ver la figura 9).
© FUOC • PID_00200713 28 Aprendizaje

Figura 9. Ejemplos adicionales para evaluar los modelos

En general, la consideración de conjuntos de ejemplos para tests de modelos


provoca resultados como los de la figura 10. Es decir, con modelos más com-
plejos, el error disminuye para el conjunto de ejemplos que se han utilizado
para construir el modelo (el conjunto de entrenamiento). Sin embargo, para
el conjunto de ejemplos de test, el error sólo disminuye hasta cierto punto
(cuando hay un buen compromiso sesgo/varianza, que corresponde a un buen
grado de generalización), pero a partir de este momento el error aumenta (a
causa del exceso en el ajuste de los datos). Sin embargo, la elección de la com-
plejidad adecuada para un modelo es muy difícil.

Figura 10. Error para el conjunto de entrenamiento y el conjunto de prueba


© FUOC • PID_00200713 29 Aprendizaje

2. Extracción de características

Lo primero que necesita tener un sistema de aprendizaje es un conjunto de


datos de entrenamiento. Mediante estos datos habrá que definir un modelo
que permita resolver una determinada funcionalidad. Estos datos a menudo
nos vendrán presentados en un formato que no será óptimo para su posterior
tratamiento, siendo necesaria una fase previa de extracción de características.
Definiremos la extracción de características como el proceso que nos permite
obtener una representación de nuestros datos de entrada que resulta más fa-
vorable para la función de clasificación objetivo.

En este apartado estudiaremos diferentes metodologías que permiten la reduc-


ción de la complejidad de los datos. Por un lado, tendremos los algoritmos
de selección de características y, por otro, la extracción de características. Ve-
remos que el problema permite muchas aproximaciones dependiendo de la
función de coste a maximizar y aprenderemos un subconjunto de las técnicas
clásicas que aún ahora se utilizan en el área de aprendizaje automático.

2.1. Conjuntos de entrenamiento y espacios de características.

En todo este apartado, asumiremos que disponemos de un conjunto de mues-


tras de entrenamiento, que nos tienen que servir para aprender un modelo del
problema a tratar. Supondremos también que las muestras no tienen valores
ausentes y que son representadas mediante un vector de características numé-
rico. Más adelante, en apartados posteriores, veremos que es posible transfor-
mar conjuntos de entrenamiento con valores ausentes o con valores pertene-
cientes a dominios discretos u ordinales a valores reales, mediante técnicas de
preproceso de los datos.

(7)
La necesidad de realizar un proceso de extracción de características puede venir Dimensionality reduction, en in-
glés.
dada por varios factores en función de la aplicación. Lo más común es disponer
de grandes volúmenes de datos pero a la vez con un alto grado de redundan-
cia, siendo la extracción de la información importante un objetivo prioritario.
En este caso, los procesos de extracción de características están muy ligados
a los algoritmos de reducción de la dimensionalidad7. Los datos originales se
acostumbran a representar en un espacio ℜM, donde M es la dimensionalidad
del espacio, y el objetivo deviene la reducción del número de atributos o di-
mensiones en este espacio para reducir la medida de los datos a analizar. Estos
procesos no solo tienen un efecto positivo en el posterior aprendizaje de los
datos, sino que a la vez disminuyen el coste computacional de los posteriores
algoritmos y las necesidades de almacenamiento.
© FUOC • PID_00200713 30 Aprendizaje

Por otro lado, en otras aplicaciones, los datos analizados pueden tener un vo-
lumen considerable de ruido. En estos casos, los métodos de extracción de ca-
racterísticas se ocuparán de filtrar la información que puede resultar perjudi-
cial por el proceso de aprendizaje, manteniendo sólo la información realmen-
te útil a posteriori.

(8)
La extracción de características se utiliza también para reducir el efecto de la Curse of dimensionality, en inglés.
8
maldición de la dimensionalidad . Este concepto, recurrente en las áreas de
la estadística y el aprendizaje automático, fue enunciado por primera vez por
Richard Bellman. En esencia, trata la problemática del volumen de datos a
analizar cuando el espacio de características crece en dimensionalidad.

Ejemplo

Supongamos, por ejemplo, que tenemos un espacio 2D, que queremos partir en una
parrilla de 10x10 casillas. Con un mínimo de 100 muestras, ya podríamos tener cubierta
esta parrilla. Ahora bien, suponemos que nuestro espacio hubiera sido 3D, habríamos
necesitado 1.000 muestras para tener un representante en cada cubo, y 10100 si nuestro
espacio hubiera tenido dimensión 100. Este crecimiento exponencial en el número de
“casillas” en la partición del espacio respecto a su dimensionalidad puede provocar que
necesitemos también un conjunto de muestras que crezca exponencialmente si queremos
tener una caracterización adecuada del problema.

Los algoritmos de reducción de la dimensionalidad permiten reducir los efec-


tos de la maldición de la dimensionalidad y estimar mejor los parámetros de
los métodos de aprendizaje en espacios más reducidos.

Finalmente, hay que notar que la extracción de características para represen-


tar un problema no siempre está ligada a la reducción de la dimensionalidad.
Existen aplicaciones que pueden beneficiarse del aumento de la dimensiona-
lidad, son ejemplos de ello la aplicación de bancos de filtros en problemas de
procesamiento de la señal, imagen y sonido.

2.2. Taxonomía de los algoritmos de extracción de características

Una vez definidos los objetivos de la extracción de características, veremos


una breve taxonomía de los diferentes algoritmos que se usan en la actualidad
y analizaremos en detalle alguno de los más utilizados. Partiremos de inicio
de que nuestros datos nos vienen dados como un conjunto de N muestras X,
donde X = {x1, x2, ..., xN}, y cada muestra xi consiste en un conjunto de M
atributos A = A1, A2, ..., AM, también denominados características.

Para afrontar la problemática de la extracción de características, disponemos


básicamente de dos herramientas:
© FUOC • PID_00200713 31 Aprendizaje

(9)
1)� Selección� de� características9. Su objetivo es, dado el conjunto X, elegir feature selection, en inglés.

qué subconjunto de características A = Aa, Ab, ... nos es más beneficioso para
resolver nuestro problema. Expresado de otro modo, nos interesará eliminar
aquellas características no útiles, preservando solo las que maximicen la fun-
ción de utilidad.

2)�Extracción�de�características. Su objetivo es construir un nuevo conjunto


de características A = A1, A2, ..., AD, a partir de las iniciales. Hay que notar que,
en este caso, las características del nuevo conjunto no tienen por qué coincidir
con las del conjunto original y el resultado de la extracción puede ser una
mixtura del conjunto inicial.

En este apartado, y en la literatura reciente, a menudo se ha abusado de los


términos extracción de características para denominar tanto las técnicas de se-
lección como las de extracción propiamente dichas. De ahora en adelante dis-
tinguiremos entre los dos subconjuntos de técnicas, puesto que, a pesar de
que como veremos el resultado final se puede ver desde un marco común, la
tipología de las técnicas que efectúan la selección es completamente diferente.

2.3. Selección de características

A continuación haremos una breve descripción de algunas de las técnicas del


estado del arte en problemas de selección de características y propondremos
el seguimiento de un ejemplo concreto.

Los algoritmos de selección de características acostumbran a ir ligados al


aprendizaje supervisado, donde, aparte de las muestras de entrenamiento, se
dispone de una medida o función de bonanza que nos permite decidir si una
determinada selección es adecuada. Teniendo en cuenta este criterio podemos
distinguir dos tipos de selección de características:

• Los métodos�univariantes, donde se consideran las características de for-


ma independiente y separada. Este tipo de métodos acostumbran a ofrecer
una ordenación o ranking de las características según su bonanza en un
conjunto de muestras de entrenamiento.

• Los métodos�multivariantes, donde se consideran subconjuntos de ca-


racterísticas. En este caso, la función de bonanza se calcula por cada posi-
ble subconjunto.

Resulta evidente que una búsqueda exhaustiva en el caso de los métodos mul-
tivariantes es imposible en general, debido al coste computacional que requie-
re el número combinatorio de posibles agrupaciones de características a eva-
luar.
© FUOC • PID_00200713 32 Aprendizaje

Por otro lado, y en una segunda taxonomía, dependiendo de si la selección


de características usa o no información del método de clasificación posterior,
podemos definir dos tipos de algoritmos:

• Los�algoritmos�filtro, donde las características o subconjuntos de caracte-


rísticas son evaluados de forma independiente del método de clasificación
que se utilizará posteriormente.

• Los�algoritmos�empotrados (wrappers, en inglés), donde el método de se-


lección de características utiliza el clasificador que se usará posteriormente
para evaluar qué característica o subconjunto de características es el más
adecuado.

A pesar de que a priori pueda parecer que los algoritmos empotrados tendrían
que tener un rendimiento superior a los algoritmos de filtrado porque usan el
subconjunto óptimo de características que usará el clasificador final, existen
muchas aplicaciones donde esto no se cumple, puesto que los algoritmos em-
potrados pueden tener más tendencia a sobreaprender el conjunto de entre-
namiento, perdiendo capacidad de generalización.

Los algoritmos de selección de características han sido muy estudiados en la Bibliografía


última década, dadas sus múltiples aplicaciones en campos como la biología
Podemos encontrar una des-
y la genética (donde el volumen de datos es muy importante). Esto ha hecho cripción más detallada del es-
que se hayan publicado muchos algoritmos ad hoc para cada tipo de problema, tado del arte en problemas
de selección de características
con sus correspondientes funciones de bonanza. Teniendo en cuenta la gran en:
diversidad de algoritmos y aplicaciones, en esta asignatura nos centraremos I.�Guyon;�A.�Elisseeff (2003).
“An introduction to va-
en enunciar los más destacados. riable and feature selec-
tion”. The Journal of Machi-
ne Learning Research (vol. 3,
Si consideramos los algoritmos univariantes, podemos encontrar diferentes págs.1157-1182). MIT Press
Cambridge.
algoritmos en función de la medida de bonanza utilizada. Son ejemplos de
ello:

• Maximum�relevance�selection. Utiliza el coeficiente de correlación entre


cada característica y los resultados de clasificar un determinado conjunto
de entrenamiento, obteniendo una lista ordenada de las características que
mejor diferencian los datos.

(10)
• Selección�basada�en�la�información�mutua. Mide la información mutua La medida de informa-
ción mutua entre dos variables
entre las variables aleatorias que modelan cada característica y las etique-
aleatoriasX,Y evalúa qué grado de
tas de clasificación, escogiendo las características que maximizan esta in- dependencia se puede inferir sobre
la variable X aleatoria una vez co-
formación mutua10. nocemos Y: Y(X,Y) = H(X) – H(X|Y)
© FUOC • PID_00200713 33 Aprendizaje

• Métodos�basados�en�tests�estadísticos. Aplicación de tests estadísticos de


hipótesis sobre los datos. Son ejemplos de ello el T-statstic o el chi-square.

En metodologías multivariantes, donde se busca un subconjunto de caracte-


rísticas, encontramos también un gran abanico de métodos, entre los cuales
destacan:

• Búsqueda�exhaustiva. Consiste en definir un espacio de búsqueda y re-


correr y evaluar todas las posibles combinaciones respecto a la función de
coste. Solo es aplicable a problemas de dimensionalidad pequeña.

• StepWise�selection. Consiste en iterar un algoritmo en el cual a cada paso


o bien se añade al conjunto de características seleccionadas aquel atributo
que aumenta el rendimiento global del conjunto, o bien se elimina aquel
atributo que hace que el rendimiento del subconjunto empeore. El proce-
so se itera un determinado número de pasos, y no es posible garantizar
optimización en el caso general.

• Branch�and�bound. Consiste en aplicar la técnica de busca de branch and


bound en el espacio de las posibles combinaciones de características. El
algoritmo se basa en dos fases:
– en la primera se divide el espacio de búsqueda en dos subespacios
(branch), formando un árbol de búsqueda.
– En la segunda fase se evalúa una función de acotación sobre los subár-
boles creados. Si la cota inferior de un determinado subárbol X es más
grande que la cota superior de otro subárbol Y, entonces podemos des-
cartar todo el subárbol X.

Esta técnica requiere que se puedan definir buenas funciones de cota sobre
espacios de búsqueda en el espacio de las características, y basa su éxito en
poder descartar masivamente subárboles en estadios iniciales, de manera
que reduce de forma muy notable la búsqueda exhaustiva de la solución,
manteniendo la optimización.
• Algoritmos�genéticos aplicados a la selección de características. Como ya
hemos visto, los algoritmos genéticos permiten diseñar algoritmos ad hoc
para hacer una búsqueda heurística sobre el espacio de posibles combina-
ciones de características. Los algoritmos genéticos son rápidos y encuen-
tran soluciones muy eficientes, a pesar de que no permiten garantizar op-
timización.

• Métodos basados en redes�neurales. Recientemente, se han desarrollado


arquitecturas de redes neurales que permiten aproximar el problema de la
selección de características.
© FUOC • PID_00200713 34 Aprendizaje

(11)
Finalmente, hay que destacar que hay una gran cantidad de algoritmos de supportSVM o vector machines
es una técnica de clasificación que
selección de características empotrados en los principales clasificadores usados
veremos en detalle más adelante
en el aprendizaje automático. Son ejemplos de ello los algoritmos empotrados en esta asignatura.
11
en SVM , clasificadores bayesianos o árboles de decisión.

2.3.1. Ejemplo de selección de características

A continuación consideraremos un pequeño ejemplo de aplicación de dos al-


goritmos de selección de características a un problema sintético. Empezaremos
por hacer una selección de características univariante, que nos permitirá cla-
sificar por orden de preferencia los atributos a elegir, y finalmente, sobre el
mismo ejemplo, miraremos de hacer una búsqueda exhaustiva sobre el mismo
conjunto de datos.

Ejemplo sintético

El conjunto de datos utilizado ha sido generado mediante una simulación de un proble-


ma biclase, en un espacio de dimensión 4 (tenemos 4 características para seleccionar):

• La primera característica está generada siguiendo una distribución gaussiana de media


0 para la clase A, y media 2 para la clase B. La desviación estándar se ha fijado en 1
en ambas clases. En esta dimensión, los puntos de ambas clases son prácticamente
separables.
• De manera similar, hemos generado la segunda característica, pero esta vez usando
una media 1,5 para la clase B.
• La tercera y cuarta dimensión las hemos generado siguiendo una distribución gaus-
siana de media 0 y desviación estándar 1 para las dos clases, de forma que los datos
en estas dimensiones están completamente mezclados.

A continuación se muestran dos figuras donde se dibujan: en el primer caso, la primera


contra la segunda coordenada, y en el segundo caso, la tercera contra la cuarta. Se puede
comprobar cómo las dos clases son muy difíciles de separar en este último caso.

Figura 11. Esquema de la primera coordenada respecto de la segunda en el caso


© FUOC • PID_00200713 35 Aprendizaje

Figura 12. Esquema de la tercera coordenada respecto de la cuarta. Ninguna de las dos
características aportan información de cara a la separación entre clases

Como función de bonanza para evaluar las diferentes características utilizaremos un cri-
terio de clasificación empotrado muy sencillo: la distancia en el centro de masas, de for-
ma que a cada punto se le asignará la clase asociada al centro de masas más cercano. En la
figura 13 se muestra un ejemplo de clasificación de dos puntos en cada una de las clases,
y un caso de clasificación errónea. Usaremos el porcentaje de puntos muy clasificados
como medida de bonanza.

Figura 13. Ejemplo de clasificación de puntos mediante su distancia a la media de la clase.

Selección�univariante

Si evaluamos la función de bonanza en cada una de las características por separado en


los datos de la simulación, obtenemos los siguientes resultados:

Característica 1 2 3 4

Función�de�bonanza 84.90% 76.50% 50.80% 49.90%

En este caso, el método nos recomendaría tomar la primera característica y después la


segunda. Las dos últimas características, como era de esperar, dan unos resultados alea-
torios y no tienen información discriminante; en consecuencia, pueden ser descartadas.
© FUOC • PID_00200713 36 Aprendizaje

Selección�multivariante

En este caso se ha usado la misma función de bonanza que en el caso anterior, pero rea-
lizando una búsqueda exhaustiva sobre todas las posibles agrupaciones de características.
Para ilustrar mejor el problema, se ha codificado con una palabra de cuatro bits la per-
tenencia de cada característica al subconjunto correspondiente. Por ejemplo, el código
1010 indica que el subconjunto de características elegido es el formado por el primer
atributo y por el tercero. La tabla siguiente muestra los resultados obtenidos:

Subconjunto Función�de�bonanza

0001 49.9%

0010 50.8%

0011 50.7%

0100 76.5%

0101 76.5%

0110 76.5%

0111 76.6%

1000 84.9%

1001 84.9%

1010 85.1%

1011 85.2%

1100 88.5%

1101 88.4%

1110 88.3%

Los atributos 1 y 2 siguen siendo los más importantes a la hora de elegir los subconjuntos,
como, por otro lado, era predecible debido al diseño del experimento. El mejor subcon-
junto es el 1100, a pesar de que cualquier subconjunto que tenga en cuenta el atributo
1 podría ser un buen candidato a elegir. Se observa también que, si obviamos el primer
atributo, el segundo es claramente el que define los mejores subconjuntos; y si obviamos
los dos primeros atributos, las características devienen completamente inútiles para ha-
cer cualquier tarea de clasificación.

2.4. Extracción de características

Como se ha comentado anteriormente, a menudo los datos pueden tener rui-


do, redundancia o información que no es útil para la tarea concreta a realizar.
El objetivo de la extracción de características será, pues, obtener un espacio
de dimensionalidad inferior, que preserve al máximo posible los datos útiles
y elimine la información que no nos interesa.
© FUOC • PID_00200713 37 Aprendizaje

A diferencia de la selección de características, donde solo podemos ele-


gir algunos de los atributos de los ejemplos, en la extracción de carac-
terísticas podemos también crear nuevos atributos a partir de los ya co-
nocidos.

En función de los objetivos por los cuales usamos la extracción de caracterís-


ticas podemos hacer una primera taxonomía que nos distinga entre:

(12)
• Extracción�de�características�no�supervisada. Los algoritmos disponen En inglés, non-negative matrix
factorization
de un conjunto de datos de entrenamiento, y el objetivo deviene la ob-
tención de un espacio de dimensión reducida que minimice una determi- (13)
En inglés, independent compo-
nada función de coste. Ejemplos de este tipo de técnicas son el análisis de nent analisis
componentes principales (PCA), la factorización no negativa de matrices
(NMF12), o el análisis de componentes independientes (ICA13).

• Extracción�de�características�supervisada. Los algoritmos disponen de


información sobre la pertenencia de los datos a un determinado conjun-
to de clases (etiquetas asociadas a cada muestra). El objetivo es conseguir
un conjunto de características que permita una separación óptima de los
ejemplos de entrenamiento según este etiquetado. El ejemplo más para-
digmático de esta categoría son las técnicas basadas en el análisis discri-
minante.

En una segunda taxonomía, los algoritmos se pueden clasificar según la tipo-


logía de la función de extracción de características:

• Extracción�lineal�de�características. La función que realiza la extracción Nota


de características es lineal, puede ser expresada mediante un producto de
Notad que el resultado de la
matrices. selección de características se
puede simular mediante una
extracción lineal de caracterís-
• Extracción�no�lineal�de�características. Su formulación utiliza métodos ticas donde la matriz de pro-
yección tiene 0 en todas partes
no lineales para hacer la mixtura de las características importantes. Hay y 1 en las filas correspondien-
tes a las características selec-
gran cantidad de aproximaciones no lineales en la literatura. Son ejemplos cionadas.
de ello el uso de redes neurales, los métodos basados en Kernels aplicados
a sistemas lineales clásicos, o los métodos basados en variedades.
(14)
principal component analisis, en
inglés

En esta asignatura nos centraremos en las técnicas lineales. Estudiaremos una (15)
fisher linear discriminant analy-
de las técnicas más importantes y utilizadas, el análisis de componentes prin- sis (FLDA o LDA), en inglés

cipales (PCA14) como no supervisada, y el análisis discriminante en cuanto a


las supervisadas (FLDA15).
© FUOC • PID_00200713 38 Aprendizaje

En posteriores apartados definiremos los métodos basados en Kernels aplica-


dos a problemas de clasificación. Su extensión a la extracción de características
nos permitiría definir versiones no lineales de cualquiera de los algoritmos que
comentaremos en este apartado, pero su formulación queda fuera del alcance
de este curso.

2.4.1. Análisis de componentes principales

El análisis de componentes principales (PCA) es posiblemente la técnica de


extracción de características que más se usa. Existen diferentes interpretacio-
nes de la metodología, a pesar de que, informalmente, se puede definir como
la técnica que intenta conseguir una representación de un conjunto de datos
en un espacio de dimensionalidad más reducida, minimizando el error cua-
drático cometido.

El descubrimiento del análisis de componentes principales se atribuye a


Karl Pearson (1901), y se ha aplicado a varios campos de la ciencia, es-
tadística y economía, a menudo bajo la denominación de transformada
de Karhunen-Loève o transformada de Hottelling.

Para definir formalmente el algoritmo, empezaremos definiendo la notación


utilizada y formularemos el problema como un proceso de minimización ana-
lítico. Consideraremos que nuestros datos son un conjunto de N ejemplos X,
donde X = {x1, x2, ..., xN}, y cada ejemplo xi se compone de un conjunto de
M atributos A = A1, A2, ..., AM. Consideraremos que los ejemplos tienen todos
el mismo número de atributos y que no tenemos atributos ausentes. Enton-
ces, podemos representar el conjunto de datos como una matriz de dimensión
MxN, donde cada columna se corresponde con una muestra del conjunto de
datos y cada fila con un atributo.

Siguiendo con esta notación, y recordando que el PCA es una técnica de ex-
tracción de características lineal, podemos expresar el resultado del proceso de
extracción de características como el producto matricial:

S = PX

Dónde X es nuestra matriz de datos, de dimensionalidad MxN, S = {s1, s2, ...,


sN}, será la matriz DxN donde tendremos los N ejemplos de dimensionalidad
D (D << M), y P será la matriz de proyección, de dimensión DxM, que nos per-
mitirá efectuar la extracción de características. El objetivo entonces consiste
© FUOC • PID_00200713 39 Aprendizaje

en encontrar esta matriz P que nos reduce la dimensionalidad de los datos. La


única restricción impuesta es minimizar el error cuadrático cometido en este
proceso de reducción de la dimensionalidad.

A continuación veremos el algoritmo que nos permite efectuar el PCA sobre un


conjunto de datos X. Completaremos la descripción del PCA con una simula-
ción bidimensional del proceso de extracción de características y una prueba
constructiva del algoritmo, que nos permitirá evaluar ciertas propiedades en
la medida del error de reconstrucción.

Algoritmo.�Análisis�de�componentes�principales Nota

Observad que el PCA coinci-


1) Calculad la media de los datos de cada columna de la matriz X. Este paso de con los ejes de la gaussiana
que cubre nuestros datos de
nos permite obtener un conjunto de datos centrados en su origen . entrenamiento e indica las di-
recciones donde los datos es-
tán decorrelacionados.

Donde M es una matriz de MxN, donde se ha replicado N veces el vector pro-


medio n de las columnas de X.

2) Calculad la matriz de covarianza C de los datos como:

3) Coged como matriz P, los D primeros vectores propios con mayor valor
propio asociado de la matriz de covarianza C.

Ejemplo

Nuestro punto de partida será un conjunto de datos de dimensión dos (y por


lo tanto dibujables en un plano). Querremos efectuar una extracción de carac-
terísticas que nos preserve solo un atributo por muestra, obteniendo por lo
tanto un 50% de compresión. Nuestro objetivo será obtener la matriz de pro-
yección P que nos permita obtener esta nueva representación de nuestros da-
tos minimizando el error cometido. La figura 14 muestra el ejemplo de partida
que usaremos, donde se ha dibujado un punto por cada uno de los ejemplos
representados por sus coordenadas 2D.
© FUOC • PID_00200713 40 Aprendizaje

Figura 14. Ejemplo de muestras generadas aleatoriamente en un espacio 2D

A continuación centraremos las muestras restando a cada punto el valor de la


media del conjunto de entrenamiento (marcada con una X en la figura 15).

Figura 15. Muestras centradas (la media de las muestras coincide con el origen de coordenadas).

A continuación calcularemos los vectores propios de la matriz de covarianza


de los datos centrados. La figura 16 muestra gráficamente estos vectores. La
longitud del vector indica el valor propio asociado.
© FUOC • PID_00200713 41 Aprendizaje

Figura 16. Ejes resultantes de la aplicación del análisis de componentes principales

El vector de proyección escogido será, pues, el de mayor valor propio, es decir,


el eje de máxima varianza de los datos y, por lo tanto, de error mínimo.

Minimización�del�error�cuadrático

Finalmente, para complementar la explicación del análisis de componentes


principales, pasaremos a analizar y justificar su formulación mediante un
ejemplo constructivo. Empezaremos definiendo el concepto de error cuadrá-
tico como:

Es decir, la suma de todos los errores individuales, entendiendo por error indi-
vidual la diferencia entre el punto original y su versión proyectada y antipro-
yectada al espacio original. La figura 17 muestra gráficamente este error. Hay
que observar que el error cometido en cada ejemplo equivale a la proyección
en las componentes eliminadas al hacer el PCA.
© FUOC • PID_00200713 42 Aprendizaje

Figura 17. Error cometido en la proyección del ejemplo anterior en la componente principal de uno de los puntos.

En este ejemplo, consideramos ya que la matriz X tiene media 0 (se corres-


ponde a unos datos centrados en el origen). En caso contrario, habría que dar
un paso previo de sustracción de la media. Entonces, una vez definida formal-
mente la función de error, procederemos a calcular analíticamente esta matriz
de proyección (reducida a un simple vector en nuestro ejemplo 2D).

El vector unitario de proyección p que buscamos será aquel que minimice el


error cuadrático y nos permitirá expresar cada uno de los puntos de nuestro
espacio como:

Donde en ci es la componente proyectada del punto xi en el espacio definido


por p. A partir de todas las componentes c de los puntos de entrenamiento,
podemos redefinir la ecuación del error como:

Entonces, sustituyendo los coeficientes por su proyección y considerando que


el vector p es unitario (tiene módulo 1), tendremos:

Definiendo la matriz S como la covarianza entre los datos:


© FUOC • PID_00200713 43 Aprendizaje

Acabamos teniendo la siguiente función de error ya a punto para minimizar,


sujeta a la restricción que el módulo de p tiene que ser 1:

(16)
El proceso de minimización hace uso de los multiplicadores de Lagrange16 y Los multiplicadores de Lagran-
ge se ven con más detalle en la
la correspondiente derivada, resultando la función: asignatura de análisis.

De donde después de igualar a 0 para calcular el mínimo se desprende que:

(17)
Es decir, el vector p que minimiza el error cuadrático tiene que ser un vector Los vectores propios de una
17 matriz A se definieron en la asig-
propio de la matriz de covarianza S . natura de Álgebra como aque-
llos vectores v que cumplen Av =
λv (siendo λ el conjunto de valo-
Además, el algoritmo permite medir la cantidad de información que se preser- res propios asociados). Existen al-
goritmos muy eficientes para su
va tomando los primeros D vectores de proyección mediante la fórmula:
cómputo.

Es decir, el valor propio asociado a cada vector de proyección es proporcional


a la cantidad de información que se preserva del espacio original.
© FUOC • PID_00200713 44 Aprendizaje

2.4.2. Análisis discriminante lineal (ADL)

El análisis de componentes principales forma parte de la familia de técnicas Ronald Fisher


de extracción de características de forma no supervisada. Como hemos visto,
Ronald Fisher (1890-1962) fue
cuando la única fuente de información disponible son los datos mismos, la uno de los estadistas y gene-
extracción de características se ve forzada a minimizar algún tipo de función tistas más importantes del si-
glo pasado. Sus trabajos más
de error sobre estos datos. En cambio, si disponemos de la información de importantes, entre muchos
otros, son el descubrimiento
pertenencia de los datos a un conjunto de clases predeterminado, podemos del ANOVA (analysis of varian-
ce) y la estimación de paráme-
plantearnos reducir la dimensionalidad preservando medidas de separación tros mediante la máxima vero-
entre clases. El análisis discriminante lineal de Fisher representa un conjunto similitud. El año 1936 publicó
el trabajo: "The Use of Multiple
de métodos que abordan este problema. Measurements in Taxonomic
Problems" (Annals of Eugenics,
núm. 7, 179-188), donde puso
Antes de definir formalmente el algoritmo, recordaremos la notación utiliza- las bases del análisis discrimi-
nante.
da y añadiremos la información que nos permite realizar la tarea de manera
supervisada. Consideraremos de nuevo que nuestros datos son un conjunto
de N ejemplos X, donde X = {x1, x2, ..., xN}, y cada ejemplo xi se compone de
un conjunto de M atributos A = A1, A2, ..., AM. Todos los ejemplos tienen el
mismo número de atributos, no tenemos atributos ausentes y los representa-
mos mediante la matriz siguiente:

Además, para cada ejemplo xi tenemos asociada una etiqueta Li que nos define
la pertenencia de xi a una de las K clases que configuran el problema L∈{L1,
L2, ..., Lk}. La aparición de estas variables objetivo es lo que nos hace hablar
de aprendizaje supervisado.

El algoritmo se basa en definir dos medidas de dispersión: la intra-clase Si y la


inter-classe SE. A menudo se calculan mediante matrices de dispersión específi-
cas. La primera, Si, nos mide como están de separados los datos de una misma
clase (en media) respecto a su punto central. La segunda, SE, nos mide como
están de separados los centros de los datos de las respectivas clases. Con estas
medidas, la función a maximizar será, pues, la separación entre los datos que
pertenecen a diferentes clases, procurando que los datos de la misma clase es-
tén lo más juntos posible. Es decir, querremos encontrar el espacio de dimen-
sión reducida que nos permite una máxima separabilidad en nuestros datos
según sus etiquetas asociadas. Formalmente el criterio que estableció Fisher se
puede resumir en el algoritmo siguiente:

Algoritmo.�Análisis�discriminando�lineal

1) En primer lugar calcularemos la matriz de dispersión intra-clase Si como:


© FUOC • PID_00200713 45 Aprendizaje

Donde cada ΣK es la matriz de covarianza de los datos de cada clase k. Esta


covarianza se calcula (de manera similar a como hemos visto en el caso del
algoritmo del PCA) mediante la fórmula:

Donde el subíndice k indica que solo se cogen los elementos de la clase k.

2) Después calcularemos la matriz de dispersión inter-clase SE como:

Donde μk es la media de los datos de la clase k, y μ0 es la media global de todos


los datos de todas las clases.

3) Finalmente, los vectores que nos definen la matriz de proyección y nos


extraen las características discriminantes se calculan como los vectores propios
de mayor valor propio de la matriz:

Es decir, los vectores que maximizan la dispersión entre clases (numerador)


manteniendo los elementos de la misma clase lo más juntos posible (denomi-
nador).

Ejemplo

En este ejemplo, mostramos dos nubes de puntos, que pertenecen a dos clases
diferentes, y buscamos el resultado de realizar una extracción de características
no supervisada, basada en PCA y una supervisada basada en el ADL.
© FUOC • PID_00200713 46 Aprendizaje

Figura 18. Conjunto de muestras de dos clases diferentes

Si se realizan los cálculos de forma adecuada, observamos que los principales


vectores de proyección varían de forma considerable. En el primer caso, el
algoritmo de análisis de componentes principales ha considerado toda la nube
de puntos de forma conjunta y ha buscado el eje donde el error cometido
sea el mínimo posible. Este error de reconstrucción, sin embargo, no resulta
un criterio útil a la hora de clasificar posteriormente los datos del problema,
puesto que el resultado de la proyección nos muestra un espacio donde los
puntos están completamente mezclados y será difícil establecer una frontera
de separación.

Si observamos el comportamiento del análisis discriminante sobre el mismo


problema, podemos ver cómo el eje que seleccionamos es precisamente el que
descarta el PCA. En este eje se comete un error mucho mayor desde el punto de
vista de la reconstrucción; en cambio, los datos proyectados son trivialmente
separables.

(18)
Cabe hacer notar que este ejemplo sintético ha sido generado para mostrar la Datos que no tienen una distri-
bución gaussiana uniforme en to-
diferencia entre la extracción de características supervisada y no supervisada.
das las clases
Pueden existir casos en los cuales el análisis discriminante no solucione el
problema de modo satisfactorio. De hecho, existen muchas extensiones del (19)
Las técnicas basadas en Kernels
18 permiten tratar la no linealidad,
algoritmo ADL que permiten tratar datos heteroscedásticos y no separables como veremos en apartados poste-
19
linealmente . Su estudio, sin embargo, queda fuera del alcance de este curso. riores de clasificación

2.5. Conclusión

En este apartado hemos hecho un repaso a diferentes métodos de reducción


de la dimensionalidad de los datos, para eliminar información redundante,
ruido y preservar solo aquellas características que son candidatas a ser útiles
© FUOC • PID_00200713 47 Aprendizaje

en posteriores procesos de aprendizaje. Los métodos que hemos visto se pue-


den considerar como un paso previo al aprendizaje automático, y dependerán
mucho de la función objetivo a maximizar.

Como hemos visto, no hay ningún método que sea universalmente mejor que
otro, ni en selección de características, ni en una extracción. La dimensionali-
dad y complejidad de los datos de entrada y la naturaleza del problema a tratar
nos pueden aconsejar usar una técnica u otra.
© FUOC • PID_00200713 48 Aprendizaje

3. Aprendizaje no supervisado

Como se ha explicado en la introducción, el aprendizaje no supervisado co-


rresponde al caso en el que disponemos de un conjunto de datos para los que
no se conocen las variables de salida. En este caso, los métodos de aprendizaje
se aplican a los datos para extraer información (conocimiento) útil.

Hay distintas familias de métodos que pertenecen a los métodos de aprendi-


zaje no supervisado. Algunos de los métodos son los que obtienen reglas de
asociación o definen categorías. También hay quien engloba entre los méto-
dos de aprendizaje no supervisado el análisis de componentes principales. En
este apartado nos centramos en los algoritmos de categorización.

3.1. Algoritmos de categorización: introducción

(20)
Los algoritmos de categorización20 son uno de los métodos de aprendizaje no En inglés, clustering

supervisado (y de análisis de datos) más utilizados. A partir de un conjunto


de datos para una serie de objetos (datos descritos habitualmente en forma Cluster analysis

tabular), estos métodos construyen un conjunto de categorías. Cada categoría A menudo también se utiliza
representa un subconjunto de los objetos iniciales que son, por una parte, el término cluster analysis para
denotar los algoritmos de cate-
bastante "semejantes" entre sí para definir una única categoría, pero, por otra gorización.
parte, bastante "diferentes" del resto para constituir una categoría propia.

Las diferencias entre los métodos de categorización corresponden a di-


ferencias en la forma de describir los datos iniciales a partir de los cuales
queremos construir las categorías (los objetos se describen, por ejem-
plo, mediante datos numéricos o simbólicos), en cómo formalizamos
los conceptos semejante y diferente, en la estructura permitida para re-
presentar el conjunto de categorías (podemos utilizar, por ejemplo, par-
ticiones, particiones difusas, o árboles jerárquicos), en la descripción de
estas categorías (algunas de las descripciones pueden ser extensionales,
mediante centroides –objeto medio que representa los objetos que de-
finen la categoría–, o bien mediante expresiones lógicas), etc.

A continuación repasamos los distintos elementos que intervienen en el pro-


ceso de categorización, y los diferentes tipos de estructuras permitidas para las
categorías y para su descripción. También veremos una clasificación de los al-
goritmos que hay. Los algoritmos concretos se pueden ver en los subapartados
3.2 y 3.3.
© FUOC • PID_00200713 49 Aprendizaje

3.1.1. Estructura de los datos a categorizar y tipos de atributos

Empecemos por definir la notación que utilizaremos a continuación. Esta no-


tación sigue la que hemos utilizado hasta ahora, ampliándola con el fin de
poder disponer de forma explícita de los valores del objeto en el espacio M-
dimensional. Es decir, disponemos de un conjunto X de N objetos que deno-
tamos por X = { x1, x2, ..., xN } y cada objeto xi es evaluado en términos de los M
atributos A = { A1, ..., AM}. Utilizaremos Ai(xj) para denotar el valor que toma el
objeto xj para el atributo Ai, y A(xj) corresponderá al vector (A1(xj), ..., AM(xj)).
Dado un atributo A, llamamos dominio al conjunto de valores que puede to-
mar un objeto en relación con este atributo A. Denotamos este dominio por
DOM(A). Así, Ai(xj) ∈ DOM(Ai).

La notación utilizada en el campo del aprendizaje automático difiere de la utilizada en el


campo de la estadística (o del análisis de datos), en la que también se estudian y aplican
las herramientas de categorización. En particular, en estadística se habla de variables en
lugar de atributos, y de rango de las variables en lugar de dominio de las variables. También
se utiliza el término OTU (por operational taxonomic unit) para referirse a los objetos en
el proceso de categorización.

  Población Superficie Densidad Código Industria Metro


postal

L'Alcora 9.106 94,9 MB 12110 Cerámica No

Valencia 739.014 134,6 A 46012   Sí

Barcelona 1.496.266 97,6 MA 08002   Sí

Inca 22.402 58,3 B 07300 Calzado No

Elda 51.501 45,8 M 03600 Calzado No

Almussafes 7.256 10,8 M 46440 Coches No

Castalla 7.631 114,6 MB 03420 Juguetes No

Ibi 21.293 62,5 B 03440 Juguetes No

Sant Sadurní d'Anoia 9.539 18,7 B 08770 Vino No

Talteüll 851 53,5 MB 66720 Vino No

Maón 23.189 117,2 B 07701 Queso No

Algunas poblaciones

Un elemento importante en el proceso de categorización es saber qué valores Nota


se permiten a los atributos (su dominio). Así, lo más habitual es considerar
Para diferenciar los atributos
atributos numéricos, binarios (o booleanos), ordinales y nominales, aunque numéricos de los ordinales y
también es posible considerar otros tipos, como dominios con estructura je- nominales, a menudo se usa el
término de atributos categóri-
rárquica o descritos mediante conjuntos difusos. Veamos a continuación las cos o discretos para los últimos.

características de los primeros:


© FUOC • PID_00200713 50 Aprendizaje

• Atributos numéricos: el dominio viene determinado por un subconjunto


de los números reales. Algunos ejemplos de atributos numéricos son po-
blación y superficie para países; altura y peso para personas.

• Atributos binarios o booleanos: corresponde al caso de cuando los indivi- Nota


duos o bien satisfacen una característica, o bien no la satisfacen. Algunos
Como describen Sneath y So-
métodos de categorización se basan en la transformación de los otros atri- kal en Numerical Taxonomy (W.
butos no numéricos en un conjunto de atributos binarios. En el ejemplo H. Freeman, 1973, pág. 148),
en el pasado también se trans-
de la tabla anterior, el atributo "Metro" es binario. formaban los atributos numéri-
cos en binarios (mediante dis-
cretización) para simplificar los
cálculos.

• Atributos ordinales: el dominio está determinado por un conjunto de tér-


minos, entre los cuales se puede establecer una relación de orden (uno es
mayor –o igual– que otro). Así, para un atributo Ai que disponga de Ri tér-
minos, denotamos su dominio por . En gene-
ral, tenemos que un atributo es ordinal cuando no es posible cuantificar
los términos (es decir, dar una equivalencia numérica a cada aaij) ni tam-
poco comparar la diferencia entre dos términos (saber si aij−aik> aim−ain).
Algunos ejemplos de atributos ordinales son los siguientes: la escala de
dureza (a pesar de tener valores numéricos, no tiene sentido calcular la
diferencia entre durezas) y el nivel de estudios de una persona (graduado
escolar, bachillerato, estudios universitarios, doctorado). El atributo "Den-
sidad" tal como aparece en la tabla anterior corresponde a un atributo or-
dinal con el orden siguiente MA (= muy alta) > A (= alta) > M (= media)
> B (= baja) > MB (= muy baja).

• Atributos nominales: el dominio está determinado por un conjunto de tér-


minos. La única operación que podemos usar para comparar dos términos
es la de igualdad. Es decir, sólo podemos comprobar si son iguales o dife-
rentes. Son ejemplos de atributos nominales el código postal y los colores.
Para estos atributos utilizamos la misma notación que para los atributos
ordinales: . El atributo "Industria" en la tabla
anterior se puede considerar como un atributo nominal.

Se ha dicho que algunos métodos de categorización se basan en la transforma-


ción de atributos no numéricos en atributos binarios. En el recuadro siguiente
se muestra cómo se puede hacer esta transformación.
© FUOC • PID_00200713 51 Aprendizaje

Transformación�entre�atributos�categóricos�y�atributos�binarios

La transformación distingue dos casos según si el atributo es nominal


u ordinal.

a) Para atributos nominales de la forma po-


demos sustituir el atributo Ai por Ri atributos binarios ,
en el que Aij se satisfacerá si, y sólo si, el valor del objeto para aquel
atributo es aij.

b) Para atributos ordinales se puede utilizar la codificación�aditiva, que


consiste en sustituir de manera similar el atributo Ai pero ahora por Ri −
1 atributos binarios . Ahora tenemos que Aij se satisface
cuando el valor del objeto para aquel atributo es mayor o igual que aij.

A continuación presentamos, como ejemplo, la codificación de un atri-


buto A que tiene un dominio de cuatro valores DOM(A) = { a1, a2, a3, a4
}. Se da la codificación que tendremos cuando A es un atributo nomi-
nal (izquierda) y cuando A es un atributo ordinal (codificación aditiva,
derecha).

Ahora pasaremos a ver las características de los atributos ordinales difusos y los
que representan la existencia de una estructuración jerárquica de las variables:

• Atributos ordinales difusos: corresponde a tener un atributo ordinal, pero Ved también
donde cada término del dominio tiene asociado un conjunto difuso. Esto
Podéis ver el apartado "Siste-
corresponde a tener una variable difusa. En este caso, la semejanza o dife- mas difusos" del módulo "In-
rencia entre términos se puede calcular a partir de los conjuntos difusos certidumbre y razonamiento
aproximado" de la asignatura
asociados. Inteligencia artificial.

• Atributos con estructura jerárquica: en general no se puede cuantificar la


diferencia o semejanza entre dos términos, pero sabemos que los hay más
semejantes que otros. Un ejemplo de estos atributos es el "tipo de animal".
Tenemos patos, gallinas, jirafas y elefantes. En este caso, sabemos que la
semejanza entre jirafas y elefantes es mayor que la de estos animales con
una gallina, porque los primeros son mamíferos y la segunda es un ave.
Lo mismo es aplicable cuando comparamos los patos y las gallinas con un
mamífero. Para este tipo de atributos, se dispone de una estructura jerár-
quica como la que mostramos en la figura 19. El atributo "Industria" que
© FUOC • PID_00200713 52 Aprendizaje

utilizamos en la tabla anterior podría haber sido definido como jerárquico


(en lugar de nominal). De esta manera, al hablar de la industria, el valor
de queso sería más semejante al valor "vino" que al valor "coche".

Figura 19. Ejemplo de atributo jerárquico: tipos de animal

Es importante subrayar que la representación que se elige para un atributo no


tiene implicaciones en el tipo de escala que utilizamos. Así, tanto la dureza
de una piedra como el código postal en una dirección se representan de for-
ma numérica, pero eso no quiere decir que estemos ante una escala numéri-
ca. De hecho, la semejanza entre parejas arbitrarias de códigos postales no es
comparable. Por ejemplo, es difícil saber si la diferencia entre 43870 y 43550
es mayor o menor que la que hay entre 07760 y 07580 sin disponer de más
información. O si entre Borriana (12530) y Sagunto (46520) hay más distancia
que entre Sitges (08870) y Alcudia (07400). El código postal no es un atributo
comparable.

De acuerdo con eso, no podemos aplicar operaciones numéricas para compa-


rar los respectivos objetos sin tener en cuenta que de manera implícita esta-
mos modificando la escala. Así, utilizar una distancia euclidiana para compa-
rar dos códigos postales nos hace más próximos Ciutadella (07760) y Capde-
pera (07580) que Borriana (12530) y Sagunto (46520), cuando la distancia real
(sobre la superficie terrestre) no cumple la misma relación. Esta modificación
del espacio también puede provocar que a la hora de calcular representantes
de conjuntos de objetos (necesarios en algunos métodos de categorización,
como el jerárquico con el centroide que se verá posteriormente) se obtengan
representantes que no "representan" los objetos. Por ejemplo, si calculamos la
media de dos códigos postales como los de Capdepera y Borriana, nos da el
"código postal" (07580 + 12530) / 2 = 10055, que tanto puede corresponder
a Casas del Monte (de la provincia de Cáceres, si nos restringimos al Estado
español) como un código postal de la ciudad de Estocolmo (Suecia).

De todos modos, hay que decir que es frecuente utilizar los atributos ordinales
como si fueran numéricos y utilizar las expresiones de distancia que se utilizan
para atributos numéricos. Eso se hace para simplificar el tratamiento.
© FUOC • PID_00200713 53 Aprendizaje

3.1.2. Definición de distancias y semejanzas para los distintos


tipos de atributos

La aplicación práctica de los algoritmos de aprendizaje obliga a considerar me- Coeficientes de semejanza
didas (cuantificaciones, habitualmente numéricas) de cuánto son de semejan-
Los coeficientes de semejanza
tes dos objetos. La medida de esta semejanza viene dada por los llamados coe- en inglés se llaman similarity
ficientes de semejanza. coefficient (o, no tan frecuen-
temente, ressemblance coeffi-
cient).

Aunque hay muchos tipos de coeficientes, podemos clasificarlos según cuatro


clases (un tanto arbitrarias) de coeficientes: los basados en distancias, en aso-
ciaciones, en correlaciones y los de semejanza probabilística.

(21)
• Coeficientes basados en distancias: se basan en la definición de una dis- En inglés, dissimilarity.
tancia en un cierto espacio. Por ejemplo, la distancia euclidiana cuando
los atributos son numéricos. De hecho, en estos coeficientes tenemos que
la distancia nos proporciona una desemejanza21 y a partir de ésta se cons-
truye la semejanza como función complementaria.

• Coeficientes de asociación: son coeficientes que, aplicados a atributos no-


minales, permiten evaluar la coincidencia o no de los valores. A menudo
se comparan estas coincidencias en relación con todas las posibles.

• Coeficientes de correlación: son utilizados para medir la proporcionalidad


(o independencia) entre los vectores que representan los objetos.

• Coeficientes de semejanza probabilística: incluyen estadísticos que miden


la homogeneidad de los objetos.

(22)
La selección de un coeficiente se basa en sus propiedades, el tipo de escala de En inglés, joint monotonicity.
los atributos y, en gran medida, la experiencia. Para evaluar los coeficientes,
aparte de hacer estudios sobre sus propiedades, se han hecho otros comparan-
do los resultados de aplicarlos a diferentes conjuntos de datos. Un concepto
que aparece relacionado con estos estudios es el de monotonía conjunta22. Es-
ta propiedad sirve para comparar pares de coeficientes. Así, tenemos que los
coeficientes c1 y c2 satisfacen la propiedad de monotonía conjunta si al orde-
nar los valores que hemos obtenido por el coeficiente c1 para todos los pares de
individuos tenemos la misma ordenación que la que obtenemos si ordenamos
de acuerdo con el coeficiente c2.

Ejemplo de monotonía conjunta

Consideremos tres individuos { x1, x2, x3} y los coeficientes de semejanzas c1 y c2 calcula-
dos por los pares de individuos en la tabla inferior. Notad que la tabla no está completa.
Es así porque se ha considerado, como es frecuente en las medidas de semejanzas, que
los coeficientes son conmutativos (c(xj,xk) = c(xk,xj)).
© FUOC • PID_00200713 54 Aprendizaje

Los coeficientes c1 y c2 satisfacen la monotonía conjunta porque la ordenación de los


pares (xi,xj) con xi, xj ∈ c1: c1(x1,x1) = c1(x2,x2) = c1(x3,x3) ≥ c1(x1,x2) ≥ c1(x2,x3) ≥ c1(x1,x3) es
la misma que para c2: c2(x1,x1) = c2(x2,x2) = c2(x3,x3) ≥ c2(x1,x2) ≥ c2(x2,x3) ≥ c2(x1,x3).

A continuación vemos algunos ejemplos de cada una de estas clases de coe-


ficientes. Para describirlas consideramos la determinación de un coeficiente
entre los objetos xj y xk. En cuanto a la notación, utilizamos, como hemos
visto anteriormente, Ai(xj) para denotar el valor que toma el objeto xj para el
atributo Ai.

Coeficientes basados en distancias

Las distancias son funciones complementarias a los coeficientes que satisfacen


las propiedades de las métricas. Es decir, si tenemos dos individuos xj y xk, la
distancia es, en general, positiva, y nula cuando xj = xk. Además, la distancia
es conmutativa y satisface la desigualdad triangular. Es decir, para todo x, y y
z se cumplen las condiciones siguientes:

1. d(x,x) = 0
2. d(x,y) ≥ 0
3. d(x,y) = d(y,x)
4. d(x,z) ≤ d(x,y) + d(y,z)

Cuando en lugar de la propiedad 4 se da la propiedad siguiente:

4'. d(x,z) ≤ max(d(x,y), d(y,z))

se dice que la función es una ultramétrica.

A partir de una distancia, cuando ésta es definida en el intervalo [0, 1], se puede
definir un coeficiente de semejanza como s(x,y) =1 − d(x,y). En este caso, la
semejanza siempre será positiva, y es máxima e igual a 1 cuando los individuos
coinciden. La condición de ultramétrica se traduce para la semejanza en:

1 − s(x,z) ≤ max(1 − s(x,y), 1 − s(y,z))

1 − s(x,z) ≤ 1 − min(s(x,y), s(y,z))

4'-dual s(x,z) ≥ min(s(x,y), s(y,z))


© FUOC • PID_00200713 55 Aprendizaje

Esta última condición es, por lo tanto, la dual de la 4'. Interpretando la seme- Ved también
janza como una cuestión de grado, la condición 4'-dual se puede interpretar
Podéis ver el apartado de "Sis-
como que si x es semejante a y, e y es semejante a z (con una t-norma mínima temas difusos" del módulo "In-
para modelizar la conjunción), entonces x es semejante a z. Esto corresponde certidumbre y razonamiento
aproximado" de la asignatura
a decir que la semejanza es transitiva. Inteligencia artificial.

Otras traducciones de la conjunción conducen a otras expresiones alternati-


vas. En general, tenemos que en lugar del mínimo puede haber cualquier t-
norma T y en este caso la condición 4'-dual se llama T-transitiva.

Observad que las otras condiciones exigidas más arriba de d(x,x) = 0, d(x,y) =
= d(y,x) se traducirán para s(x,y) = 1 – d(x,y), cuando d(x,y) pertenece a [0, 1],
en: s(x,x) = 1, s(x,y) ≥ 0 y s(x,y) = s(y, x).

1) Distancia euclidiana (o distancia taxonómica)

Se define por el par de objetos xj y xk de esta manera:

(Ai(xj) − Ai(xk))2)1/2
M
d(xj,xk) = (∑ i=1

Como esta distancia crece cuando el número de atributos crece, a menudo se


calcula una distancia media dividiéndola por el número de atributos:

(Ai(xj) − Ai(xk))2)1/2
M
d(xj,xk) = ((1/M) ∑ i=1

Evidentemente, las dos distancias satisfacen la condición de monotonía con-


junta.

(23)
Algunas alternativas a la distancia euclidiana son la diferencia media23 y la di- En inglés, average difference.
24
ferencia de carácter medio . Ninguno de los dos casos considera el cuadrado
(24)
En inglés, mean character diffe-
de las diferencias. En el caso de la diferencia media, como no se considera nin- rence o MCD.
M
guna transformación alternativa (la expresión correspondiente es: (1/M)∑ i=1

(Ai(xj) − Ai(xk)), tenemos que las diferencias pueden ser positivas y negativas y,
por lo tanto, no es una métrica. Además, situaciones como la de la figura 20
resultan con un coeficiente igual a cero. La diferencia de carácter medio evita
estos problemas haciendo el valor absoluto de las diferencias. En este caso la
expresión correspondiente es:

M
∑ i=1 |Ai(xj) – Ai(xk)|/M.
© FUOC • PID_00200713 56 Aprendizaje

2
Figura 20. Distancia a R entre los puntos (1, 2) y (2, 1). Diferencia media = 0. Diferencia de carácter medio = 1. Distancia
1/2
euclidiana: (1 + 1) = 1,4142. Distancia euclidiana media = 1

2) Métrica de Minkowski

Las distancias que hemos visto antes son casos particulares de una familia de
métricas denominada métrica de Minkowski. Esta familia se define en términos
de un parámetro r como se presenta a continuación:

|Ai(xj) − Ai(xk)|r)1/r
M
dr(xj,xk) = (∑ i=1

Cuando r = 1 tenemos la llamada distancia de Manhattan (o city blocks), que


dividida por el número de atributos corresponde a la diferencia de carácter
medio. Un punto importante de estas distancias (excepto cuando tenemos el
caso de la euclidiana) es que no son invariantes a las rotaciones. Ved la figura
21.

2
Figura 21. Distancia a R entre los puntos (1, 2,4142) y (1, 1). Diferencia euclidiana 1,4142. Distancia Manhattan 1,4142.
2
Distancia a R entre los puntos (1, 2) y (2, 1). Diferencia euclidiana 1,4142. Distancia Manhattan 2.

Coeficientes de asociación

Si consideramos atributos binarios (donde denotamos con un 1 cuando el atri-


buto se cumple y con un 0 cuando el atributo no se cumple), se consideran
para dos objetos xj y xk las coincidencias en los valores de los dos objetos para
los M atributos diferentes. Es decir, se considera cuántas veces coinciden los 1
© FUOC • PID_00200713 57 Aprendizaje

(denotamos este valor por a), cuántas coinciden los 0 (denotamos este valor
por d) y cuántas tenemos valores diferentes (denotamos por b el número de
casos en los que tenemos un 0 para xj y un 1 para xk, y denotamos por c el nú-
mero de casos en los que tenemos un 1 para xj y un 0 para xk). A continuación
se muestran gráficamente estos casos.

Descomposición de las alternativas para calcular los coeficientes de asociación.

1) Coeficiente de coincidencia simple

Este coeficiente, llamado en inglés simple matching coefficient, corresponde a la


proporción de coincidencias entre los valores de los atributos. Se define como
se muestra a continuación:

SCS = (a + d)/(a + b + c + d)

Este coeficiente está relacionado con la distancia euclidiana, ya que su com-


plementario es el cuadrado de la distancia. En particular:

2
1 − SCS(xj,xk) = (d(xj, xk))

Notad que d(xj,xk) será cero para los casos a y d de la descomposición anterior
y 1 para los otros dos casos.

El coeficiente de coincidencia simple se extiende al caso de atributos nomi-


nales tomando todas las coincidencias y dividiendo por el número total de
valores. Es decir, M.

2) Coeficiente de Jaccard

Es un coeficiente similar al anterior, pero en el cual no se incluyen los elemen-


tos negativos:

SJ = a/(a + b + c)

Este coeficiente resultado adecuado en los casos en los que la ausencia de un


atributo no nos aporta información adicional sobre los elementos (por ejem-
plo, porque los atributos negativos siempre son consecuencia de la ausencia
de otro atributo).
© FUOC • PID_00200713 58 Aprendizaje

Coeficientes de correlación

El coeficiente más representativo de esta familia es el coeficiente de correlación


(de Pearson), que se define como se indica a continuación:

Ejemplo

El momento de orden k res-


pecto a la media se define por
.

La correlación está definida en el intervalo [–1, 1]. Por el hecho de considerar


los momentos respecto de la media, la correlación tiene en cuenta la magnitud
de las no coincidencias. En lo referente a los vectores que representan a los
individuos, tienen norma unidad y las medias son cero, el coeficiente
de correlación corresponde a los cosenos del ángulo entre los vectores que
representan a los dos individuos. La idea de utilizar el ángulo para medir la
semejanza entre objetos ha sido usada en la definición de otros coeficientes.

Coeficientes de semejanza probabilística

Una manera alternativa de calcular las coincidencias es basarnos en las pro-


babilidades de que suceda una determinada coincidencia. Las probabilidades
pueden depender del atributo y también de los valores. Por ejemplo, en la cla-
sificación de datos personales para hacer estudios de mercado puede ser más
relevante la coincidencia en las señas (mismo barrio, misma población) que en
el tipo de coche. También, la coincidencia del linaje García en dos individuos
de una población española puede ser menos relevante que la presencia del
linaje Tanaka en la misma población; pero no lo será, si consideramos pobla-
ciones japonesas. De acuerdo con eso, los coeficientes de semejanza se cons-
truyen teniendo en cuenta las distribuciones de frecuencias de los valores.

Este tipo de coeficientes son utilizados por los algoritmos de reidentificación.


Son algoritmos que intentan determinar qué registros, que están en ficheros
diferentes, corresponden a una misma persona o entidad.

Así, dos registros con el nombre "Paco Tanaka" y "Francisco Tanaka" corresponderán con
mucha probabilidad a la misma persona, pero, en cambio, dos registros con el nombre
"Jorge García" que aparecen en los ficheros con señas de correo diferentes puede ser que
no correspondan a la misma persona (y no es suficiente evidencia, con este nombre, de
que correspondan a la misma persona).

La aplicación de las distancias a problemas reales obliga a tener en cuenta di-


versas características que se pueden presentar en los datos. Por ejemplo, pode-
mos encontrar que faltan algunos valores o que los dominios de los distintos
atributos son completamente diferentes. A continuación comentamos estos
aspectos.
© FUOC • PID_00200713 59 Aprendizaje

Los valores ausentes

(25)
Los valores ausentes25 corresponden a la situación en la que el valor de un En inglés, missing values.

atributo para un determinado objeto no se conoce.

La causa de aparición de estos valores es diversa. Puede ser por culpa de errores
en la codificación, valores eliminados con el fin de proteger la confidenciali-
dad de los datos o porque el atributo no es aplicable al objeto a causa de los
valores tomados por otros atributos (por ejemplo, el atributo "¿embarazada?"
no es aplicable si construimos una categorización a partir de datos de personas
y el objeto en cuestión es hombre).

Hay diferentes maneras de tratar los valores ausentes. Una consiste en susti-
tuirlos por el valor esperado del atributo (la media de los valores que hay) o
la moda (el valor que más aparece). Otra alternativa es ignorar el atributo a
la hora de calcular semejanzas. Por ejemplo, si ahora utilizamos la distancia
euclidiana media, tomaremos:

|Ijk| 2 1/2
d(xj,xk) = [(∑i =1 (Ai(xj) – Ai(xk)) ) / |Ijk|]

donde Ijk son los atributos, donde tanto xj como xk tienen valores distintos
del valor ausente.

Es decir,

Ijk = { Ai | Ai(xj) ≠ ⊥ and Ai(xk) ≠ ⊥ }

donde ⊥ denota el valor ausente.

Con esta definición sólo tenemos en cuenta los atributos que no contienen
valores desconocidos.

Normalización de los datos

Otro problema que hay que considerar para calcular semejanzas y distancias
en problemas reales es que los dominios de los distintos atributos pueden ser
muy diferentes. En este caso, las distancias que se calculan estarán fuertemen-
te influenciadas por los valores del dominio. Por ejemplo, si tenemos un estu-
dio de población, y disponemos para cada individuo del número de hijos y
el salario, obtendremos que la clasificación estará condicionada, sobre todo,
por el salario, porque la diferencia entre dos personas con el mismo número
de hijos y salario distinto será normalmente mayor que el que hay entre dos
personas con el mismo salario y distinto número de hijos. Eso es así porque
la variabilidad del salario es mayor que la variabilidad en el número de hijos.
Pasa lo mismo si consideramos la clasificación de las poblaciones de la tabla
del subapartado 3.1.1. En esta tabla la población mínima es de 851 habitantes
© FUOC • PID_00200713 60 Aprendizaje

2
y la máxima de 1.496.266 y, en cambio, la superficie va de 10,8 a 134,6 km .
Por lo tanto, la diferencia entre el número de habitantes domina la diferencia
entre superficies.

Con el fin de solucionar este problema, se dispone de métodos de normaliza-


ción de los datos. Comentaremos dos que son aplicables a atributos numéricos:

1. Ranging. Se normalizan los valores de manera que quedan en el intervalo


[0, 1]. Así, a un valor x se le resta el menor de los valores (para que el mínimo
sea cero), y después se divide el valor resultado por el rango del dominio (la
diferencia entre el máximo y el mínimo). Así, el valor v asociado al atributo
A para el objeto x se transforma en v':

v' =(v − mínimo(DOM(A))) / (máximo(DOM(A)) − mínimo(DOM(A)))

2. Estandarización. Se normalizan los valores de manera que el valor medio


sea cero y la desviación 1. Así, el valor v asociado al atributo A para el objeto
O se transforma en v' haciendo:

v' = (v − media(A(X))) / desviación(A(X))

donde A(X) es el conjunto de valores que toman todos los objetos de X para
el atributo A.

En la tabla siguiente damos la normalización por ranging y por estandariza-


ción de los dos atributos numéricos (población y superficie) de la tabla del
subapartado 3.1.1.

  Original Ranging Estandarización

Población Superficie Población Superficie Población Superficie

L'Alcora 9.106 94,9 0,005520207 0,679321486 –0,436452613 0,521899976

Valencia 739.014 134,6 0,493617491 1 –1,09521414 1,489686471

Barcelona 1.496.266 97,6 1 0,701130856 –2,684260583 0,587719209

Inca 22.402 58,3 0,014411384 0,382875606 –0,40855178 –0,372754038

Elda 51.501 45,8 0,033870197 0,282714055 –0,34748933 –0,675034959

Almussafes 7.256 10,8 0,004283092 0 –0,440334724 –1,528247234

Castalla 7.631 114,6 0,004533858 0,838449111 –0,439547809 1,0021366

Ibi 21.293 62,5 0,013669784 0,417609047 –0,410878948 –0,267930816

Sant�Sadurní 9539 18,7 0,005809758 0,063812601 –0,435543989 –1,335665035

Talteüll 851 53,5 0 0,344911147 –0,45377522 –0,487328258

Normalización por ranging y por estandarización de la tabla del subapartado 3.1.1


© FUOC • PID_00200713 61 Aprendizaje

  Original Ranging Estandarización

Población Superficie Población Superficie Población Superficie

Maón 23189 117,2 0,014937659 0,859450727 –0,406900309 1,065518083

Normalización por ranging y por estandarización de la tabla del subapartado 3.1.1

Además, en la tabla siguiente damos algunas estadísticas de estos atributos.


En particular, el valor del mínimo, el máximo, la media y la desviación de los
valores de los atributos considerados.

  Original Ranging Estandarización

Población Superficie Población Superficie Población Superficie

Mínimo 851,00 10,8 0 0 –0,45377522 –1,528247234

Máximo 1.496.266,00 134,6 1 1 –2,684260583 –1,489686471

Media 217.095,27 73,490909 0,144604857 0,506388603 –0 –0

Desviación 476.544,91 41,021444 0,318670679 0,33135254 –1 –1

Algunas estadísticas de la tabla anterior

Sneath y Sokal sugieren que, cuando los atributos binarios son mayoría y se Lectura complementaria
utilizan con coeficientes de correlación, se tienen que codificar mediante los
P.�H.�A.�Sneath;�R.�R.�Sokal
valores 0 y 1 y no se tienen que estandarizar; si en este caso hay atributos or- (1973). Numerical Taxonomy
dinales, se recomienda codificarlos con codificación aditiva. Para situaciones (pág. 157). San Francisco: W.
H. Freeman and Company.
en las que hay atributos binarios y ordinales o nominales, se propone el ran-
ging. Cuando los atributos son mayoritariamente numéricos o categóricos, se
recomienda, en general, la estandarización.

El libro de T. Masters, Signal and Image Processing with Neuronal Networks (John
Wiley & Sons, 1994) describe otros tipos de transformaciones, algunas de las
cuales corresponden a restricciones de ciertos algoritmos. Por ejemplo, descri-
be que hay métodos como las redes neuronales con retropropagación y de
muchas capas que van más deprisa si los valores de las variables están centra-
dos en el cero (por lo tanto, en este caso la estandarización es adecuada), o si
los valores son de magnitudes semejantes (que no haya atributos con valores
muy altos cuando en los otros sólo aparecen valores bajos –eso puede provo-
car, como se ha dicho, que los valores grandes tengan más influencia). Los hay
que requieren que la suma de los cuadrados de los valores de las entradas sea
una constante (es el caso de la red de Kohonen). Esta restricción está motivada
por la suposición de que los valores de las entradas son un vector de puntos
en una esfera. Como eso no siempre es posible, una alternativa es añadir una
variable adicional para que todo cuadre. Para la salida de algunas redes neuro-
nales es adecuado que el valor esté entre 0,1 y 0,9. Utilizar el intervalo [0, 1]
requiere que las entradas de las neuronas de salida tomen valores mayores de
© FUOC • PID_00200713 62 Aprendizaje

los adecuados. De la misma manera, la función tangente hiperbólica tiene un


rango teórico entre –1 y 1, pero en la práctica el rango que se puede aprender
es más bien entre –0,9 y 0,9.

Muchos sistemas (como las redes) no funcionan bien cuando la mayoría


de los casos están en una región del espacio y unos cuantos casos están
en otra región. En este caso se aplican transformaciones para comprimir
el espacio de manera que los casos alejados se acercan a la mayoría.
Algunas de estas transformaciones son la transformación logarítmica, o
por compresiones más suaves, la raíz cuadrada o la cúbica.

Importancia de los atributos

Un elemento que se debe tener en cuenta a la hora de construir las categorías


y, por lo tanto, a la hora de definir las funciones que nos calculan la distancia
entre objetos, es la importancia que hay que dar a los diferentes atributos.
Las funciones presentadas más arriba consideran, por defecto, que todos los
atributos son igualmente importantes. Es decir, todos los atributos tienen que
afectar de la misma manera a la categorización.

A veces, esta importancia igual para todos los atributos no es conveniente.


A veces unos atributos son relevantes en el proceso de categorización o de
clasificación y otras veces, en cambio, son irrelevantes.

Por ejemplo, para determinar una enfermedad es más importante el hecho de tener fie-
bre que las señas del paciente; o para concluir que una ciudad tiene metro, el atributo
población es más relevante que el atributo superficie.

Con el fin de tener en cuenta los pesos, hay funciones de semejanza y de dis-
tancia que incluyen un peso para cada atributo. Sin embargo, el uso de estas
expresiones requiere fijar los pesos antes de empezar el proceso de categoriza-
ción. Tarea que no es sencilla.

En relación con los pesos, Sneath y Sokal argumentan algunas otras cuestiones
sobre los pesos en su libro:

"There are some sound reasons for considering that the weight of a character should be
inversely proportional to its variability. For normally distributed quantitative characters
their information (in the information theory sense) is proportional to the variance, so
that if the variances are made equal, then each character contributes equal information."

Sneath y Sokal (1973, pág. 155)

3.1.3. Estructuras posibles para las categorías construidas

Una manera de distinguir entre los diferentes métodos de categorización es


considerar la relación que se establece entre los objetos originales y las cate-
gorías construidas.
© FUOC • PID_00200713 63 Aprendizaje

Lo más habitual es que nos encontremos con alguno de los casos siguientes:

• Categorías disjuntas: un objeto puede pertenecer sólo a una categoría. Esta Ved también
situación corresponde a los algoritmos que construyen una partición del
Los árboles de decisión con
dominio. Aunque todos los algoritmos acostumbran a asegurar que todos descripciones lógicas es un ca-
los objetos que utilizamos para aprender el modelo tendrán asociada una so similar, pero con categorías
organizadas de forma jerárqui-
categoría, no es así para otros objetos no considerados a priori. En este tipo ca –podéis ver el subapartado
4.4.1.
de algoritmos, a veces se dispone de una partición de los objetos, pero no
del dominio. Éste es el caso de utilizar descripciones lógicas para describir
las categorías.

• Categorías que se superponen:los límites entre las categorías no son níti- Ved también
dos. Éste es el caso de los algoritmos que construyen una partición difusa.
Veremos el Fuzzy C-Means en
El Fuzzy C-Means es un algoritmo que construye este tipo de estructura. el subapartado 3.2.2.

• Categorías organizadas en forma de árbol jerárquico: se establece una rela- Ved también
ción entre las categorías, que se expresa mediante una estructura de árbol
Podéis ver el apartado "Siste-
(sigue el esquema que hemos visto para los atributos con estructura jerár- mas con representación estruc-
quica). La estructuración de objetos en forma de árbol se llama dendrogra- turada" del módulo "Sistemas
basados en el conocimiento"
ma. Los algoritmos de categorización jerárquica nos definen conceptos a de la asignatura Inteligencia
artificial. Los algoritmos del
distintos niveles, y nos establecen que los conceptos que comparten un subapartado 3.3 construyen
estas jerarquías.
nodo padre son más semejantes entre ellos que con los demás. Además, se
entiende que la relación entre un nodo y su nodo padre en una jerarquía
corresponde a una relación de superclase (o una relación "es-uno").

3.1.4. Descripciones posibles para las categorías construidas

Para la descripción de las estructuras que construye un sistema de categoriza-


ción hay diversas alternativas. A continuación vemos algunas de ellas:

• Representación extensional: las categorías están representadas mediante Ved también


una enumeración de los objetos que las definen. En los métodos de apren-
Los métodos "vecino próximo"
dizaje que utilizan descripciones extensionales sin usar una descripción descritos en el subapartado
intensional son, a veces, llamados métodos de aprendizaje perezoso. 4.1.1 se pueden ver desde este
punto de vista.

• Representación intencional: las categorías están representadas en términos Lectura complementaria

de sus propiedades. Hay diversas formas de representar las categorías de El Fuzzy C-Varieties se descri-
una manera extensional. Por ejemplo: be en:
J.�C.�Bezdek (1981). Pattern
– Representación mediante centroides: se utiliza un punto en el espacio recognition with fuzzy objecti-
de los objetos para representar toda la categoría. Como los objetos es- ve function algorithms. Nueva
York: Plenum Press.
tán descritos por M atributos, este punto, que se llama centroide, tam-
bién se encuentra en un espacio de dimensión M. El centroide se inter-
preta como el prototipo de la categoría. Hay algunos algoritmos que en
© FUOC • PID_00200713 64 Aprendizaje

lugar de utilizar un único punto como representante de una categoría


utilizan otras estructuras. Así el Fuzzy C-Varieties considera variedades
lineales (pueden ser puntos, líneas, planos o, incluso, hiperplanos).

– Representación mediante expresiones lógicas: para cada categoría se


construye una descripción formal en términos lógicos. Generalmente,
eso corresponde a una expresión conjuntiva que satisfacen todos los
miembros de la categoría y que, en cambio, no satisfacen los miembros
de las otras categorías.

3.1.5. Tipos de algoritmos

La manera de construir las categorías y la estructura que las relaciona permite


clasificar los métodos de aprendizaje. En el caso de construir jerarquías de
objetos, se distinguen dos grandes familias:

• Métodos partitivos: son los métodos que consideran inicialmente una úni-
ca categoría y después, en pasos sucesivos, toman algunas de las categorías
que ya hay y las dividen para formar nuevas categorías más específicas.
Estos métodos construyen la jerarquía de arriba abajo.

• Métodos aglomerativos: en este caso se construye la jerarquía de abajo arri-


ba. Los métodos empiezan considerando cada objeto como una categoría
independiente y después, en pasos sucesivos, agrupan algunas categorías
para definir una nueva.

En el subapartado 3.2 veremos diversos métodos para definir las categorías


y para obtener estructuras que las relacionen. Empezaremos viendo métodos
que construyen particiones y particiones difusas. Después pasaremos a los mé-
todos que construyen jerarquías de categorías.

3.2. Particiones y particiones difusas de objetos

Muchos algoritmos de categorización se basan en la idea de optimizar una Lectura complementaria


función objetivo. Son los llamados métodos de categorización óptima. En este
El uso del nombre C-Means
caso, infiriendo que S es la región de valores posibles, se trata de encontrar en lugar de K-Means ha apa-
un elemento s de S que minimice la función que se debe optimizar (que de- recido en varios trabajos. Por
ejemplo, en:
notamos como FO –por función objetivo). Es decir, hallar una s' tal que FO(s') M.�R.�Anderberg (1971).
= mins∈SFO(s). Esto se escribe también como s'= arg mins∈SFO(s). En este caso, Cluster Analysis for Applica-
tions, Probability and Mathe-
diferencias en las funciones objetivo implican diferencias en la categorización. matical Statistics. Nueva York:
Academic Press.

A continuación veremos dos de los métodos de categorización que hay. Ha-


bitualmente se llaman K-Means y Fuzzy C-Means. Son dos métodos de cate-
gorización óptima en el que s es el conjunto de particiones posibles (y s una
partición óptima). Mientras que el primero construye una partición nítida del
© FUOC • PID_00200713 65 Aprendizaje

dominio, el segundo la construye difusa. Dado que los términos K y C en los


nombres de los dos algoritmos corresponden al mismo elemento (el número
de categorías que se construyen), utilizamos una misma notación en los dos
casos (la variable c). Así, al primero lo llamamos C-Means (o C-Means nítido
cuando sea necesario diferenciarlo del segundo) y al segundo, Fuzzy C-Means.

La sección acaba con los algoritmos de Vector Quantization y los mapas au- Ejemplo
to-organizativos (SOM, en inglés, self organizing maps).
En esta expresión ||u|| corres-
ponde a la norma del vector.
3.2.1. El C-Means Así si u = (u1, –, ur), entonces
||u|| =

El algoritmo C-Means corresponde a encontrar una partición C = {C1, ..., Cc}


del conjunto de objetos (es decir, ∪ Ci = X, y Ci ∩ Cj = ∅ para todo i ≠ j) de
manera que se minimice la expresión siguiente:

2
∑k =1,C ∑x ∈ Ck ||A(x) − pk ||

Aquí, cada Ck corresponde a una categoría y pk se interpreta como el prototipo


(o centroide) de la categoría (podemos entender pk= A(Ck)). Considerando χk
la función característica de los conjuntos Ck podemos rescribir la función ob-
jetivo FO que se tiene que minimizar como:

2
FO(χ,P) =∑k =1,C ∑x χk(x) ||A(x) − pk||

Donde χ = {χ1, ..., χc } corresponde al conjunto de todas las funciones caracte-


rísticas y donde P = { p1, ..., pc} es el conjunto de todos los prototipos.

Como la función característica es 1 para los elementos que pertenecen al con-


junto y 0 para los que no pertenecen, aquí tenemos que χk(x) =1 si, y sólo si,
x ∈ Ck y, por lo tanto, que χk(x) = 0 si x no pertenece a Ck.

El problema es:

minimizar FO(χ,P) = ∑k =1,C ∑x χk(x) ||A(x) − pk||2

sujeto a

χ ∈ Mc = { (χk(x)) | χk(x) ∈ {0, 1}, ∑k =1,Cχk(x) = 1 para todo x ∈ X }

A continuación presentamos un algoritmo iterativo para encontrar el mínimo


de esta expresión. El algoritmo, sin embargo, no asegura un mínimo global,
sino que sólo asegura convergencia (porque en cada paso se reduce el valor de
la función objetivo) y llegar a un mínimo local.
© FUOC • PID_00200713 66 Aprendizaje

El algoritmo sigue un esquema iterativo en el que en cada iteración se


busca primero la mejor partición a partir de unos centros y, a conti-
nuación, se vuelven a calcular los centros a partir de la nueva partición
construida. De acuerdo con eso, para empezar el algoritmo necesita una
partición inicial o unos centros a partir de los cuales calcularla. El algo-
ritmo acaba cuando no hay ninguna modificación de la partición.

Veamos a continuación el algoritmo más detalladamente:

1) Definir una partición inicial χ y calcular los centroides P

2) Resolver

minχ∈Mc FO(χ,P)

3) Resolver

minPFO(χ,P)

4) Parar cuando χ y P sean convergentes, de otro modo, ir a 2.

Tanto para el paso 2 como para el paso 3 es posible encontrar la mejor solución.
Las soluciones de los subproblemas son:

a) El óptimo para el paso 2 se consigue asignando los objetos al centro más


próximo. Así,

χk(xi) = 1 si, y sólo si, pk = arg minm|| A(x) − pm||

χj(xi) = 0 para todo j ≠ k

b) El óptimo para el paso 3 se consigue definiendo el prototipo como la media


de los elementos asignados a la partición. Así:

Notad que aquí el prototipo es un vector en el espacio de los atributos. Por lo


tanto, pk tiene un componente para cada atributo y la expresión corresponde a
una media de vectores. Así, recordando que pk se puede entender como A(Ck),
tenemos que A(Ck) = (A1(Ck), A2(Ck), ..., AM(Ck)) y, por lo tanto, la componente
j-ésima del prototipo de la categoría Ck es:
© FUOC • PID_00200713 67 Aprendizaje

Además de la determinación de las particiones y los centroides que minimizan


las expresiones en los pasos 2 y 3, hay que considerar también el paso 1. Es
decir, cómo definir la inicialización del problema. Una alternativa es construir
una partición cualquiera (por ejemplo, de manera aleatoria), a partir de la cual
encontramos los centroides. Una vez tenemos estos centroides, podemos em-
pezar a iterar en el paso 2. Otra alternativa es definir los centroides de cada
categoría a partir de los objetos. La selección de un objeto para cada catego-
ría se puede definir de una manera aleatoria. A veces, es más conveniente em-
pezar con la asignación de objetos en centroides, porque la definición de las
particiones puede provocar que después de algunas iteraciones queden en el
segundo paso categorías sin ningún objeto asignado.

La condición de convergencia del algoritmo consistirá en ver si en dos itera-


ciones sucesivas las particiones que se consiguen son iguales.

3.2.2. Fuzzy C-Means

Una alternativa al algoritmo de clasificación C-Means es el llamado Fuzzy C-


Means. De hecho, es una generalización. La diferencia fundamental desde el
punto de vista operacional es que mientras que el primer método construye
una partición nítida del conjunto de elementos, el Fuzzy C-Means construye
una partición difusa. Eso, desde el punto de vista conceptual, corresponde a
considerar que las categorías subyacentes a los datos (e inducidas a partir de
estos datos) son difusas.

Podéis ver el apartado "Sistemas difusos" del módulo "Incertidumbre y razonamiento


aproximado" de la asignatura Inteligencia artificial, que estudia los conjuntos difusos. Se
presentan los conjuntos difusos como una generalización de los conjuntos clásicos tam-
bién llamados nítidos. Así, mientras que en los conjuntos nítidos un elemento puede
pertenecer o no a un conjunto, en el caso difuso la pertenencia es graduada. Es decir,
un elemento pertenece a un conjunto en un cierto grado. Habitualmente se considera la
gradación de la pertenencia en el intervalo unidad (el intervalo [0, 1]), en el que el valor
1 corresponde a pertenencia completa y 0 a no pertenencia.

Así, con un conjunto de objetos X = { x1, x2, ..., xN } evaluado en términos de los
atributos A = { A1, ..., AM } los algoritmos de categorización difusa construyen
una partición difusa de los objetos X. Por lo tanto, si consideramos c categorías
(C = { C1, ..., Cc}), el problema consiste en encontrar c funciones de pertenencia
μ1, μ2, ...,μc, donde μi corresponde a la función de pertenencia de Ci, de manera
que para un objeto x la suma de las pertenencias a las categorías de C es 1.
Además, queremos que para cada categoría haya como mínimo un elemento
con pertenencia no nula. Por lo tanto, para las funciones de pertenencia se
satisfacen las dos condiciones siguientes:
© FUOC • PID_00200713 68 Aprendizaje

∑i =1,c μi(x) = 1 para todo objeto x ∈ X

0 < ∑x∈X μi(x) < N para todas las clases Ci ∈ C

Consideremos el ejemplo de la categorización de 15 objetos X = { x1, x2, ..., x15} descrito


por Bezdek en su libro Pattern Recognition with Fuzzy Objective Function Algorithms (1981,
Nueva York: Plenum Press). Estos objetos se describen en términos de dos atributos nu-
méricos A = { A1, A2 } tal como aparece en la tabla siguiente. Ofrecemos una representa-
ción gráfica de estos objetos en la figura 22.

Objeto 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

A1 0 0 0 1 1 1 2 3 4 5 5 5 6 6 6

A2 0 2 4 1 2 3 2 2 2 1 2 3 0 2 4

Descripción de los quince objetos de acuerdo con Bezdek. Pattern Recognition with Fuzzy Objective Function Algorithms (1981, Nueva York: Plenum Press).

Figura 2.4. Representación gráfica de los quince objetos de la tabla

Un ejemplo de partición difusa considerando dos categorías C = { C1, C2 } para este con-
junto de objetos se da en la tabla siguiente. Podemos observar que para cada objeto la
suma de las funciones de pertenencia a las diferentes clases es igual a 1. Es decir, la suma
de los valores en una misma columna es igual a 1.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0,99 0,98 0,99 0,86 0,85 0,86 0,67 0,50 0,33 0,14 0,15 0,14 0,01 0,02 0,01

0,01 0,02 0,01 0,14 0,15 0,14 0,33 0,50 0,67 0,86 0,85 0,86 0,99 0,98 0,99

Una partición difusa en dos categorías para los objetos de la tabla superior

A fin de definir una generalización del C-Means, lo más sencillo es traducir el


problema que hemos visto antes:

2
minimizar FO(χ,P) = ∑k =1,C ∑x χk(x)||A(x) − pk||

sujeto a
© FUOC • PID_00200713 69 Aprendizaje

χ∈ Mc = { (χk(x)) |χk(x) ∈{ 0, 1 }, ∑k =1,C χk(x) = 1 para todo x ∈ X }

de manera que ahora se incluyan las funciones de pertenencia (en lugar de las
funciones características) y que éstas definan particiones difusas. Utilizando
μk para las funciones de pertenencia en lugar de χk, tenemos que el problema
se transforma en:

2
minimizar FO(μ, P) = ∑k =1,C ∑x μk(x) ||A(x) − pk||

sujeto a

μ∈ Mf = { (μk(x)) |μk(x)∈[0, 1], ∑k =1,C μk(x) = 1 para todo x ∈ X }

Sin embargo, las soluciones de este problema de optimización están en los ex-
tremos del intervalo unidad (son 0 o 1) y, por lo tanto, corresponden a una
partición nítida. Eso es debido a que la función objetivo es lineal en relación
con los valores de las funciones de pertenencia. Con el fin de encontrar solu-
ciones difusas interesantes, es necesario hacer la función objetivo no lineal en
relación con las funciones de pertenencia. Eso se consigue, en general, intro-
duciendo un parámetro en la función objetivo. Este parámetro, denotado ha-
bitualmente por m, tiene que ser mayor que 1. Así, el problema queda definido
como mostramos a continuación:

minimizar FO(μ, P) = ∑k =1,C ∑x (μk(x)) ||A(x)−pk||2


m

sujeto a

μ ∈ Mf = { (μk(x)) |μk(x) ∈[0, 1], ∑k =1,Cμk(x) = 1 para todo x ∈ X }

En este problema, aparte de necesitar la definición de c necesitamos la defini-


ción de m. La constante c corresponde, de la misma manera que en el caso
del C-Means, al número de categorías (difusas) permitidas. La constante m co-
rresponde al grado en el que las categorías tienen que ser difusas. Cuanto ma-
yor es m, más difusas son las categorías y se consigue, en el límite, que todas
las categorías recubran todos los elementos. Cuanto menor es el valor m, más
nítidas son las clases. El límite se consigue con m = 1, en el que el algoritmo
correspondería al C-Means.

Para resolver este problema se utiliza el mismo esquema que en el caso del
C-Means. De hecho, el algoritmo que presentamos, como en el caso del C-
Means, no es óptimo. Así, consideramos un proceso iterativo en el cual se in-
tercala la determinación de las categorías (en este caso la determinación de las
funciones de pertenencia) y la determinación de los centros. Las dos determi-
© FUOC • PID_00200713 70 Aprendizaje

naciones aparecen como solución de los problemas de minimización análogos


a los del C-Means. De esta manera tenemos que el algoritmo de resolución del
problema es:

1) Definir una partición inicial μ y calcular los centroides P

2) Resolver

minμ ∈ Mf FO(μ, P)

3) Resolver

minP FO(μ, P)

4) Para cuando μ y P sean convergentes, de otro modo, ir a 2.

Como antes, los subproblemas considerados se pueden resolver de manera


óptima.

La resolución del problema del paso 2 corresponde a definir las funciones de


pertenencia μk de esta manera:

Para cada elemento xi se define la pertenencia de xi a las categorías Ck de esta


manera:

2
a) Si ||xi − pk|| > 0 para toda categoría Ck, entonces:

2
b) Si hay alguna categoría Ck para la cual ||xi − pk|| = 0, entonces considerad el
conjunto Z = {k | ||xi − pk||2 = 0}. Este conjunto Z corresponde a las categorías en
las que su prototipo coincide con xi. De acuerdo con este conjunto, se definen
las funciones de pertenencia para el objeto xi de la siguiente manera:

• Para todo z ∈ Z, se define μz(xi)de manera arbitraria pero para que se cum- Nota
pla
Ved que el caso b corresponde
∑z ∈ Z μz(xi) = 1 a la situación en la que el pun-
to xi está en la misma posición
y, evidentemente, μz(xi) ∈ [0, 1]. que algún centroide pk (pues-
2
to que ||xi – pk|| = 0 entonces
xi = pk). En este caso, la perte-
• Para todo k que no pertenece a Z, nencia del punto xi se reparte,
μk(xi) = 0 de manera arbitraria, entre to-
dos los centroides posibles que
coinciden con xi.
© FUOC • PID_00200713 71 Aprendizaje

La resolución del paso 3 se consigue de manera parecida al caso nítido, y se


define el prototipo como la media de los objetos asignados a la partición. En
este caso, sin embargo, la media es ponderada y tiene en cuenta los grados de
pertenencia:

Para cada categoría Ck se define su centroide como:

que, para la componente j-ésima queda definido como:

Para completar la definición del algoritmo, se tiene que concretar la iniciali-


zación y la condición de finalización. La inicialización se puede hacer como
en el caso del C-Means mediante una partición, ahora, evidentemente difusa,
de los elementos o bien mediante una asignación de los centroides.

La condición de finalización del Fuzzy C-Means, habitualmente, consiste en


comparar las funciones de pertenencia a las categorías en dos pasos sucesivos.
Utilizando un umbral λ próximo a cero pararemos las iteraciones cuando:

λ> máxk =1,c,x∈X |μ'k(x) − μk(x)|

donde μ' y μ corresponden a las funciones de pertenencia de dos pasos suce-


sivos.

Regularización

La regularización es una técnica que se utiliza para resolver problemas mal


condicionados. La idea fundamental consiste en modificar un problema que
de alguna manera es singular y, por lo tanto, difícil de resolver, en uno regular
más sencillo de resolver. Se dice que el segundo problema es una regulariza-
ción del primero cuando la solución del problema regularizado es una aproxi-
mación a la solución del problema original.

Una forma de regularización muy frecuente consiste en incluir un término


adicional aditivo en la función objetivo. Por ejemplo, hay una regularización
del Fuzzy C-Means teniendo en cuenta la entropía. La función objetivo regu-
larizada correspondiente es:
© FUOC • PID_00200713 72 Aprendizaje

2 -1
FO – R(μ,P) = ∑k =1,C ∑x (μk(x)) ||A(x)− pk|| + λ ∑k =1,C ∑x (μk(x)) log(μk(x))

En esta expresión el término de la entropía sirve para que las pertenencias


estén lo máximo repartidas posible. Así, el término ∑k =1,C ∑x (μk(x)) log (μk(x))
será mínimo cuando μk(x) = 1/(c|x|). Por lo tanto, este término "ayuda" a hacer
que la solución final sea difusa.

La solución de este problema sigue el esquema del Fuzzy C-Means visto más
arriba: un proceso iterativo en el que en cada paso se calculan las funciones de
pertenencia y los centroides. Ahora el cálculo de las funciones de pertenencia
asociadas a los objetos es diferente. La expresión correspondiente es:

También varía el cálculo de los centroides. Ahora, para cada categoría Ck, su
centroide se define como:

3.2.3. Vector Quantization

El algoritmo Vector Quantization es un método de categorización que está


fuertemente relacionado con el C-Means. Mientras que en el C-Means se re-
consideran cada vez todos los objetos (modificando las particiones de acuerdo
con cuál es el centroide más próximo a cada objeto y modificando después los
centros), en el algoritmo Vector Quantization se reconsidera un objeto cada
vez. Así, para un objeto, se determina cuál es la categoría a la cual pertenece,
y a continuación se modifica el centroide de esta categoría de acuerdo con el
objeto (acercando el centroide al objeto).

En este algoritmo, en lugar de prototipo o centroides de las categorías se habla


habitualmente de neuronas. Así, si repasamos la notación del apartado ante-
rior, tenemos que p1, ..., pc corresponden a las c neuronas asociadas a las cate-
gorías C1, ..., Cc –donde c es, como antes, un número fijado a priori– y, como
antes, para cada categoría ck, el vector pk corresponde a un vector en el espacio
de los objetos.
© FUOC • PID_00200713 73 Aprendizaje

Según lo que se ha expuesto más arriba, el algoritmo tiene la forma siguiente:


1. asignar unos valo-
res iniciales a los
En este algoritmo la variable l corresponde a la categoría más próxima al objeto vectores p1, ..., pc

seleccionado. Es decir, al objeto xi. 2. t := 0;

3. repetir
La modificación de los prototipos se basa en el valor η que depende de la ite-
4. seleccionar un
ración (el tiempo). Este factor se llama factor de aprendizaje26. Se puede observar ejemplo xi del con-
que un valor de η = 1 implica que el centroide se desplace de la posición en junto

la que está a la posición que ocupa el objeto. La elección de los valores para 5. l := arg min1≤k≤ c

η influirá en la convergencia del algoritmo y en la solución encontrada. En ||xi – pk||

general, se recomienda empezar con valores grandes (por ejemplo, cercanos a 6. pl := pl + η(t) [xi
0,5) y hacer decrecer el parámetro en cada iteración hasta llegar a cero. Una – pl]

de las alternativas es hacer decrecer el parámetro de manera lineal. El número 7. t := t + 1;


de iteraciones que se recomienda es de unos cuantos millares.
8. hasta que converja

Mirado desde el punto de vista de las redes neuronales, el Vector Quantization


(26)
es un algoritmo de aprendizaje competitivo. En estos algoritmos, todas las En inglés, learning rate.
neuronas "compiten" para todos los ejemplos. En el paso 5, una de las neuronas
se selecciona como la más próxima al objeto y es la que se verá modificada. Ved también

Este factor de aprendizaje apa-


El esquema de aprendizaje que hemos utilizado es el Vector Quantization, en recerá en el apartado dedicado
a las "Redes neuronales".
el que sólo una neurona es seleccionada (la neurona l) y sólo esta neurona
es modificada. Este esquema se llama winner-take-all (WTA). Sin embargo, hay
diferentes alternativas a este esquema. Algunas las vemos a continuación:

(27)
• El ganador se lleva la mayor parte27: uno de los problemas que aparece en el En inglés, WTM: winner-ta-
ke-most.
Vector Quantization es que se pueden obtener prototipos que no tienen
ningún objeto asociado (este problema, de hecho, ya lo hemos comentado
para el C-Means, en el que también aparece). Eso sucede cuando la asigna-
ción inicial del prototipo (o bien a causa de una adaptación posterior) lo
hace quedar lejos de los datos, de manera que a partir de aquel momento
nunca se selecciona por los objetos como más próximo. Un esquema al-
ternativo es que todos los prototipos se modifiquen en cada iteración, y se
juntan proporcionalmente a una función que representa la contribución
del prototipo a la competición. Sin embargo, esta modificación, en la que
todos los objetos actúan sobre todos los prototipos, puede provocar que
todos estén sesgados hacia la media global de todas las categorías.

• Penalización de las categorías no ganadoras: en el algoritmo considerado sólo


6'. pk := pk - η(t)[xi
se modifica el centro que ha sido seleccionado como el más próximo. Hay - pk] para todo l ≠ k
métodos que también modifican los centroides de aquellas categorías que
no han sido seleccionadas. En este caso, lo que se hace es alejar el centroide
del objeto en cuestión. Eso corresponde a añadir al algoritmo la línea:
© FUOC • PID_00200713 74 Aprendizaje

Este último esquema de aprendizaje se utiliza en el marco del Learning Vector Ved también
Quantization.
Un algoritmo de aprendizaje
supervisado que veremos en el
3.2.4. Mapas autoorganizativos subapartado 3.1.2.

(28)
Los mapas autoorganizativos28 son una extensión del algorimo Vector Quan- En inglés, self-organizing maps,
SOM.
tization. La idea es que ahora las neuronas no son entidades aisladas, sino
que están organizadas en una estructura. Por ejemplo, pueden estar organiza-
das en una estructura unidimensional o bidimensional. Entonces, igual que
en el caso del Vector Quantization, se selecciona la neurona más próxima y
el prototipo correspondiente se modifica. Pero ahora, además de modificar la
neurona más próxima, también se modifican las neuronas vecinas a la más
próxima. Aquí, el significado de las neuronas próximas está determinado por
la arquitectura de la red (su topología).

Así, si l es la neurona seleccionada como más próxima, también consideramos


4. seleccionar un
las neuronas que son próximas a l (utilizamos m para denotar estas neuronas ejemplo xi del con-
en el algoritmo). Tenemos que subrayar que el concepto de neurona próxima junto

se define en la arquitectura (o topología) de la red y no en el espacio de los 5. l = arg min1≤k≤c ||


centroides o en el de los datos. Así, el SOM corresponde al algoritmo del Vector xi – pk ||

Quantization cuando consideramos en cada iteración los pasos siguientes: 6. pm = pm + η(t)[xi –


pm] para toda m pró-
xima a l
Por ejemplo, si consideramos un mapa autoorganizativo con una arquitectura
bidimensional formada por 10 × 10 neuronas, tenemos que cada neurona vie-
ne indexada por un par de enteros (i, j) para i, j ={ 0, 1, ..., 9 }. Eso corresponde
a una arquitectura como la que aparece en la figura 23. En esta arquitectura,
cada neurona Cij tiene asociado un prototipo pij.
© FUOC • PID_00200713 75 Aprendizaje

Figura 23. SOM de 10 × 10

En la figura 24 se definen los vecinos de la neurona Cij. Así, cuando la neurona


seleccionada es Cij, se modificarán todos los pm sombreados en esta figura.
© FUOC • PID_00200713 76 Aprendizaje

Figura 25. Vecinos de Cij

Una manera alternativa de definir el SOM es mediante una función de vecin-


6'. pm = pm + η(t)h(||
dad. Esta función, que denotamos h, da más peso a los prototipos con índice m m – l||)[xi – pm] para
próximos a l, y es máxima para el índice l. Para definir la función se considera toda m

la diferencia entre el índice de la neurona seleccionada como mejor y el índice


de la neurona que tratamos. Utilizando esta función tenemos que la expresión
6 se puede rescribir como:

Así, ahora se puede hacer la modificación para cualquier neurona y no sólo


para las próximas.

Evidentemente, la función de vecindad es una función que vale 1 cuando ||m


− l || = 0 (es decir, h(0) = 1) y que es decreciente a medida que ||m−l|| aumenta.

Cuando el SOM no tiene en cuenta a los vecinos, el algoritmo corresponde al


Vector Quantization (es decir, se puede modelizar con una función h donde
h(0) = 1 y h(x) = 0 para cualquier otra x > 0); por lo tanto, corresponde a un C-
Means. Cuando la proximidad es grande e incluye todas las neuronas, tenemos
que todas las neuronas de la red aprenden el mismo prototipo: el centroide del
conjunto de datos. Eso corresponde a un C-Means con una única categoría.

En relación con el factor de aprendizaje que aparece en el algoritmo, vemos


que corresponde al que tenemos en el caso del Vector Quantization.
© FUOC • PID_00200713 77 Aprendizaje

Aquí hemos presentado los SOM como un método que construye particiones
de los objetos. Sin embargo, también se pueden ver como unos métodos para
reducir la dimensionalidad de los datos y para visualizarlos en menos dimen-
siones, ya que las relaciones de semejanzas en el espacio original (un espacio
de dimensión M) se reducen en el espacio de la arquitectura (dos dimensiones,
en las arquitecturas que hemos utilizado aquí).

3.3. Jerarquías de objetos

Hasta ahora hemos visto métodos de categorización partitivos donde las ca-
tegorías que se construyen son o bien particiones, o bien particiones difusas.
Hemos comentado que una alternativa es definir una estructura con las cate-
gorías. Normalmente, se considera una estructura en forma de árbol. En este
subapartado veremos algoritmos que construyen jerarquías de objetos y, por
lo tanto, definen estructuras jerárquicas (los dendrogramas) para las categorías
correspondientes.

Como se ha dicho, para la construcción de estas jerarquías se pueden utilizar


tanto métodos partitivos como métodos aglomerativos. En el primer caso se
parte de un único conjunto de objetos que corresponde a la categoría más ge-
neral (que contiene todos los objetos) y en pasos sucesivos se van refinando
las categorías que hay y se hacen particiones. Para hacer estas particiones, se
pueden utilizar los algoritmos vistos más arriba. En el caso de los métodos
aglomerativos, se parte de tantas categorías como objetos (cada objeto tiene
asociada su categoría), y en pasos sucesivos se van construyendo generaliza-
ciones que agrupan categorías que ya existen. Eso se consigue reuniendo en
una misma categoría aquellas que se parecen. Aquí sólo veremos algunos mé-
todos aglomerativos. También veremos, sin embargo, un método basado en la
llamada clausura transitiva. Este método, que está relacionado con el tema de
conjuntos difusos, es equivalente a uno de los métodos aglomerativos.

3.3.1. Métodos aglomerativos

Como se ha dicho, la construcción de las aglomeraciones se basa en la conside-


ración de semejanzas entre categorías ya existentes, y, en cada paso, se juntan
aquellas categorías que son más semejantes. Las diferencias que hay entre los
diferentes métodos consisten, entre otros aspectos, en la manera de calcular
las semejanzas (aspecto considerado en el subapartado 3.1.2), en la manera de
seleccionar las categorías que se reúnen (normalmente las dos más próximas,
pero se pueden seleccionar conjuntos de más de dos categorías) y en la manera
de calcular las distancias entre categorías que contienen más de un objeto.

A continuación, damos el esquema general para la construcción de dendrogra-


mas especificando dónde se utilizan los tres elementos mencionados: funcio-
nes de semejanza, criterio de agregación (cómo seleccionamos los objetos que
unimos) y criterio para recalcular las semejanzas. El algoritmo empieza con un
primer paso en el que se calculan las semejanzas para todos los pares de objetos
© FUOC • PID_00200713 78 Aprendizaje

(eso constituye la matriz de semejanzas iniciales). A partir de aquí, un proceso


iterativo selecciona los objetos y modifica la matriz de semejanzas, teniendo
en cuenta los elementos que se han unido y la categoría que se ha añadido:

0. Construcción de la matriz de semejanzas inicial


(se utilizan las funciones de semejanza)

1. Selección de las categorías que se tienen que integrar en la


nueva categoría (criterio de agregación)

2. Modificación de la matriz de semejanza:

2.1. Eliminación de las categorías que forman la nueva categoría

2.2. Inserción de la nueva categoría

2.3. Cálculo de la semejanza entre la nueva categoría y el resto


de las categorías (criterio para recalcular las semejanzas)

4. Repetir los pasos 1-2 hasta que tenemos una única categoría

Pasemos ahora a detallar los aspectos relativos a los tres criterios:

1) Las funciones de semejanza: la matriz de semejanzas se define a partir de la


aplicación de una función de semejanza a cada par de objetos. Las funciones
que se consideran son las que hemos visto en el subapartado 2.1.2.

2) El criterio de agregación: consiste en determinar qué categorías pasan a for-


mar parte de la nueva categoría. Habitualmente, se seleccionan los elementos
que tienen una semejanza más alta o distancia más pequeña. Así, si pensamos
que construimos árboles binarios (cada vez sólo permitimos la unión de dos
objetos), tomaremos xi y xj si

s(xi,xj) = minx,x'∈X,x≠x' s(x,x')

3) El criterio para recalcular las semejanzas (también llamado criterio de clasi-


ficación): cuando generamos una nueva categoría, tenemos que considerar la
semejanza con todas las otras. Generalmente, la semejanza de una categoría
con la nueva se calcula a partir de las semejanzas de la categoría con aquéllas
que hemos unido. Hay, sin embargo, diversas maneras de definir las nuevas
semejanzas. Algunas de las alternativas son:

(29)
a)� vínculo simple29: entre las semejanzas entre la categoría y las categorías que En inglés, single linkage.

hemos unido se toma la mayor (si se habla de distancias será la menor):

s(nueva-categoría, categoría) = maxx∈nueva-categoría s(x, categoría)

(30)
b)� vínculo completo30: como la anterior pero tomando el mínimo (máximo En inglés, complete linkage

si hablamos de distancias):
© FUOC • PID_00200713 79 Aprendizaje

s(nueva-categoría, categoría) = minx∈nueva-categoría s(x, categoría)

(31)
c)� media aritmética31: se hace la media de las semejanzas: En inglés, arithmetic average.

s(nueva-categoría, categoría) = (1/|nueva-categoría|) ∑x∈nueva-categoría s(x, categoría)

d)� centroide: cada categoría tiene asociado un centroide, y la nueva semejanza


requiere que se recalcule el centroide y se calculen las semejanzas a partir de él.

Los dendrogramas que construimos con estos algoritmos se pueden ver como
representaciones estructuradas del conocimiento y, por lo tanto, los algorit-
mos de aprendizaje lo que hacen es extraer este conocimiento a partir de los
datos. Así, en estos dendrogramas tendremos que cada nodo tiene asociada
una categoría (que corresponde a un concepto) y los vínculos entre nodos co-
rresponden a relaciones "es un caso particular de" (el nodo hijo es una subcla-
se del nodo padre). Normalmente se cumplirá que un nodo cubre todas las
instancias que cubren sus hijos.

Como el espacio de búsqueda correspondiente a las jerarquías posibles


es muy grande, normalmente la construcción de la jerarquía se basa en
métodos ávidos. Éste es el caso del algoritmo descrito en este subapar-
tado.

3.3.2. Métodos basados en la clausura transitiva

Estos métodos se basan en el hecho de conocer una relación de semejanza


definida sobre los objetos que sea transitiva. Pertenecen al ámbito de los con-
juntos difusos y enlazan con el hecho de tener una relación transitiva como
hemos formulado en el subapartado 2.1.2 (cuando hemos hablado de los coe-
ficientes basados en distancias). Así, la idea básica del método es construir un
dendrograma a partir de una relación de semejanza que sea transitiva en rela-
ción con una t-norma T. Además, desde luego, la relación será reflexiva y con-
mutativa. Así, recordando estas condiciones del subapartado 2.1.2, tenemos
que se deben tomar valores en el intervalo [0, 1] y tiene que satisfacer:

reflexiva s(x, x) = 1
conmutativa s(x, y) = s(y, x)
transitiva s(x, z) ≥ T(s(x, y), s(y, z))

Aquí utilizaremos la t-norma mínimo. Por lo tanto, la condición de transiti-


vidad queda:

s(x, z) ≥ min(s(x, y), s(y, z))


© FUOC • PID_00200713 80 Aprendizaje

Cuando disponemos de una relación con estas características, al tomar dis- Nota
tintos α-cortes obtenemos diferentes particiones del dominio. Dado que estas
Un α-corte de un conjunto di-
particiones están anidadas, nos definen una jerarquía. fuso corresponde a seleccionar
todos los elementos con fun-
ción de pertenencia mayores
A continuación, veremos este proceso con un ejemplo. Consideremos la se- que o iguales a α.

mejanza definida en la tabla siguiente sobre los objetos X = { x1, x2, x3, x4, x5 }.

  x1 x2 x3 x4 x5

x1 1 0,7 0,9 0,6 0,6

x2 0,7 1 0,7 0,6 0,6

x3 0,9 0,7 1 0,6 0,6

x4 0,6 0,6 0,6 1 0,8

x5 0,6 0,6 0,6 0,8 1

Semejanza transitiva

Ahora, tomando valores de α en el intervalo [0, 1] obtenemos diversas particiones de X.


A efectos de construcción del dendrograma, sólo hay que considerar los valores α del
conjunto { 1, 0,9, 0,8, 0,7, 0,6 }, que son los valores que aparecen en la tabla.

Así, para α = 1 tenemos que las relaciones que hay con grado 1 son las de un elemento
consigo mismo. Por lo tanto, la partición que se obtiene es:

{ { x1 }, { x2 }, { x3 }, { x4 }, { x5 } }

Después hacemos lo mismo con α = 0,9. Ahora vemos que los objetos x1y x3 están rela-
cionados con grado 0,9. Por lo tanto, en la nueva partición estos dos objetos tienen que
aparecer agrupados. La partición que obtenemos es:

{ { x1, x3 }, { x2 }, { x4 }, { x5 } }

Después, cuando tomamos el valor de 0,8 tenemos que x4y x5 también están relaciona-
dos. Por lo tanto, la correspondiente partición estará considerando x4y x5 en un mismo
conjunto y x3y x1 también reunidos en otro (también tienen una relación con grado ma-
yor que 0,8):

{ { x1, x3 }, { x2 }, { x4, x5 } }

A continuación, con α = 0,7 encontramos que todos los pares entre x1, x2 y x3 están
relacionados con un valor mayor que 0,7. Por lo tanto, la partición correspondiente será:

{ { x1, x2, x3 }, { x4, x5 } }

Finalmente, si consideramos α = 0,6, tenemos que todos los pares están relacionados
como mínimo con este valor. Por lo tanto, obtenemos un único conjunto en la partición:

{ { x1, x2, x3, x4, x5 } }

Estas particiones se pueden ordenar para formar un dendrograma poniendo la partición


para α = 1,0 en las hojas del árbol jerárquico y para α = 0,6 en la raíz. Eso se muestra
en la figura 25.
© FUOC • PID_00200713 81 Aprendizaje

Figura 25. Dendrograma extraído de la tabla anterior

Para construir el dendrograma a partir del conjunto de objetos, hemos supues-


to que tenemos una semejanza transitiva. A menudo, sin embargo, dispone-
mos de una semejanza (construida, por ejemplo, a partir de funciones de se-
mejanza o distancia como las que hemos visto en el subapartado 3.1.2) que
no es transitiva. En estos casos podemos construir la clausura transitiva de la
relación original. Eso nos construirá una nueva relación que satisface las con-
diciones dadas más arriba (reflexividad, conmutatividad y transitividad).

La clausura transitiva de una relación consiste en componer la relación origi-


1. función clausu-
nal consigo misma hasta que el resultado de la composición no varíe. Así, si ra-transitiva (S: se-
R es la semejanza original y "o" la operación de composición, aplicaremos el mejanza) retorna se-
mejanza es
procedimiento siguiente a R:
2. repetir

Para que este algoritmo quede completamente determinado, hay que definir la 3. R: = S;
composición de dos relaciones. Así, cuando tenemos dos relaciones binarias R1
4. S: = R o R;
y R2 sobre un mismo conjunto X, su composición corresponde a la construc-
5. hasta que S = R
ción de una nueva relación binaria también sobre X que se define como sigue:
6. retorna S

S(x,y) = max∀z∈Xmin(R1(x,z),R2(z,y)) 7. ffunción


© FUOC • PID_00200713 82 Aprendizaje

Por lo tanto, el algoritmo para construir esta relación será:


1. funcion composi-
cion (R1, R2: semejan-
Finalmente, debemos subrayar que este método de la clausura transitiva está zas) retorna semejan-
za es
relacionado con los métodos aglomerativos. Así, el algoritmo aglomerativo
es equivalente al de la clausura transitiva cuando tomamos como criterio de 2. para todo x ∈ X

agregación seleccionar los objetos más cercanos y como criterio para recalcular 3. para todo y ∈ X
las semejanzas el vínculo simple.
4. S(x,y) := 0;

5. para todo z ∈ X
Por lo tanto, en este caso, las técnicas difusas no ofrecen una generalización
de las técnicas nítidas. En cambio, tenemos una manera diferente de ver los 6. S(x,y) :=
max(S(x,y),
algoritmos de categorización aglomerativos.
min(R1(x,z),
R2(z,y)))

7. fpara

8. fpara

9. fpara

10. ffuncion

Lectura complementaria

Las relaciones entre el algo-


ritmo aglomerativo, el algo-
ritmo basado en la clausura
transitiva y el basado en el
grafo se pueden encontrar en
la sección 6.4 del libro:
S.�Miyamoto (1990). Fuzzy
sets in information retrieval
and cluster analysis. Dor-
drecht: Kluwer Academic Pu-
blishers.

(32)
Hay un tercer conjunto de métodos que están relacionados con estos dos mé- En inglés, minimum spanning
trees.
todos de categorización. Son los métodos para extraer componentes conecta-
dos de un grafo (conjunto de categorías derivadas de su árbol de expansión
mínima32.
© FUOC • PID_00200713 83 Aprendizaje

4. Aprendizaje supervisado

En este apartado vemos los métodos de aprendizaje supervisado. Por lo tanto,


pensemos que disponemos de un conjunto de ejemplos y para cada ejemplo
conocemos el valor de salida. Dado que sólo consideramos problemas de cla-
sificación, tendremos que la salida de los ejemplos es un valor categórico.

El apartado empieza viendo algunos métodos de aprendizaje que están basa-


dos en otros de categorización (como el C-Means); por lo tanto, relacionados
con lo que se ha visto en el apartado anterior. Después pasamos a ver las lla-
madas máquinas de vectores de soporte (tanto para clases linealmente separables
como para clases no linealmente separables). Estos métodos son especialmen-
te adecuados para problemas donde los objetos están descritos con datos nu-
méricos. A continuación veremos métodos más orientados a objetos descritos
con datos categóricos. Veremos los algoritmos para aprender descripciones ló-
gicas de conceptos y para aprender árboles de decisión. El apartado acaba con
métodos que combinan diversos métodos y con la descripción de los algorit-
mos basados en redes neuronales.

Notación

En este apartado utilizamos la misma notación que hemos utilizado en el apartado ante-
rior. Así, disponemos de un conjunto X de N objetos que denotamos por X = { x1, x2, ..., xN
} y cada objeto xi es evaluado en términos de los M atributos A = { A1, ..., AM }. Utilizamos
Ai(xj) para denotar el valor que toma el objeto xj para el atributo Ai, y A(xj) corresponderá
al vector (A1(xj), ..., AM(xj)). El dominio del atributo A lo denotamos por DOM(A). Cuando
el dominio de Ai es categórico, denotamos los términos por DOM(Ai) = { ai1, ai2, ..., aiR1 }.
Como ahora tratamos de aprendizaje supervisado, tenemos que conocer la clase de cada
objeto. Denotamos la clase a la que pertenece el objeto xi por g(xi). Más frecuentemente,
simplificamos g(xi) por gi.

4.1. Métodos basados en métodos de categorización

(33)
Los métodos que describimos a continuación se basan en el hecho de que el En inglés, nearest neighbour.
espacio donde se representan los objetos está dividido entre diversas catego-
rías. En el caso del vecino más cercano33, el primer algoritmo que vemos, los
mismos ejemplos definen estas categorías. En los otros dos algoritmos descri-
tos (el Learning Vector Quantization y el basado en el C-Means) construimos
las categorías con algoritmos de categorización.

En estos algoritmos es importante distinguir entre categorías y clases. Las clases


corresponden a los valores que puede tomar gi para los xi ∈ X. Las categorías
son, en cambio, construcciones a partir de los datos (mediante, por ejemplo,
los algoritmos del apartado anterior). Así, una clase y una categoría pueden
tener intersección nula, coincidencias parciales o ser exactamente iguales.
© FUOC • PID_00200713 84 Aprendizaje

4.1.1. Vecino más próximo

El método más sencillo de clasificación es el del vecino más próximo. En este


método, la clasificación está basada en el almacenamiento de un conjunto de
ejemplos. La clase de un objeto se determina a partir del objeto más próximo.

Así, si tenemos un conjunto de ejemplos X = { x1, x2, ..., xN }, entonces la


clasificación de un objeto x necesita encontrar el objeto xi de X que es más
próximo a x. Después se concluye que la clase de x coincide con la de xi, por
lo tanto, será gi.

Para implementar este método y determinar el objeto más próximo, necesita-


mos la definición de una distancia (o semejanza) entre los elementos del do-
minio. Cualquiera de las funciones que hemos visto en el subapartado 3.1.2
son adecuadas.

(34)
Una generalización de este método es el llamado de los k vecinos más próxi- En inglés, k-nearest neighbour
34
mos , donde en lugar de sólo tener en cuenta el objeto más próximo, se tie-
nen en cuenta los k objetos más próximos. Así, para determinar la clase de un
objeto x primero tenemos que seleccionar los k objetos más próximos. Des-
pués, para determinar la clase de x se aplica el criterio mayoritario. Es decir, la
clase de x se hace corresponder con la clase más frecuente entre los k objetos
seleccionados.

Si K son los k objetos de X más próximos, tenemos que la clase que


asociamos a x (y que denotamos como G(x)) es la clase que aparece de
manera más frecuente en los objetos de K.

4.1.2. Clasificación basada en el Vector Quantization

Este método (a menudo llamado Learning Vector Quantization) está basado en el


Vector Quantization (algoritmo de categorización explicado en el subapartado
3.2.3) teniendo en cuenta las clases a las cuales pertenecen los objetos. Así,
suponemos en la descripción del algoritmo que hay D clases y que el algoritmo
de categorización forma c categorías para cada clase. Eso corresponde a tener
c descripciones para cada clase. Por lo tanto, necesitamos c × D prototipos.
j
Denotamos con pk el k-ésimo prototipo de la clase Cj.

El algoritmo es similar al del Vector Quantization: se selecciona un ejemplo,


se localiza la neurona más próxima y se modifican los prototipos. Ahora, sin
embargo, se selecciona el prototipo más próximo de entre todos los que hay
en todas las categorías (c categorías) y clases (D clases). Este prototipo (el pro-
totipo (l, m) del algoritmo) corresponde a la l-ésima categoría (l-ésimo proto-
tipo) de la clase Cm. Una vez localizado el prototipo más próximo, la modifi-
cación depende de si la clase de este prototipo coincide o no con la del objeto
© FUOC • PID_00200713 85 Aprendizaje

que tratamos. Si el prototipo seleccionado pertenece a la misma clase que el


objeto xi, entonces acercamos su prototipo al objeto. Si, en cambio, el proto-
tipo seleccionado no pertenece a la misma clase que el objeto xi, entonces lo
alejamos del objeto.

En la modificación del prototipo interviene, igual que en el algoritmo de Vec-


tor Quantization, el factor de aprendizaje η.

Los detalles del algoritmo son los que mostramos a continuación:

1. algoritmo aprendizaje Vector Quantization es

2. para toda clasej de (clase1,..., claseD)

3. para todo prototipo pkj de (p1j,..., pcj)

4. inicializar pkj;

5. fpara

6. fpara

7. t := 0;

8. repetir

9. seleccionar un ejemplo xi del conjunto y gi su >clase

10. (l,m) := arg min1 ≤ k ≤ c, 1 ≤ j ≤ D ||xi – pkj||

11. si gi = m entonces plm := plm + η(t)[xi – plm]

12. si gi ≠ m entonces plm := plm - η(t)[xi – plm]

13. t:= t+ 1

14. hasta que converja

15. falgoritmo

Una vez hemos construido el modelo, podemos pasar a clasificar nuevos ob-
1. distMin := ∞;
jetos. La clasificación de los nuevos objetos se basa en determinar cuál es el
centroide más próximo. Una vez lo hemos encontrado, la clase del nuevo ob- 2. para j := 1, D

jeto coincidirá con la asignada al centroide más próximo. Así, tenemos que 3. para k := 1, c
j
calcular la semejanza para todo j = 1, D y k = 1, c entre los centroides pk y el
4. si d(x,pkj) < dist-
objeto que queremos clasificar x. Si pk
j
es el más próximo a x, entonces la clase Min entonces

que asignamos a x es cj. Eso es lo que se describe en el algoritmo siguiente: distMin := d(x,pkj);
sol := cj;

fsi;

5. fpara

6. fpara

7. retorna solo;
© FUOC • PID_00200713 86 Aprendizaje

4.1.3. Clasificación basada en el C-Means

Otro método de clasificación basado en técnicas de categorización utiliza el


algoritmo del C-Means que hemos visto en el subapartado 3.2.1. En este caso,
el esquema consiste en construir varias categorías para cada clase. Después
cada categoría permitirá clasificar unos cuantos objetos.

A continuación detallamos el método. Se infiere que el problema consiste en


construir un modelo para los objetos de X y que X contiene D clases diferentes.
Denotaremos las clases de D como { c1, c2, ..., cD }. Así, gi ∈ { c1, c2, ..., cD }
para todo xi de X.

1. Hacer una partición de X en D grupos donde todos los objetos de


cada grupo pertenecen a la misma clase. De este modo, definimos la
partición {X1, X2,..., XD} donde Xi = { xi| xi ∈ X y gi = ci }

2. para cada Xi de { X1, X2,..., XD } hacer

3. Aplicar el algoritmo de categorización C-Means a Xi

4. Asignar a cada categoría que hemos generado la etiqueta Ci

5. fpara

Recordamos que el algoritmo C-Means obtiene para cada categoría un cen-


troide (o prototipo) que corresponde a una descripción de la categoría. En el
subapartado 3.2.1 denotábamos el prototipo de la k-ésima categoría por pk.

Así, como el resultado de este algoritmo son c categorías para cada una de las
D clases del conjunto de ejemplos X, tendremos en total c × D centroides.
Denotamos, como en el apartado anterior, el k-ésimo centroide de la clase Cj
j
con la expresión: pk . De acuerdo con la asignación de las categorías que se ha
j
hecho en la línea cuatro del algoritmo de más arriba, está claro que pk tendrá
siempre asociada la clase Cj.

La clasificación de nuevos objetos sigue aquí el mismo esquema del método


basado en el Vector Quantization explicado más arriba.

4.2. Máquinas de vectores de soporte

(35)
Ahora estudiaremos métodos de clasificación basados en la estadística. En par- En inglés, support vector machi-
35 nes, SVM.
ticular, veremos las máquinas de vectores desoporte , que son herramientas
para clasificar objetos descritos mediante datos numéricos que consideran só-
lo la existencia de dos clases.
© FUOC • PID_00200713 87 Aprendizaje

M
Así tenemos que (DOM(A1) × ... × DOM(AM))) = R porque los valores son nu-
méricos y como sólo consideramos dos clases, que denotamos −1 y 1, y la clase
a la que pertenece el objeto xi se denota por gi, tendremos gi ∈ { −1, 1 }.

Empezamos con las máquinas lineales de vectores de soporte. Estos métodos


se basan en la construcción de un hiperplano en el espacio de los datos que
separa los objetos de las dos clases. Después consideraremos el caso de máqui-
nas no lineales donde la separación de los objetos no estará determinada por
un hiperplano sino por otras estructuras.

4.2.1. Máquinas lineales de vectores de soporte

Como se ha dicho, estos modelos clasifican los objetos basándose en la cons-


trucción de un hiperplano en el espacio de los datos, que separa los objetos
que pertenecen a una clase de los que pertenecen a la otra.

T
Si suponemos que tenemos el hiperplano { x: f(x) = x β + β0 = 0 } en el que b
es un vector unidad (es decir, con ||β|| = 1), entonces la expresión siguiente es
una regla de clasificación inducida por f(x):

T
G(x)= signo[f(x)] = signo[x β + β 0]

De hecho, en estas expresiones, cuando ||β|| = 1, f(x) corresponde a la distancia


(con el correspondiente signo) entre el punto x y el hiperplano. En general, si
||β|| ≠ 0, entonces la distancia entre el hiperplano f(x) y el punto es: f(x)/||β||

Veamos ahora cómo definiremos el hiperplano separador. Empecemos, prime-


ro, con el caso en el que es posible encontrar un hiperplano que separa los
objetos de las dos clases (las clases son linealmente separables). Después con-
sideraremos cuando eso no es posible y, por lo tanto, tenemos que buscar un
hiperplano que separe la mayoría de los objetos.

Cuando las�clases�son�linealmente�separables (es decir, cuando es posible Nota


encontrar un hiperplano que separe los objetos de las dos clases), la mejor regla
Las clases son linealmente se-
de clasificación corresponderá a encontrar el hiperplano que define un espacio parables cuando es posible en-
más amplio con los objetos. Este hiperplano se encuentra como solución del contrar un hiperplano que se-
pare los objetos de las dos cla-
problema siguiente: ses.

Notad que aquí, y por lo que hemos dicho antes que f(x) corresponde a la dis-
tancia con signo, el producto corresponde a una distancia siempre
positiva. La restricción de que este producto sea mayor que C, obliga a que
© FUOC • PID_00200713 88 Aprendizaje

las distancias entre los objetos y el hiperplano siempre sean mayores que C.
Por lo tanto, la construcción hace que C corresponda a la distancia entre el
hiperplano y el objeto más próximo.

Para resolver el problema, la elección de unos β y β 0 corresponde a


definir el hiperplano, y como se maximiza la distancia, tendremos el
hiperplano separador que se encuentra a más distancia de los objetos.

Si la expresión del hiperplano no está normalizada (tomamos β' y β' 0 para


denotar este caso), entonces, teniendo en cuenta la norma del vector β', la
desigualdad anterior se expresa como:

De hecho, se sabe que para todos β y β' que satisfagan esta desigualdad, cual-
quier múltiple positivo de las β y β' también la satisfacen (notad que si toma-
mos β'' = kβ' y β'' 0 = kβ' 0 entonces ||β''�|| = k||β||). Por lo tanto, podemos elegir
una ||β'|| arbitraria. Elegimos ||β|| = 1/C que nos permite redefinir el problema
como:

Ejemplo bidimensional de máquinas de vectores de soporte con clases


linealmente separables

A continuación mostraremos un ejemplo gráfico en dos dimensiones donde ilustraremos


los conceptos de hiperplano separador, margen y vectores de soporte. La figura 26 mues-
tra un conjunto de puntos pertenecientes a dos clases (cruces y círculos). Como se puede
ver, las clases son linealmente separables. En consecuencia, el problema se reduce a en-
contrar el hiperplano separador más adecuado. Notad que existen infinitos hiperplanos
que separan perfectamente estas dos clases. En la figura hemos dibujado unos cuantos,
pero ¿cuál sería el óptimo?

Intuitivamente, podríamos llegar a deducir que el mejor hiperplano separador podría ser
aquel que nos ofreciera unos mejores rendimientos de separación una vez nos lleguen
nuevos datos de ambas clases. Como no conocemos la distribución completa de todos
los ejemplos posibles que podemos encontrar de cada clase, podemos llegar a concluir
que el hiperplano que más nos interesa es aquel que nos deja más distancia entre cada
clase y el hiperplano separador. Coloquialmente, podríamos decir que queremos que la
separación esté “lo más en medio posible”.
© FUOC • PID_00200713 89 Aprendizaje

Figura 26. Conjunto de muestras de aprendizaje pertenecientes a dos clases. En


negro se muestran unos hiperplanos separadores candidatos a ser solución. En el
centro, el hiperplano elegido.

Con esta idea intuitiva, definiremos el concepto de margen como la distancia entre el
punto más cercano de cada clase y el hiperplano separador. A los objetos que están a
esta distancia del hiperplano los denominaremos puntos de apoyo. La figura 27 muestra
gráficamente el concepto de punto de apoyo y margen. Notad que los parámetros que
definen el hiperplano dependerán exclusivamente de estos puntos de apoyo, que son los
que en realidad determinan la frontera de separación.

Figura 27. Ejemplo de hiperplano separador, con los puntos de apoyo de cada clase
y el margen resultante

Cuando las clases�no�son�linealmente�separables: en este caso hay que te-


ner en cuenta el solapamiento entre clases. La idea es la misma, situar el hi-
perplano de manera que la distancia con los objetos próximos sea lo mayor
posible. Ahora, sin embargo, se deja que algunos puntos estén en el lado in-
correcto del hiperplano. Para permitir los errores en las posiciones de algunos
puntos se utilizan las variables de holganza (slack variables). Tenemos para ca-
da objeto una variable ξ1,..., ξN positiva o cero (las variables serán distintas de
cero para los objetos que no queden bien clasificados y con ξi mayor como
peor clasificados estén). Teniendo en cuenta estas variables, la restricción de
desigualdad se expresa ahora como:
© FUOC • PID_00200713 90 Aprendizaje

Esta condición se tiene que cumplir, como antes, para todo objeto i = 1, ..., N.
Además, se añaden restricciones sobre los valores de ξ: ∑i ξi ≤ Kξ. Esta última
condición acota el número de elementos que se pueden encontrar en el lado
incorrecto del hiperplano.

De acuerdo con eso, y siguiendo al modelo del caso sin solapamiento, tenemos
que, a partir de estas condiciones, el problema se puede formular como:

La solución define el hiperplano que separa mejor los elementos de las


dos clases. En esta formulación aparece un único parámetro Kξ que, co-
mo se ha dicho, corresponde a decir hasta qué punto los objetos pueden
violar la clasificación que construimos. En el caso de que el problema
sea separable, y no sea necesario aceptar ninguno, entonces definiremos
Kξ = 0.

El problema que hemos formulado se puede resolver con técnicas de investi-


gación operativa (como los métodos basados en conjuntos activos) porque es
un problema cuadrático de maximización sujeta a restricciones de desigualdad
lineales. En lugar de la formulación de más arriba, se considera el problema
equivalente siguiente que incorpora los errores ξi en la función objetivo (este
problema es el que llamamos primal):

La constante C es definida por el usuario y corresponde a una medida


de hasta qué punto se permite tener puntos mal clasificados. Cuanto
mayor es C, más se penalizan los puntos mal clasificados.

La resolución de este problema se hace mediante su dual (que es más fácil de


resolver porque no aparece ξi, y como también es cuadrático con restricciones
lineales se puede resolver con las mismas técnicas de investigación operativa:
© FUOC • PID_00200713 91 Aprendizaje

donde α = (α1, ..., αN ) son las variables del problema que corresponden a los
multiplicadores de Lagrange y la C es, como antes, un parámetro elegido por
el usuario.

(36)
Una vez resuelto el problema formulado en las ecuaciones 1 y 2, los multipli- En inglés, support vector.
cadores de Lagrange aportan información sobre los ejemplos y la relación con
el modelo. Así, tenemos que cuando αi > 0, el correspondiente punto xi se lla-
ma vector de soporte36. Hay dos tipos de vectores de soporte:

1) En un caso tenemos 0 <αi < C, que implica que el objeto xi satisface las
igualdades:

por lo tanto, el punto está sobre el hiperplano separador.

2) En el otro caso, αi = C, que implica que ξi no es nulo y que el objeto no


está bien clasificado. Es decir, no se cumple gi (xTiβ + β 0) ≥ 1. Estos ejemplos
corresponden a errores de clasificación.

Finalmente, tenemos los αi = 0, que corresponden a objetos que están bien


clasificados y lejos del punto de clasificación.

Una vez tenemos los valores para αi podemos construir la función de clasifi-
cación:

T
G(x) = signo[x β + β 0]

ya que podemos calcular β β 0. Para el primer término usaremos:

β = ∑i = 1, Nαi gi xi

Para encontrar b 0 tenemos que utilizar las condiciones llamadas de Ka-


rush-Kuhn-Tucker (KKT) sobre el problema primal del lagrangiano. En parti-
cular, debemos tomar una que dice:
© FUOC • PID_00200713 92 Aprendizaje

De aquí, para aquellos puntos con α > 0 de los cuales conocemos ξi, podemos
calcular β 0.

Sin embargo, ahora, como el resto de las condiciones KKT nos dicen que para Ved también
los αi < C tenemos ξi = 0, basta tomar algún punto con 0 < αi < C para calcular la
Notad que como gi es 1 o –1,
β 0 mediante la expresión anterior. Así, para alguno de estos puntos y haciendo podemos sustituir 1/gi por gi
ξi = 0 obtenemos: en la expresión anterior.

De hecho, en lugar de utilizar una única xi para calcular β 0 es mejor (numé-


ricamente más estable) utilizar la media de todos los puntos xi con 0 <αi < C
(los puntos con ξi = 0 corresponden a objetos bien clasificados):

4.2.2. Máquinas no lineales de vectores de soporte

De hecho, la consideración de expresiones no lineales para clasificar los ele- Ved también
mentos se puede ver de manera alternativa como la transformación del espa-
En el subapartado anterior he-
cio de los datos original (un espacio M dimensional, dado que consideramos mos visto el caso en el que la
M atributos numéricos) en un nuevo espacio diferente y mayor, y en la sepa- clasificación de los elementos
en dos clases se consigue me-
ración lineal de los elementos en este nuevo espacio. Así, de hecho, lo que diante un hiperplano (una rec-
ta en el caso de ejemplos con
pensamos es que tenemos una función Φ que a partir de unos valores en RM dimensión 2). A continuación,
consideramos la clasificación
retorna valores en un espacio H diferente. en dos clases cuando la sepa-
ración de los dos elementos no
es lineal.
Por lo tanto, lo que haremos para tratar los problemas no lineales es cons-
truir una función de clasificación G que clasifique linealmente en el espacio
H cuando hayamos traído los objetos de X.

T
G(x) = signo[Φ(x ) · β + β0]

La construcción de esta función de clasificación está basada en la forma de la


ecuación 1. En esta ecuación aparece el producto escalar de los vectores xi y xj.
Así, si consideramos el problema del lagrangiano dual, vemos que de hecho
lo que interesa es el producto de los vectores, más que los vectores originales.
Por lo tanto, no necesitamos conocer realmente la transformación del vector
en el espacio H (y, por lo tanto, no tenemos que conocer ni Φ(xi) ni Φ(xj) que
son vectores de gran dimensión), sino solamente el producto escalar de estos
valores (un valor numérico).
© FUOC • PID_00200713 93 Aprendizaje

El hecho de necesitar sólo el producto escalar de Φ(xi) y Φ(xj) nos permite


considerar espacios H de dimensión muy grande. En particular H puede ser
un espacio de dimensión infinita. La función producto Φ(xi) · Φ(xj) se conoce
como función de núcleo (kernel) y se denota por K:

K(xi, xj) = Φ(xi) · Φ(xj)

Un ejemplo de este tipo es la función:

K(xi, xj)= e–||xi – xj||2/2σ2

Otro ejemplo es:

d
K(xi, xj) = (1 + xi · xj)

Así, podemos considerar la solución del problema en el espacio H, y la resolu-


ción de este problema nos dará, como antes, un conjunto de parámetros α. De
hecho, el problema dual que resolvemos es:

y las soluciones nos llevarán, por lo tanto, a:

β = [∑i =1, N ai gi Φ(xi)]

T
β0 = ∑i: 0 <ai <C [gi − Φ(xi) β] / |{αi: 0 < αi <C}|

Sin embargo, si consideramos la función de clasificación G(x), vemos que to-


davía tenemos un aspecto pendiente porque en G(x) sí que aparece Φ(x):

T
G(x) = signo[Φ(x ) · β + β0]

Pero como para la evaluación de esta expresión hemos de tener el producto


entre Φ(x)yβ, tenemos que sustituyendo β por la expresión correspondiente
obtenemos:

T T
G(x) = signo[Φ(x ) ∑i=1,N αigiΦ(xi)] + β0] = signo[[∑i=1,N αigiΦ(x ) · Φ(xi)] + β0]

Como vemos aquí, en la expresión aparece el producto escalar de vectores. Por


lo tanto, podemos volver a tomar la función K:

G(x) = signo[[∑i=1, N αi giK(xi, x)] + β0]

Así, para calcular la función de clasificación tampoco necesitamos la función


Φ y nos basta con las funciones K.
© FUOC • PID_00200713 94 Aprendizaje

Ejemplo bidimensional de máquinas no lineales de vectores de soporte (37)


Esta operación es conocida po-
pularmente como el Kernel trick, en
A menudo los objetos de cada clase presentan una distribución altamente no lineal, sien- inglés.
do imposible su apropiada separación incluso cuando consideramos variables de slack.
En estos casos conviene utilizar las extensiones no lineales de las máquinas de vectores de
soporte. A continuación mostraremos un ejemplo bidimensional donde proyectaremos
los datos de un espacio 2D (donde no son linealmente separables), a un espacio de alta
dimensionalidad (donde son perfectamente separables mediante un hiperplano). En el
proceso haremos uso de una función núcleo (kernel) gaussiano:

La figura 28 muestra gráficamente el ejemplo donde tenemos dos clases. Notad que una
de ellas sigue una distribución circular. Para resolver el problema, no nos ha hecho falta
calcular (ni siquiera conocer) las coordenadas de los puntos en el espacio de dimensio-
nalidad superior. Basta con considerar su producto escalar37.

Figura 28. Ejemplo de datos no linealmente separables.

Para aprender el hiperplano separador, se ha usado un núcleo gaussiano, con un pará-


metro sigma = 1 y una tolerancia C = 1. Otros valores de estos parámetros pueden dar
resultados completamente diferentes.

4.2.3. Aplicaciones y extensiones de las SVM

Actualmente, las SVM se aplican a muchos problemas de clasificación dife- Ejemplo


rentes. Algunos de los problemas tratados son el reconocimiento de patrones.
Por ejemplo, por reconoci-
También se han utilizado en problemas de series temporales. Como describe miento de dígitos escritos a
C.J.C Burges, en muchos de estos casos la capacidad de generalización es igual mano, reconocimiento del ha-
blante o detección de caras en
o mejor que la de otros métodos. imágenes.

Los buenos resultados que se han conseguido con estos modelos explican por Lectura complementaria
qué actualmente son muy utilizados y, además, se estudian extensiones de
C.�J.�C.�Burges (1998). "A tu-
éstos. Por ejemplo, hay modelos que utilizan la lógica difusa. torial on support vector ma-
chines for pattern recogni-
tion". Data Mining and know-
4.3. Descripciones lógicas de conceptos ledge discovery (núm. 2, pág.
121-167).

Como su nombre indica, el aprendizaje de descripciones lógicas de conceptos


pretende dar una expresión que especifique en qué condiciones un ejemplo
corresponde a un determinado concepto.
© FUOC • PID_00200713 95 Aprendizaje

Estos algoritmos parten de un conjunto de ejemplos positivos (ejemplos que


corresponden al ejemplo que queremos describir) y de un conjunto de ejem-
plos negativos (ejemplos que no corresponden al concepto), y a partir de éstos
se construyen descripciones lógicas en forma conjuntiva que sólo satisfacen
los ejemplos positivos.

Siguiendo con la notación utilizada hasta ahora, podemos describir el proble-


ma como la construcción de expresiones a partir de los ejemplos X = { x1, x2, ...,
xN } evaluados en términos de los atributos A = { A1, ..., AM } si consideramos
que tenemos dos clases que denotamos con "+" y "−" (por lo tanto, gi ∈ {+, −}).
Evidentemente, utilizaremos "+" para denotar los ejemplos que corresponden
al concepto y "−" para denotar los que no. Las descripciones que construiremos
son conjunciones lógicas de valores posibles para los atributos. Por lo tanto,
tienen la forma:

(A1(x) ∈ CA1) ^ (A2(x) ∈ CA2) ^ ... ^ (AM(x) ∈ CAM)

donde CAi corresponde a un conjunto de valores del dominio del atributo Ai.
Por lo tanto, CAi ⊆ DOM(Ai). Así, de acuerdo con esta descripción, si un objeto
x tiene un valor para el atributo A1 que está en CA1, y un valor para el atributo
A2 que está en CA2, etc., tendremos que el ejemplo es un caso particular (es
una instancia) del concepto que describimos.

En la figura 29 consideramos la representación gráfica de un caso con dos


atributos A1 y A2, el primero con un dominio DOM(A1) = { a, b, c, d, e, f } y
el segundo con DOM(A2) = { α, β,γ, δ, ε }. La descripción considerada en la
figura es: (A1(x) ∈{d, e}) ^ (A2(x)∈{ α, β }) que corresponde a decir que si A1 es
o bien "d" o bien "e" y A2 es o bien "α" o bien "β", entonces tenemos un caso
del concepto descrito. Se puede observar en la figura que las descripciones de
esta forma corresponden a hiperrectángulos.

Figura 29. Representación gráfica de la descripción lógica (A1(x) ∈ { d, e }) ^ (A2(x) ∈ { α, β })


© FUOC • PID_00200713 96 Aprendizaje

Hay varios métodos para el aprendizaje de las descripciones lógicas. A conti-


nuación, distinguimos entre aquellos que van de general a particular y los que
van de particular a general. Aquí los términos general y particular corresponden
a cuando una expresión lógica es más general/particular que otra. Así, A es
más general que B cuando B implica A, o cuando el conjunto de objetos que
satisfacen A es mayor que el conjunto de objetos que satisfacen B.

Es importante recordar que, en este sentido, las expresiones lógicas, en


general, no definen un orden total, porque si tenemos dos expresiones
B y C más generales que A, a veces ni B es más general que C, ni C más
general que B. Por ejemplo, éste es el caso de las expresiones B = A1(x)
∈ { d, e, f } ^ A2(x) ∈ { α,β } y C = A1(x) ∈ { d, e } ^ A2(x) ∈ { α, β, γ }. Las
dos son más generales que A = A1(x) ∈ {d, e} ^ A2(x) ∈ { α, β }, pero hay
elementos de B que no son de C y hay elementos de C que no son de B.
Esto provoca que, con una expresión determinada, a veces, se puedan
considerar diversas generalizaciones (y particularizaciones), ya que no
es posible elegir una en relación con el orden.

Ahora pasemos a detallar las dos familias de métodos:

• Métodos�de�general�a�particular: empiezan con una descripción general


(que todo ejemplo satisface) y a partir de los ejemplos negativos se va res-
tringiendo la descripción para que no los englobe (por ejemplo, si toma-
mos la descripción de más arriba, podemos cambiar Ai(x) = d o e por Ai(x)
= d, que es más concreta porque sólo se permite un valor en lugar de dos).
El sistema Induce de Michalski (Michalski, 1980) es un caso de método
general a particular.

• Métodos de particular a general: consideran desde el principio una des-


cripción lo más concreta posible (en particular, consideran un ejemplo co-
mo el más concreto), y a partir de aquí, en cada paso, se intenta generali-
zar una descripción sacando o generalizando una de las condiciones de la
descripción (por ejemplo, si tomamos la descripción de más arriba, pode-
mos cambiar la condición Ai(x) = d o e, por la condición Ai(x) = d o e o f;
o sacando Ai(x) de la expresión).

A continuación, describimos un método incremental que utiliza una búsque-


da bidireccional (utiliza búsqueda de general a particular y de particular a ge-
neral). El algoritmo llamado espacio de versiones considera dos conjuntos de
descripciones, una con descripciones más generales (denotamos este conjunto
por G) y una con más específicas (denotamos este conjunto por S). La figura 30
representa gráficamente estos dos conjuntos, también incluye ejemplos posi-
tivos (representados por "+") y ejemplos negativos (representados por "−").
© FUOC • PID_00200713 97 Aprendizaje

Figura 30. Conjuntos S y G en el espacio de versiones

La idea que está detrás del algoritmo es considerar en todo momento un espa-
cio en el cual no sabemos si habrá ejemplos positivos o ejemplos negativos. A
medida que conocemos nuevos ejemplos, tanto si son positivos como negati-
vos, este espacio se va reduciendo. En este esquema, G es el límite superior del
espacio (el más general) y S es el límite inferior del espacio (el específico). La
inicialización del espacio corresponde a considerar que todo es desconocido.
Por lo tanto, tenemos que G engloba todo el espacio y S está vacío. De acuerdo
con eso, la descripción correspondiente a G será de la manera siguiente:

A1(x) ∈ DOM(A1) ^ ... ^ AM ∈ DOM(AM)

que cualquier ejemplo satisface. La descripción correspondiente a S está vacía.

A1(x) ∈ ∅ ^ ... ^ AM ∈ ∅

así que no engloba ningún ejemplo.

De hecho, el algoritmo no considera una única descripción para G (ni para


S), sino que considera un conjunto de descripciones. En cada paso se modi-
fican las descripciones de acuerdo con los ejemplos restringiendo el espacio.
Todas las descripciones de G y de S son en todo momento consistentes con
los ejemplos vistos.

El esquema que sigue el algoritmo es tomar los ejemplos de uno en uno. Cuan-
do es positivo, miramos si hay alguna descripción de S que no lo cubra. Si eso
pasa, eliminamos esta descripción de S e incorporamos a S una o más genera-
lizaciones que cubran el ejemplo. Este caso se muestra en la figura 31.
© FUOC • PID_00200713 98 Aprendizaje

Figura 31. Conjuntos S y G en el espacio de versiones

La figura muestra la modificación del espacio S (lo muestra como si en S sólo


hubiera una descripción) a fin de que sea más general y cubra el nuevo ejemplo
positivo.

En cambio, cuando es negativo, miramos si hay alguna descripción de G que


lo cubra. Si eso pasa, tenemos que eliminar la descripción y añadir una más
específica. La figura 32 muestra una modificación de G a fin de que sea más
específica y no cubra el ejemplo negativo.

Figura 32. Modificación de S y G de acuerdo con la llegada de un nuevo ejemplo positivo o negativo

4.4. Árboles de decisión

La construcción de árboles de decisión se basa en la definición de jerarquías


de conceptos, siguiendo lo que se ha descrito en el subapartado 4.3. Ahora,
sin embargo, la construcción de la jerarquía está dirigida a la clasificación.

Por lo tanto, los algoritmos construyen un árbol donde para cada nodo tene-
mos un concepto. Además, en cada hoja tenemos asociada una clase. En la
figura 33 se da un fragmento de árbol de decisión para la tabla del subaparta-
do 3.1.1 de algunas poblaciones. Entonces, cuando nos llega un objeto para
clasificar, repasamos el árbol desde el nodo raíz hasta un nodo hoja que, me-
© FUOC • PID_00200713 99 Aprendizaje

diante la clase asociada, nos dirá a qué clase pertenece el objeto. El proceso
para llegar a la hoja es recursivo y consiste, dado un nodo, en seleccionar el
nodo (la categoría) hijo al que pertenece el objeto, desestimando los otros.
Así, cuando recibamos una nueva población, por ejemplo Palma de Mallorca,
que no tiene metro y tiene una densidad alta, encontraremos que el árbol de
la figura 33 concluye (después de preguntar por el campo "metro" y por el de
"densidad") que no tiene industria = vino.

Figura 33. Árbol de decisión para determinar si una población tiene como industria el vino
© FUOC • PID_00200713 100 Aprendizaje

De acuerdo con esto, el algoritmo para determinar la clase tendrá la forma


0. Algoritmo determi-
siguiente: na-clase (nodo) es

1. si hoja(nodo)
Ahora veremos cómo se construye la jerarquía. Como hay diversas maneras entonces retorna
de hacerlo, empezaremos presentando un algoritmo general. Después concre- clase(nodo)

taremos los elementos que quedan pendientes. 2. sino

3. selecciona hijo n
En las descripciones, si no se indica lo contrario, consideramos objetos descri- de nodo
tos únicamente con atributos nominales o ordinales.
4. fsi

5. retorna determi-
1. algoritmo construye-jerarquía (nodo, conjunto-de-instancias) es na-clase (n)

2. si vacío(conjunto-de-instancias) retorna vacío fsi 6. falgoritmo

3. si ∀ instancia ∈ conjunto-de-instancia, g(instancia)= k entonces

4. el nodo es terminal y con la clase g(instancia)

5. sino

6. genera particiones P del conjunto-de-instancias

7. para cada partición p de P

8. evalúa p; si mejor (p, pmejor) entonces pmejor := p

9. fpara

10. para cada conjunto c de p

11. descripción := descripción formal de c

12. conj-de-inst-de-c := instancias de conjunto- de-instancias que


satisfacen descripción

13. n := nodo asociado a (c, descripción)

14. hacer de n un nodo hijo de nodo

15. construye-jerarquía (n, conj-d-inst-de-c)

16. fpara

17. fsi

18. falgoritmo

A continuación detallamos los elementos que hay que fijar: la generación de


particiones y la selección de la mejor partición. Empecemos con las definicio-
nes de algunos de los métodos, y más tarde comentaremos diversas alternati-
vas.

1)�Construcción�de�las�particiones: si tenemos un nodo, consideramos los


diferentes atributos, y cada partición consiste en considerar los diferentes va-
lores de éstos. Así, si tenemos un atributo Ai con DOM(Ai) = { ai1, ai2, ..., aiRi }
tendremos que la partición contiene Ri grupos y que cada grupo está formado
© FUOC • PID_00200713 101 Aprendizaje

con todos los objetos que tienen un mismo valor. Por ejemplo, para el atributo
Ai tendremos Ri particiones: pj = { xk | Ai(xk) = aij } para j = 1, ..., Ri. Además, si
tenemos M atributos A = { A1, ..., AM } tendremos M particiones posibles.

2)�Selección�de�la�mejor�partición: el objetivo es construir la partición que


discrimina más entre las clases. Una posibilidad es utilizar la expresión siguien-
te (aquí imaginamos que tratamos el atributo Aj ):

j j
medida = (1/N)∑v ∈ DOM(Aj) C v

donde N es el número de objetos (instancias) que tenemos, v son los valores


j
del atributo, y c v son los objetos que quedan bien clasificados cuando selec-
cionamos como clase la que aparece de manera más frecuente en el grupo. Es
decir (utilizamos gi para denotar la clase asociada a xi):

j
C v = |{ xi: xi ∈ X, Aj (xi) = v, gi = la clase más frecuente para los ejemplos con
valor v }|

j
La medida medida tiene como máximo 1 (el atributo es perfectamente discri-
minante) y mínimo 0 (el atributo no discrimina nada).

j
La selección tomará el atributo Aj con una medida máxima.

De acuerdo con esta construcción, si tenemos que el atributo seleccionado es


el atributo j-ésimo y que el dominio de este atributo es DOM(Aj) = { aj1, aj2, ...,
ajRj }, entonces tendremos que el subárbol que se genera con esta iteración es
el de la figura 34.

Figura 34. Desarrollo del árbol para el atributo nominal Aj

4.4.1. Variaciones sobre árboles de decisión

Ahora pasamos a considerar algunas de las alternativas que hay sobre árboles
de decisión.

1) Sobre la descripción de la categoría: cuando utilizamos la selección descrita


más arriba, la descripción en cada rama del árbol se basa en el valor del atribu-
to. Así, en cada nodo tenemos asociada una nueva comparación de la forma:
si Aj (xi) = v. En estos casos, el recorrido desde el nodo raíz hasta un nodo de-
© FUOC • PID_00200713 102 Aprendizaje

terminado corresponde a una secuencia de comparaciones de la forma Aj (xi) =


v ? Por lo tanto, podemos ver un nodo hoja, y la correspondiente clasificación
de un objeto, como una descripción conjuntiva:

Si Aa(xi) = va ^ Ab(xi) = vb ^ Ac(xi) = vc .... entonces clase

Hay maneras alternativas de construir las descripciones de las categorías. Una


es tomar las instancias asociadas a un nodo, y construir una descripción lógica
considerando estas instancias como ejemplos positivos, y las instancias no
asociadas al nodo como ejemplos negativos.

Ved también
Para construir la descripción se consideran algoritmos de inducción de
conceptos, que normalmente construyen descripciones conjuntivas. Es- Hemos visto los algoritmos de
indicación en el subapartado
tos algoritmos, sin embargo, pueden provocar que una nueva instancia 4.3 de este módulo.
no pertenezca a ninguno de los hijos de un nodo dado y, por lo tanto,
no se pueda clasificar.

2) Otros tipos de particiones: en lugar de tener que cada hijo de un nodo con-
tiene un único valor, cada hijo contiene conjuntos de valores. Sin embargo,
considerar todos los conjuntos de valores para un atributo tiene un alto cos-
te computacional. Por ejemplo, para un atributo con cuatro valores, tenemos
que considerar las quince alternativas siguientes: {{a, b, c, d}}, {{a, b, c}, {d}}, {{a,
b, d}, {c}}, {{a, c, d}, {b}}, {{b, c, d}, {a}}, {{a, b},{c, d}}, {{a, c}, {b, d}}, {{a, d}, {b, c}},
{{a, b}, {c}, {d}}, {{a, c}, {b}, {d}}, {{a, d}, {b}, {c}}, {{b, c}, {a}, {d}}, {{b, d}, {a}, {c}}, {{c,
d}, {a}, {b}}, {{a}, {b}, {c}, {d}}. En el caso del atributo "densidad" de la tabla del
apartado 2.1.1, tendríamos que considerar, por ejemplo, {{MB}, {B}, {M}, {A},
{MA}}, {{MB, B}, {M}, {A}, {MA}}, {{MB}, {B}}, {{M}, {A}, {MA}}, etc. Evidentemente,
estas alternativas son considerando un único atributo.

En cada paso del algoritmo, tendremos que considerar todas las alternativas de
todos los atributos. Así, la selección es exponencial en cada paso en el número
medio de valores. Notad que en el esquema presentado inicialmente donde
cada nodo tiene tantos hijos como valores tiene el atributo, el coste es, en
cambio, constante, porque los hijos son fijos. Por lo tanto, las particiones con-
sideradas son tantas como los atributos (y en particular, tantas como atributos
quedan, ya que, como en cada paso se selecciona uno que ya no se vuelve a
considerar, el número de atributos va disminuyendo a lo largo de la ejecución
del algoritmo).

Un esquema alternativo a todos los conjuntos de valores y que tiene un coste


computacional más bajo es considerar árboles binarios, tomando un valor de
un atributo y su negado. Con eso tenemos que para cada atributo sólo con-
sideramos tantos conjuntos como valores. Para el caso anterior del atributo
© FUOC • PID_00200713 103 Aprendizaje

con cuatro valores, consideraríamos: {{a}, {b, c, d}}, {{b} ,{a, c, d}}, {{c}, {a, b, d}},
{{d}, {a, b, c}}. El coste computacional de esta opción será el producto entre el
número de atributos y el número medio de valores por atributo.

3) La consideración de atributos numéricos: el esquema presentado era para


atributos nominales u ordinales. Para tratar valores numéricos, se construyen
nodos con un valor de corte de manera que se parten los objetos entre los que
están por debajo y los que están por encima de un determinado valor. Para
considerar las diferentes particiones, se ordenan los valores que aparecen en
los objetos de forma creciente, y para cada par de valores sucesivos vi y vi + 1
se consideran los valores de corte (vi + vi + 1)/2. Entonces, para cada atributo
numérico hay tantas particiones posibles como objetos hay, menos uno (o
menos, si hay valores v repetidos).

Si consideramos el atributo numérico superficie de la tabla del subapartado


3.1.1 y ordenamos los valores posibles, obtenemos los valores y los puntos de
corte de la tabla siguiente.

Valores 10,8 18,7 45,8 53,5 58,3 62,5 94,9 97,6 114,6 117,2 134,6

Puntos de cor- 14,75 32,25 49,65 55,9 60,4 78,7 96,25 106,1 115,9 125,9 *
te

Puntos de corte para el atributo superficie de la tabla del subapartado 2.1.1

4) Algoritmos incrementales: el algoritmo general que se ha definido repre-


senta que en todo momento disponemos de todos los objetos y la evaluación
de la mejor partición tiene en cuenta toda la información disponible. Hay al-
goritmos alternativos que no consideran todos los objetos a la vez, sino que
van construyendo el árbol a medida que van llegando objetos, y que en de-
terminadas situaciones reestructuran el árbol (lo revisan). Estos algoritmos se
llaman incrementales.
© FUOC • PID_00200713 104 Aprendizaje

1. algoritmo revisión (nodo, xi) es

2. encontrado := false

3. para cada hijo C del nodo

4. si xi ∈ C entonces

5. encontrado := true

6. si gi = clase(C) entonces

7. modificar la descripción de C de acuerdo con xi

8. revisión(C,xi) // para revisar los hijos del nodo

9. sino // gi ≠ clase(C) y tenemos que expandir la jerarquía

10. nodo-hijo := creamos un hijo de nodo

11. descripción del nodo-hijo en base descripción de C y xi

12. nodo-nieto := creamos nuevo nodo hijo de nodo-hijo


basado en xi

13. C es hijo de nodo-hijo (en lugar de hijo de nodo)

14. fsi

15. fsi

16. fpara

17. si encontrado = falso // xi no pertenece a ningún hijo

18. creamos un nodo-hijo2 de nodo basado en xi

19. fsi

20. falgoritmo

El algoritmo se aplica infiriendo que ya tenemos un árbol y que se aplica a


un objeto. Entonces, lo primero que hacemos es mirar si el objeto cae en la
descripción de alguno de los hijos del nodo raíz. Si no es así, creamos un nuevo
hijo del árbol y nos basamos en el objeto (líneas 17 y 18). Cuando el objeto
cae en la descripción de uno de los hijos, tenemos que ver la clase asociada
al hijo. Si coinciden, sólo hace falta modificar la descripción de la clase para
tener constancia del objeto y propagar la revisión hacia los hijos del nodo
actual. Si, en cambio, la clase del objeto no coincide con la clase asociada al
hijo, tenemos que modificar la estructura. El procedimiento consiste en crear
un nuevo hijo del nodo y utilizar el objeto (y la descripción original) para darle
una descripción. Este nuevo nodo tendrá dos hijos:

a) el nodo hijo original, con el cual había divergencia con las clases, y

b) un nodo con el objeto que ha causado el problema. La figura 35 representa


gráficamente esta reestructuración del árbol.
© FUOC • PID_00200713 105 Aprendizaje

Figura 35. Representación gráfica de las modificaciones

4.5. Combinación de métodos

Mientras que en los subapartados precedentes hemos considerado los diferen-


tes métodos de aprendizaje de manera independiente, actualmente se tiende
a combinarlos porque unos métodos permiten solucionar las dificultades de
los otros.

Podemos distinguir dos tipos de combinaciones:

• Los conjuntos de clasificadores: corresponde a la construcción de un nue-


vo clasificador a partir de la combinación de varios clasificadores. Por
ejemplo, clasificadores generados mediante distintos conjuntos de entre-
namiento.

• Los sistemas de aprendizaje multiestratégico: corresponden a sistemas que


combinan métodos diferentes para obtener una descripción mejor (un me-
jor modelo). Los diferentes métodos, a diferencia de lo que pasa en el caso
de los conjuntos de clasificadores, no tienen la misma función, sino que
cada uno hace una tarea. Así, para resolver un problema, puede ser nece-
saria la combinación de los métodos. Michalski lo describe así:

"A general underlying idea of Multistrategy task-adaptive learning (MTL) is that a lear-
ning system should by itself determine the learning strategy, i.e., the types of inferen-
ce to be employed and/or the representational paradigm that is most suitable for the
given learning task. As introduced in the Inferential Learning Theory, a learning task is
defined by three components: what information is provided to the learner (i.e., input
to the learning process), what the learner already knows that is relevant to the input
(i.e., background knowledge (BK)), and what the learner wants to learn (i.e., the goal or
goals of learning). Given an input, an MTL system analyzes its relationship to BK and
the learning goals and on the basis determines a learning strategy or a combination of
them. If an impasse occurs, a new learning task is assumed, and the learning strategy is
determined accordingly."

R. S. Michalski (1993). "Inferential Theory of Learning as a Conceptual Basis for Multis-


trategy Learning". Machine Learning (núm. 11, pág. 111-151).

En este subapartado nos centramos en los conjuntos de clasificadores.


© FUOC • PID_00200713 106 Aprendizaje

4.5.1. Conjuntos de clasificadores

El esquema de un sistema formado por conjuntos de clasificadores es el de


la figura 36. Es decir, un conjunto de clasificadores (cinco en esta figura, y
denotados por M1, ..., M5) cada uno de las cuales calcula su conclusión para
una determinada entrada x. Una vez se conocen las conclusiones de los clasi-
ficadores, el sistema incluye un módulo para combinarlas todas y tomar una
decisión final (M(x) en la figura) que corresponde a la salida global del sistema
para la entrada x.

Figura 36. Esquema de un conjunto de clasificadores

Es importante subrayar que aunque se hable de conjunto de clasificadores, Lectura complementaria


este proceso también se aplica a problemas de regresión. Por ejemplo, se ha
Una descripción del método
estudiado el conjunto de redes neuronales. que combina redes neurona-
les está en:
M.�P.�Perrone;�L.�N.
Cooperm (1993). When net-
Los conjuntos de clasificadores se utilizan para reducir el error que está works disagree: ensemble met-
asociado a los clasificadores cuando se utilizan de manera individual. hods for hybrid neuronal net-
works. En: Neuronal networks
Se ha comprobado que combinar más de uno ofrece mejores resultados, for speech and image processing
(ed. R. J. Mammone). Nueva
aunque los clasificadores se hayan construido con las mismas técnicas. York: Chapman and Hall.

La idea es que si tenemos, por ejemplo, cinco clasificadores, podemos tener


uno o dos que fallan. Si la mayoría da el resultado correcto, entonces el sistema
en conjunto puede funcionar. Eso es suponiendo que la manera de escoger la
clase asociada a un objeto es seleccionar la más frecuente.

Para la construcción de los diferentes clasificadores se utilizan diversas técni-


cas. A continuación comentamos estos casos:
© FUOC • PID_00200713 107 Aprendizaje

1) Construcción de los diferentes conjuntos de ejemplos: dado que los méto-


dos construyen modelos basados en los ejemplos, conjuntos de ejemplos di-
ferentes generan clasificadores diferentes. Por lo tanto, para generar los clasi-
ficadores podemos generar diversos conjuntos de entrenamiento a partir de
un único conjunto de ejemplos. Entre las maneras de generar los ejemplos
podemos distinguir:

• Bagging: para cada ejecución del algoritmo de aprendizaje extraemos r


ejemplos de manera aleatoria (con sustitución) del conjunto de ejemplos
original.

• Cross validated committees: se construyen X1, ..., Xs subconjuntos disjuntos


de los datos de manera aleatoria, y después se construyen s clasificadores
donde el i-ésimo clasificador utiliza X1 ∪ ... ∪ Xi-1 ∪ Xi+1 ∪ ... ∪ Xs como
conjunto de entrenamiento.

• El método utilizado por Adaboost: para cada ejecución del algoritmo es-
cogemos r ejemplos de manera aleatoria entre los del conjunto original.
La elección se hace de acuerdo con una distribución de probabilidad sobre
el conjunto de ejemplos que se modifica en cada paso. Así, los ejemplos
mal clasificados aumentan la probabilidad.

2) Manipulación de las características de entrada: corresponde a manipulacio-


nes sobre las variables o, en general, de las descripciones de los objetos. Un
ejemplo de este caso lo encontramos cuando diferentes sistemas utilizan dife-
rentes conjuntos de variables. De todos modos, hay que decir que este proce-
dimiento no siempre funciona correctamente. Si las variables no están corre-
lacionadas, los clasificadores pueden no tener toda la información necesaria
para seleccionar correctamente la clase y, por lo tanto, el conjunto de clasifi-
cadores no funciona correctamente.

Una vez tenemos los diferentes conjuntos de entrenamiento C1, C2,.., Cs apli-
camos el método de aprendizaje a estos conjuntos y obtenemos s modelos Mc1,
Mc2,..., MCs. A partir de estos modelos, cuando tenemos una nueva entrada x
tenemos que determinar la salida. La salida del modelo MC que combina todos
los métodos será una combinación (mediante una función C) de los valores
que retorna cada uno de los modelos Mc1, Mc2,..., M Cs para el ejemplo x. Así,
podemos expresar MC(x) como:

MC(x) = C(MC1(x), MC2(x), ..., M Cs(x))

Para calcular la combinación de los modelos, hasta ahora se han utilizado


diferentes funciones de combinación C. Las más sencillas son las siguientes:
© FUOC • PID_00200713 108 Aprendizaje

• En el caso de problemas de regresión: como los valores MCi(x) son numé-


ricos, podemos definir C como la media de los valores MCi(x). Es decir:

MC(x) = ∑iMCi(x)/s

• En el caso de problemas de clasificación: se selecciona la clase que aparece


más a menudo entre los MCi(x).

En este apartado veremos en profundidad cuatro de las técnicas más utilizadas


dentro del ámbito de la combinación de clasificadores: el boosting, el bagging,
los random subspace methods, y el stacked learning.

4.5.2. Algoritmos basados en boosting

Los algoritmos de boosting se basan en combinar un conjunto de clasificadores Bibliografía


que se han entrenado teniendo en cuenta diferentes subconjuntos de mues-
Artículo inicial donde se pre-
tras de entrenamiento. Existen varias maneras de elegir estas muestras, en fun- sentó el AdaBoost:
ción del algoritmo concreto utilizado. En este apartado veremos el algoritmo Y.�Freund;�R.�E.�Schapire
(1995). “A Decision-Theore-
llamado AdaBoost. tic Generalization of on-line
Learning and an Application
tono Boosting”. Computation
El nombre AdaBoost proviene de la contracción de las palabras adaptive boos- Learning Theory (núm. 23-37).
ting, y describe un procedimiento que permite construir, de manera incremen- Springer.
Además en
tal, un sistema de clasificadores y un vector de pesos que sirven para combinar www.boosting.org se pueden
estos clasificadores. encontrar todas las publica-
ciones relacionadas, así como
diferentes implementaciones
en la mayor parte de los len-
El AdaBoost parte de un conjunto de N muestras x1 donde x = x1, x2, ..., xN, con
guajes de programación ac-
atributos o características A =A1, A2, ..., AM por muestra, y una etiqueta asociada tuales.

a cada muestra Li∈{L1, L2}. Por cada muestra i-ésima mantiene un peso Wi que
codifica “la importancia” de la muestra en el conjunto de entrenamiento.

Al principio el algoritmo inicializa el vector de pesos al mismo valor (normal-


mente 1/N). Este vector mantiene actualizada la función de densidad de pro-
babilidades de cada punto.

A continuación el algoritmo realiza un conjunto de T pasos, donde a cada paso


aprende un clasificador débil sobre los datos, teniendo en cuenta que el error
cometido en los ejemplos más importantes pesa más que el error cometido
en los menos importantes. Los datos de entrenamiento se clasifican según el
clasificador actual, y los ejemplos mal clasificados ven incrementado su peso.
El algoritmo sigue el mismo proceso iterativo, de forma que cada vez se van
focalizando los ejemplos más “complicados”. El resultado final es una combi-
nación lineal de los clasificadores generados a cada paso. A continuación se
muestra el algoritmo al completo:
© FUOC • PID_00200713 109 Aprendizaje

El algoritmo del Adaboost se puede implementar de múltiples maneras, de- Ved también
pendiendo de la forma en que los pesos intervienen en la selección del clasi-
Con anterioridad hemos trata-
ficador, y especialmente en función del clasificador débil que se elija. En este do el problema de la clasifica-
apartado hemos visto el Adaboost básico, pero hay gran cantidad de variantes ción de máximo margen en el
apartado dedicado a las má-
publicadas, donde se usan clasificadores débiles más complejos, y reglas de quinas de vectores de sopor-
te, donde se buscaba el hiper-
actualización de los pesos que permiten maximizar otros criterios, como por plano que define un espacio
lo más ancho posible entre los
ejemplo la diversidad o el margen de clasificación. objetos de diferentes clases.
© FUOC • PID_00200713 110 Aprendizaje

Una vez visto el método genérico de combinación de clasificadores débiles (en- Bibliografía
semble), nos falta definir qué entendemos propiamente por clasificador débil.
Para ampliar conocimientos
Según Schapire (uno de los creadores del Adaboost), un clasificador se consi- sobre la teoría de ensembles
dera débil si tiene un rendimiento en términos de clasificación estrictamente podéis ver:
L.I.�Kuncheva;�C.J.�Whi-
superior al 0,5 (más de un 50% de ejemplos muy clasificados), siendo siempre taker (2003). “Measures of
inferior al 1 (un clasificador débil que acierta todos los ejemplos no requiere diversity in classifier en-
sembles”. Machine Learning
ninguna combinación). Hay muchas hipótesis planteadas sobre qué naturale- (núm. 51, pág. 181-207).
za tienen que tener los clasificadores débiles, a pesar de que actualmente parece
que hay un consenso bastante aceptado que indica que los clasificadores que
mejor rinden en la combinación final son aquellos que tienen unos porcen-
tajes de acierto más bajos por separado (cercanos al 0,5), siendo la diversidad
entre clasificadores el criterio básico, al mismo tiempo que obtener ensembles
robustos. Este continúa siendo actualmente un campo activo de búsqueda en
el aprendizaje automático.

Por otro lado, los creadores del AdaBoost han publicado un resultado teórico
que permite acotar el error de entrenamiento, que se rige por la fórmula:

Cómo se puede ver, si el error de cada clasificador débil se diferente a 0,5,


cuando T se hace grande el error global se hace pequeño (siendo 1 en el su-
puesto de que todos los t son exactamente 0,5). Existen otros resultados que
acoten el error de test, pero quedan fuera del alcance de esta materiales.

A continuación veremos una simulación de algunos de los pasos de ejecución


del algoritmo Adaboost.

Ejemplo

Por simplicidad hemos escogido un clasificador débil basado en umbral. Es decir, el cla-
sificador elige una característica de los datos de entrenamiento y selecciona el umbral
que minimiza el error en aquella característica. Se asigna clase 1 a la muestra si la carac-
terística es mayor que el umbral (y 0 cuando no lo es). Observad que este clasificador
nos dará siempre un porcentaje de clasificación superior al 50%; en caso contrario, sólo
tenemos que dar la vuelta al umbral.

Partimos del conjunto de datos que se muestran en la figura 37:


© FUOC • PID_00200713 111 Aprendizaje

Figura 37. Ejemplos de entrenamiento pertenecientes a dos clases

A continuación realizaremos un paso del algoritmo, y marcaremos en color azul claro la


región que el Adaboost nos daría actualmente como clase cruz (siendo la región blanca
como clase punto).

Figura 38. Resultado de la primera iteración del algoritmo AdaBoost

Como se puede observar, el algoritmo ha puesto un umbral en la primera coordenada,


siendo clase punto todo lo que está a la derecha del valor 25 (eje X). Con este primer
paso, conseguimos clasificar correctamente todos los puntos rojos, y la parte inicial de
las cruces azules.

Para ilustrar el funcionamiento del método, hemos añadido un círculo negro a los pun-
tos que tienen un peso alto en esta iteración (con un historial largo de clasificación in-
correcta).
© FUOC • PID_00200713 112 Aprendizaje

Figura 39. Resultado de la siguiente iteración del algoritmo AdaBoost

En esta iteración, el algoritmo ha generado un nuevo clasificador débil focalizado en los


puntos de la derecha, que tenían un peso muy alto. La combinación de las dos reglas de
clasificación sencillas nos da una frontera no lineal que sigue acertando todos los puntos
rojos, y falla en los puntos centrales. Observad que es en este espacio donde localizamos
ahora las regiones de máximo peso en las que focalizar el clasificador siguiente.

Figura 40. Resultado de la tercera iteración del algoritmo AdaBoost

En esta última iteración el clasificador débil ha elegido la segunda característica (eje Y)


para poner el umbral. Con la unión de los tres clasificadores débiles la región de perti-
nencia se vuelve más no lineal y engloba ya los puntos de la parte inferior.
© FUOC • PID_00200713 113 Aprendizaje

Figura 41. Resultado de la cuarta iteración del algoritmo AdaBoost

En esta última iteración, el clasificador débil se ha focalizado en los puntos de la región


superior. Notad que el error de entrenamiento todavía no es cero, puesto que el último
clasificador ha empeorado puntos que anteriormente estaban bien clasificados. Este es
un caso frecuente en el entrenamiento del Adaboost, que requiere de más iteraciones
para encontrar una frontera de separación con mínimo error de entrenamiento.

Si continuamos iterando el algoritmo, llegaremos a una solución final como la que se


muestra a continuación:

Figura 42. Resultado de realizar 20 iteraciones del algoritmo AdaBoost

La combinación de clasificadores simples (biparticiones del espacio) permite generar


fronteras de decisión altamente no lineales, de forma iterativa y con un coste compu-
tacional bajo, convirtiéndose en uno de los clasificadores más utilizados del estado del
arte.
© FUOC • PID_00200713 114 Aprendizaje

4.5.3. Algoritmos basados en bagging

Los algoritmos basados en bagging dividen el conjunto de entrenamiento en Bagging


T subconjuntos de muestras y aprenden un clasificador en cada uno de estos
El término bagging es una con-
subconjuntos. A diferencia del boosting, donde los clasificadores se construyen tracción de bootstrapaggre-
de forma secuencial, en el bagging los clasificadores se construyen de forma gating y, tal como indica su
nombre, es una simple agre-
paralela y no hay pesos asociados a las muestras. Cada clasificador se genera gación de clasificadores entre-
nados sobre diferentes réplicas
de forma independiente de los otros y no se centra cada iteración en los ele- del conjunto de entrenamien-
to.
mentos más difíciles de clasificar de las anteriores iteraciones.

Como siempre, partiremos de un conjunto de N muestras X, donde X = {x1, Bibliografía


x2, ..., xN}, con atributos o características A =A1, A2, ..., AM y una etiqueta aso-
Los algoritmos de bagging se
ciada a cada muestra Li ∈{L1, L2}. El algoritmo base construye T subconjuntos atribuyen a Leo Breiman, que
fueron introducidos en el tra-
de muestras de forma aleatoria y entrena un clasificador débil Mt en cada sub- bajo:
conjunto. La clasificación de una nueva muestra se hace aplicando cada uno L.�Breiman (1996). “Bagging
predictors”. Machine Lear-
de los T clasificadores al ejemplo y tomando la decisión final siguiendo una ning (vol. 2, núm. 24, pág.
regla de agregación sobre los resultados de los T clasificadores. Normalmente, 123-140).

se usa una regla sencilla de votación por mayoría, a pesar de que, si tenemos
clasificadores parciales que generan una determinada probabilidad, podemos
establecer criterios probabilísticos más complejos. El algoritmo completo se
muestra a continuación:

Los algoritmos de bagging, a pesar de ser menos sofisticados que los de boos-
ting, son especialmente recomendables cuando el conjunto de entrenamiento
contiene muestras mal etiquetadas (outliers). Si en medio de la nube de puntos
de una clase tenemos una muestra errónea, esta afectará sólo a algunos de los
clasificadores (aquellos donde aparezca en el correspondiente sampling), sien-
do neutra para la mayor parte de clasificadores parciales.

Ejemplo

Para ilustrar el funcionamiento usaremos un problema sintético, donde tendremos los


siguientes conjuntos de entrenamiento y test:
© FUOC • PID_00200713 115 Aprendizaje

Figura 43. Muestras del conjunto de entrenamiento

Figura 44. Muestras del conjunto de test, donde se han marcado los ejemplos mal
clasificados en la clase de los puntos

Para realizar la clasificación, usaremos el algoritmo del vecino más cercano. Por cada
muestra de test, buscaremos en el conjunto de entrenamiento cuál es la muestra más
cercana y asignaremos a la muestra de test la etiqueta de este vecino más cercano.

Observad que el conjunto de entrenamiento es linealmente separable si no fuera por la


presencia de algunos ejemplos probablemente mal etiquetados. Este tipo de muestras a
menudo hacen bajar considerablemente el rendimiento del vecino más cercano. Hemos
pintado con un círculo negro aquellos ejemplos que estarían mal clasificados en este
conjunto de test.

El objetivo es, pues, aplicar técnicas de bagging que permitan hacer una combinación de
clasificadores que aísle estos outliers y elimine su influencia. Aplicaremos un total de 100
iteraciones, que realizarán 100 muestreos aleatorios del conjunto de entrenamiento. A
continuación mostramos algunos de estos conjuntos:
© FUOC • PID_00200713 116 Aprendizaje

Figura 45. Muestras de entrenamiento seleccionadas aleatoriamente en 4 iteraciones del algoritmo.

Observad que la presencia de outliers se ve repartida en cada iteración, siendo muy difícil
que una muestra mal etiquetada haga “equivocar” a la mayoría de los clasificadores.

Para completar el análisis, hemos calculado la precisión acumulada teniendo en cuenta


el número de iteraciones. Como era de esperar, el error decrece a medida que incremen-
tamos el número de clasificadores parciales, hasta llegar a eliminar completamente el
efecto de los outliers.

Figura 46. Porcentaje de acierto en función del número de clasificadores


parciales.

4.5.4. Algoritmos random subspace methods

En el caso de los random subspace methods (RSM), partimos de un enfoque si-


milar al bagging, pero en este caso los subconjuntos de datos no se hacen so-
bre el espacio de las muestras, sino en el espacio de sus atributos. Partiendo
de un conjunto de N muestras X, donde X = {x1, x2, ..., xN}, con atributos o
características A =A1, A2, ..., AM y una etiqueta asociada a cada muestra Li ∈{L1,
L2}, generaremos T subconjuntos diferentes donde en cada subconjunto pon-
dremos todos los ejemplos, con la particularidad de que eliminaremos aleato-
riamente algunos de sus atributos. La selección de los atributos será diferente
en cada iteración, obteniendo T clasificadores parciales que se han entrenado
en diferentes subespacios de las muestras originales. El algoritmo completo se
detalla a continuación:
© FUOC • PID_00200713 117 Aprendizaje

Los RSM son útiles en problemas donde hay pocas muestras y estas se encuen-
tran integradas en un espacio de alta dimensionalidad, o bien en problemas
de alta dimensionalidad donde hay mucha redundancia en los atributos o ca-
racterísticas.

4.5.5. Algoritmos de stacked learning

Los algoritmos basados en stacked learning, a diferencia de los RSM, amplían


el conjunto de características o atributos a la hora de entrenar el conjunto
de clasificadores que formarán el ensemble, teniendo en cuenta las decisiones
tomadas por los clasificadores anteriores.

Cada clasificador débil genera una decisión sobre la etiqueta de cada muestra
y esta etiqueta es concatenada o apilada (stacked) a continuación de los datos,
llegando a ser un atributo más. Los detalles del algoritmo los podemos encon-
trar a continuación:
© FUOC • PID_00200713 118 Aprendizaje

El modelo de aprendizaje mostrado es lo más simple posible. Los sistemas de Bibliografía


stacked learning han tenido múltiples aplicaciones a problemas de aprendizaje
Para más detalles, podéis ver
sobre datos secuenciales y modelos gráficos. los trabajos:
D.�H.�Wolpert (1992). “Stac-
ked Genralization”. Neu-
4.5.6. Ensembles de clasificadores: Conclusiones ral Networks (vol. 5, pág.
241-259).
W.�W.�Cohen;�V.�R.�Car-
En este apartado no hemos estudiado un clasificador en sí, sino que hemos
valho (2005). “Stacked Se-
visto cómo la combinación de múltiples clasificadores que se complementan quential Learning”. Interna-
tional Joint Conference don-
permite solucionar problemas muy complejos. En función de la aplicación, de Artificial Intelligence (pág.
nos tendremos que plantear utilizar un modelo u otro. Esta decisión dependerá 671-676).

necesariamente del clasificador base utilizado y de la estructura de los datos.

4.6. Redes neuronales

Las redes�neuronales se pueden ver como un sistema de representación


del conocimiento inspirado en las redes de neuronas que se encuentran
en los seres vivos. Este modelo biológico ha influido en la terminología
y en la manera de definir las operaciones.

Así, tenemos, por ejemplo, términos como neuronas y "umbral de activación"


de una neurona.

Una red neuronal se representa mediante un grafo en el que los nodos son Redes no supervisadas
unidades de computación (neuronas) y los arcos representan flujos de infor-
Existen redes, como el Self Or-
mación entre las unidades (conexiones entre neuronas). Los arcos tienen aso- ganizing Maps de T. Kohonen,
ciados pesos que representan el grado de conexión/influencia entre dos neu- en las que no se dan parejas,
sino sólo un conjunto de obje-
ronas y las neuronas tienen asociadas funciones que se denominan funciones tos y la red los relaciona. Se di-
ce que estas redes son no su-
de activación que indican en qué medida se propaga una inferencia hacia la pervisadas porque no se da el
resultado.
salida. Esta estructura se utiliza para construir aproximaciones de funciones.
Esto es, para un conjunto de pares (xi, yi) se define una arquitectura de red y
© FUOC • PID_00200713 119 Aprendizaje

una asignación de pesos a las conexiones entre unidades de manera que cuan-
do se aplica la red al elemento xk, el resultado de la red (lo representaremos
por XN(xk)) es parecido a yk.

Generalmente, tanto la entrada como la salida son vectores. En la figura 47


a se da un ejemplo de red con un vector de entrada de dimensión N y uno
de salida de dimensión M. Para operar, cada unidad toma los valores que hay
asociados en sus entradas y, teniendo en cuenta los pesos, los propaga hacia
la salida. Así, si tenemos una unidad como la de la figura 47 b donde pi son
los pesos asociados a las conexiones, xi son las entradas y f(x) es una función
asociada a la neurona (a esta función se la denomina función de activación)
tenemos que la salida de la neurona es:

f(p1x1 + p2x2 + p3x3 + p4x4)

A veces, las neuronas, además de estar influenciadas por las entradas tienen un
valor que sesga el resultado. Utilizaremos θ para representar este valor. En la
figura 47 c se da una neurona con sesgo. En este caso la salida se calcula como:

f(p1x1 + p2x2 + p3x3 + p4x4 + θ)

Desde el punto de vista de un usuario, lo único que es observable de una red


es el resultado de la aplicación a unas entradas. No resulta posible consultar
los pesos.

Figura 47

La consideración de este modelo biológico hace que el sistema de representa-


ción difiera profundamente de los que se han visto hasta ahora. En los méto-
dos vistos, el conocimiento aparecía representado de manera explícita y en
alguna posición de la memoria del programa podíamos encontrar los símbolos
correspondientes a este conocimiento.
© FUOC • PID_00200713 120 Aprendizaje

En el caso de la red neuronal, el conocimiento no es representado de manera


explícita, sino que está implícito en la estructura de la red (representado en
los pesos de las conexiones). Es más, está repartido en toda la estructura de
la red y no en un peso concreto. Esto provoca que no sea posible determinar
dónde hay un determinado símbolo. La ausencia de símbolos genera que en
ocasiones se diga modelo subsimbólico de las redes neuronales.

Además de ser vistas como mecanismo de representación del conocimiento,


las redes neuronales también se pueden considerar como un método de apren-
dizaje. De hecho, lo que hace la red es aproximar la función definida por los
pares (xp, yp). Esto es, aprende el modelo a partir de unos ejemplos (cada par
(xp, yp) es un ejemplo). El aprendizaje consiste en aprender los pesos y aprender
los sesgos que van bien para aproximar los ejemplos.

En este sentido, un resultado muy importante para construir aplicacio-


nes que utilicen como forma de representación las redes es el de Cy-
benko (1989) que afirma que las redes neuronales son aproximadores
universales.

Esto significa que si tenemos una función φ real continúa en el cubo unidad
N N
de R (φ: [0,1] → [0,1]), entonces para todo ε existe una red neuronal XN (del
tipo de retropropagación con una única capa oculta) que satisface:

sup|φ(x)–XN(x)|<ε

con una red de N entradas, una capa oculta donde las funciones de activación
son sigmoides f(x) = 1/(1 + e-x) y una única neurona de salida que tiene como
función de activación la función lineal φ(x) = x.

Aunque este teorema es sólo de existencia (y por lo tanto no dice nada sobre
la dimensión en la capa oculta) es importante porque significa que siempre
podremos encontrar una red que resulte lo suficientemente precisa.

(38)
En la actualidad, se consideran muchas estructuras diferentes para redes neu- En inglés, backpropagation.
ronales y existen distintos mecanismos para determinar los pesos de una red.
A continuación se presenta el algoritmo de retropropagación38.

4.6.1. Una arquitectura y un algoritmo de aprendizaje: el


método de retropropagación

El método de retropropagación construye en un proceso iterativo una red que


aproxima un conjunto de ejemplos.
© FUOC • PID_00200713 121 Aprendizaje

Figura 48

En cada paso, se toma un ejemplo y se modifican los pesos de la red de ma-


nera que la salida que calcula la red para el ejemplo dado se parezca más a la
salida del ejemplo. El proceso de modificación de la red se realiza en dos fases,
propagación y adaptación:

1) La fase�de�propagación corresponde a tomar el patrón de entrada y pro-


pagar su valor hacia la salida. Una vez calculado el valor, se compara con la
respuesta que querríamos para el sistema y se calcula un error.

2) En la fase�de�adaptación los pesos se modifican sobre la base del error. Se


dice que la modificación de los pesos se realiza a partir de la propagación hacia
atrás del error (de aquí el nombre de retropropagación). La modificación del
error se basa en el gradiente.

(39)
Como se ha dicho, este proceso de dos pasos se realiza para cada uno de los En inglés, epoch.
ejemplos de los que se dispone, y efectuando tantas veces los ejemplos como
es necesario para que el error (la divergencia entre lo que esperamos y lo que
da realmente) sea suficientemente pequeño. A una iteración para el conjunto
de todos los ejemplos se le denomina época39.

Cuando se consigue un error adecuado, la red tiene una representación inter-


na que le permite generar las salidas a partir de las entradas aprendidas. En-
tonces la red se podrá aplicar a otros vectores de entrada que no sean los de
los ejemplos.
© FUOC • PID_00200713 122 Aprendizaje

Describimos a continuación un paso del método de retropropagación consi- Las conexiones de


derando una red formada únicamente de tres niveles de neuronas, y donde las retroalimentación

conexiones sólo son permitidas entre un nivel y el siguiente. No se permiten, Una conexión de retroalimen-
así, ni conexiones de retroalimentación, ni conexiones que salten niveles. La tación se da cuando la salida
de una neurona se utiliza co-
estructura de la red que utilizaremos es la de la figura 48. mo entrada en un nivel ante-
rior. De esta manera, la red se
ve afectada por los cálculos
previos. La figura 47 a presen-
La red tiene un primer nivel con las neuronas de entrada. Como los ejemplos ta retroalimentación.
los suponemos de dimensión N(N variables o valores), este nivel contará con
N neuronas. El segundo nivel está formado por L neuronas. Al ser un nivel
intermedio en el que no se reciben variables del exterior ni tampoco se dan
resultados, le denominaremos nivel oculto. Este nivel recibirá las conexiones
con el nivel de entrada (recibirá las entradas) y propagará los resultados al
tercer nivel. Este último nivel, que es el de salida, está formado por M neuronas.
Las neuronas de este nivel recibirán como entradas las salidas del nivel oculto
y los resultados corresponden ya a la salida de la red.

Para describir el algoritmo, utilizaremos la notación dada a continuación. Su-


pondremos que tomamos un ejemplo cualquiera que denotamos como un par
(x, y) donde x, la entrada, es un vector de dimensión N y la salida y es un vector
de dimensión M. Las componentes del vector correspondiente al ejemplo son
x = (x1,..., xi,..., xN). Así, xi es la i-ésima componente del vector de entrada x.
De manera parecida (y1,..., yM) son las componentes del vector de salida y.

Por lo que respecta al nivel oculto, tendremos que los pesos de las conexiones
h h
entre este nivel y el anterior se denotarán p ji (1 ≤ j ≤ L, 1 ≤ i ≤ N). p ji es el peso
de la conexión entre la i-ésima neurona del nivel 1 y la j-ésima neurona del
h
nivel 2. Utilizaremos θ j para referirnos al sesgo de la j-ésima neurona de nivel
h h h
2. acc j será la acumulación de todas las entradas de la neurona y f j(acc j) será la
h
salida. Aquí f j es la función de activación de la j-ésima neurona. Utilizaremos
también sj para denotar esta expresión. Por lo tanto:

0
En el nivel de salida se utiliza una notación parecida. p kj serán los pesos entre
la neurona j del nivel oculto y la k del último nivel. θ0k será el sesgo. Lo acu-
mulado de este nivel es acc0k y la salida f0k(acc0k). De manera similar a antes,
f0k es la función de activación de la neurona k-ésima. 0k se utilizará también
para denotar esta expresión. Por lo tanto,
© FUOC • PID_00200713 123 Aprendizaje

Como se ha dicho, este método se basa en dos fases: propagación y adaptación.


La propagación consistirá en calcular ok para todas las k = {1..., M}. Esto lo
podemos realizar calculando primero las sj para todas las j = {1..., L} y después
las ok para todas las k = {1..., M}. Una vez tenemos las ok pasamos a la segunda
fase.

En la fase de adaptación, hemos de comparar la salida de la red con la sali-


da deseada y modificar los pesos de acuerdo con la diferencia (el error). Para
determinar el error utilizamos la suma de los cuadrados de los errores de las
unidades de salida. Así, tendremos la expresión siguiente:

2
E = (1/2)∑k = 1, M(yk – ok)

Ahora, hemos de determinar la cantidad con la que modificaremos los pesos.


Se debe tener en cuenta que para ir hacia un error mínimo hemos de mover
los pesos en el sentido contrario del gradiente. Así, si denotamos el gradiente
con ∇E debemos realizar una modificación hacia −∇E.

Ejemplo de aplicación de los desplazamientos para minimizar una función

A continuación presentamos un ejemplo para clarificar el proceso explicado. Podéis com-


probar que si tenemos la expresión por minimizar x2 (que tiene como mínimo absoluto
x = 0) y ahora tenemos como aproximación un valor x ≠ 0, entonces para acercarnos un
poco a más hacia el mínimo podemos calcular una nueva aproximación x* = x − ∇. Esto
es así porque tenemos que ∂x2/∂x = 2x y, por lo tanto, cuando tenemos una x < 0, −∇ será
positivo y, consecuentemente, x* > x. En cambio, si x > 0 entonces −∇ será negativo y,
por lo tanto, x* < 0. En los dos casos la modificación x* = x − ∇ llevará el mínimo hacia el
cero. De hecho, en lugar de hacer x* = x − ∇, haremos x* = x − η∇ con η un valor arbitrario
pero pequeño para que la modificación de la x sea pequeña para cada ejemplo y además
no nos pasemos (o no lo hagamos mucho) hacia el otro lado del mínimo. Es decir, que
si x era positivo, no nos encontremos que ahora x* es negativo o que si x era negativo
ahora resulte que x* es positivo. La figura siguiente ilustra este caso.

Figura 49

Para determinar la cantidad que se debe modificar cada peso, hemos de calcu-
lar el gradiente correspondiente a cada peso. Empezamos por el gradiente de
los pesos que conectan el nivel oculto con la salida (los pesos p0kj). Derivamos:
© FUOC • PID_00200713 124 Aprendizaje

respecto de p0kj, teniendo en cuenta que ok = f0k(∑j = 1,Lp0kj j + θ0k). Como el


s

peso p0kj sólo se encuentra en ok la derivada de E es la derivada de (1/2)(yk −


ok)2 por lo tanto,

0
Así pues, definimos el incremento de p kj como:

0
Una vez determinada la modificación de los pesos p kj pasamos a la de los pesos

entre el nivel de entrada y el oculto. El primer paso es obtener una expresión de


error en la que aparezca la dependencia con los pesos que queremos modificar.
Esto lo conseguimos sustituyendo ok por la expresión equivalente ok = f0k(∑j =
0
1, Lp kjsj + θ0k) en la expresión del error. Obtenemos:

Como sj es el resultado de la capa oculta, tenemos que sj es función de los pesos


h h
p ji. Por lo tanto, podemos derivar el error respecto de los pesos p ji. Notad que
en esta expresión sólo sj es función de los pesos. Por lo tanto,

h h h
donde, como sj = f j(∑i = 1, Np jixi + θ j), entonces

h h
Sustituyendo ∂sj/∂p ji en ∂E/∂p ji obtenemos:

Recordamos ahora que acc j = ∑i = 1,Np jixi + θ j y acc k = ∑j = 1,Lp0kjsj + θ k. Por


h h h o o

h
lo tanto, ∂E/∂p ji se puede expresar como:

h
Así, definimos el incremento del peso Δp ji como:
© FUOC • PID_00200713 125 Aprendizaje

h' h
Como f j(acc j)xi no depende de k, podemos sacar esto fuera del sumatorio:

Así, dados los pesos en la iteración t, los pesos de la iteración siguiente serán:

Se puede ver aquí que la modificación de los pesos de la capa oculta depende
de todos los términos de error en la capa de salida. Por ello se dice que los
errores se propagan hacia atrás, y el método se denomina de retropropagación.

En este esquema que hemos presentado aquí, existen algunos aspectos que se
han dejado de lado. Los consideramos a continuación:

a)�El�factor�de�aprendizaje: se utiliza normalmente un valor pequeño alrede-


dor de 0,15. Este valor afectará al comportamiento de la red y la convergencia.
A veces, se define este factor como variable en función del tiempo.

b)�La�medida�de�la�red: con la arquitectura que hemos elegido sólo queda


libre el número de neuronas en el nivel intermedio. La dimensión de los otros
dos niveles depende de los ejemplos. La elección de la dimensión corresponde
a un compromiso entre la convergencia (cuanto más haya, será más fácil que
la red aproxime los ejemplos) y la velocidad de procesamiento (cuanto menos
haya, más rápida será la ejecución),

h
c)�Las�funciones�f0k�i�f j: para el algoritmo que hemos presentado necesitare-
mos una función que sea derivable. Podemos utilizar en este caso la función
sigmoide f(x) = 1/(1 + e-x) o la función identidad f(x) = x. La primera tiene
como derivada f'(x) = e-x/(1 + e-x)2 = f(x)(1 − f(x)). La segunda tiene derivada
constante f'(x) = 1.
© FUOC • PID_00200713 126 Aprendizaje

4.6.2. Análisis de las redes neuronales

Las redes neuronales vistas como formalismo de representación del co-


nocimiento presentan la ventaja en relación con los otros formalismos
vistos de que no es necesario disponer de un modelo analítico de lo que
se quiere representar. A partir de un conjunto de ejemplos, mediante
el aprendizaje, se construye el modelo. Además, el hecho de saber que
son aproximadores universales nos asegura que podemos construir un
modelo suficientemente preciso a partir de los datos.

Así, las redes aproximarán los ejemplos a partir de los cuales se ha construido.
Además, aparte de aproximarlos, también los pueden generalizar. Esto permite
aplicar las redes a situaciones que no corresponden exactamente a las aprendi-
das. Esta construcción de un modelo general a partir de ejemplos provoca que
los sistemas sean tolerantes a errores en la entrada de los datos (variaciones
pequeñas en las entradas a causa de un error no hacen variar mucho la salida).

Por otra parte, la propia estructura de la red permite realizar implementaciones


paralelas de las arquitecturas. De hecho, es un paralelismo masivo porque to-
das las neuronas de un nivel se pueden activar a la vez. Esto permite construir
chips específicos, con lo que se puede aplicar el modelo a gran velocidad.

También a causa de la arquitectura, tenemos que el conocimiento no aparece


concentrado en una parte del sistema, sino que éste se encuentra repartido
por toda la red. Esto confiere una gran robustez a las redes. Si algunas de las
neuronas no funciona bien, el sistema no deja de funcionar sino que sólo
decae su rendimiento.

De todos modos, el hecho de tener el conocimiento repartido por toda la red Las redes neuronales
constituye también una desventaja porque los pesos no son interpretables. difusas

Por lo que no podemos saber qué es lo que hay representado en una red. Son, Para poder interpretar mejor
lo que se dice, un modelo de caja negra. Esto dificulta la definición inicial una red y también para inicia-
lizarla utilizando conocimien-
del modelo (no permite introducir conocimiento a priori) y las modificaciones to a priori, se pueden utilizar
las redes neuronales difusas. En
posteriores una vez la red ya se ha construido (no permite incluir nuevo co- estas redes las neuronas corres-
ponden a operaciones de lógi-
nocimiento).
ca difusa, y la red en conjunto
corresponde aproximadamen-
te a un conjunto de reglas di-
Por otra parte, los teoremas de representación aseguran que las redes son apro- fusas.
ximadores universales, pero no nos dicen cómo se deben construir estos apro-
ximadores universales. Para construir el modelo, debemos elegir la arquitectu-
ra (qué neuronas hay y cómo se encuentran conectadas) y sus parámetros (en
la red que hemos presentado son el número de neuronas en la capa oculta, los
parámetros de aprendizaje η y las funciones). Estas elecciones resultan muy
© FUOC • PID_00200713 127 Aprendizaje

importantes porque nos determinarán el modelo que construimos, y una mala


elección nos puede provocar una convergencia lenta y hacia un mínimo local.
Sin embargo, no existen métodos para estimar los parámetros.

Ocasionalmente, para construir la arquitectura se utilizan los algoritmos ge-


néticos. En este caso, las poblaciones son redes con diferentes arquitecturas.
Para cada arquitectura se construye un modelo y, siguiendo el esquema de
funcionamiento de los algoritmos genéticos, las mejores de cada población se
utilizan para construir una nueva.
© FUOC • PID_00200713 128 Aprendizaje

5. Representación del conocimiento y aprendizaje

(40)
En los métodos de aprendizaje considerados en los apartados de aprendizaje En inglés, knowledge modelling.
supervisado y no supervisado no hemos considerado en ningún momento la
existencia de conocimiento sobre el dominio de la aplicación. Así, en todos
los métodos que hemos visto, el algoritmo parte de un conjunto de ejemplos
(por el cual se conoce la clase o no se conoce), y a partir de estos ejemplos
se construye un modelo. Además, los métodos vistos se han considerado de
manera independiente a los sistemas basados en el conocimiento. Así, lo que
hemos visto corresponde a métodos para el proceso de modelización del co-
40
nocimiento más que a técnicas para incrementar la eficiencia del sistema.

Hay métodos de aprendizaje que a la hora de aprender representan (o necesi-


tan) la existencia de un conocimiento previo a partir del cual se construye un
nuevo modelo más complejo. Hay otros métodos que se han diseñado para
operar en un sistema basado en el conocimiento con el fin de incrementar la
eficiencia.

(41)
El campo de la programación lógica inductiva41 estudia métodos que pertene- En inglés, inductive logic pro-
gramming, ILP.
cen a la primera familia. Los sistemas de razonamiento basado en casos y los
macrooperadores caen en la segunda familia. También caen en este segundo
grupo las arquitecturas integradas. A continuación repasaremos brevemente
estos últimos sistemas y en el subapartado 4.1 introduciremos la programa-
ción lógica inductiva.

• Sistemas de razonamiento basado en casos (SBC): un SBC construye una Ved también
solución a partir de un conjunto de casos que están en la base de casos.
Podéis ver el apartado "Siste-
El sistema selecciona aquél o aquéllos más relevantes para el problema en mas de razonamiento basado
curso (utilizando a menudo conocimiento de dominio) y adaptándolo, si en casos" de la asignatura Inte-
ligencia artificial.
es necesario (utilizando conocimiento, por ejemplo, en forma de reglas).
Así, el aprendizaje en estos sistemas utiliza tanto el conocimiento sobre el
dominio (para determinar qué casos son relevantes para resolver un pro-
blema o cómo adaptar un caso almacenado) como los casos de la base de
casos.

• Macrooperadores: la formación de macrooperadores (también llamado Ved también


aprendizaje basado en explicaciones) corresponde a definir nuevos operado-
La modelización de un sistema
res a partir de otros más simples. Aquí un operador corresponde a una ac- y su entorno se hizo en el mó-
ción de las que puede hacer el sistema para pasar de un estado a otro. Los dulo "Resolución de problemas
y búsqueda" de Inteligencia ar-
operadores modelizan el comportamiento del sistema. tificial.
© FUOC • PID_00200713 129 Aprendizaje

Una vez un sistema construye un plano para resolver un problema a partir


del conocimiento relacionado con su entorno, sus aptitudes y utilizando
los algoritmos de búsqueda, este plano se puede almacenar a fin de que
en una nueva situación no se tenga que recalcular. Así, a partir de este
momento el sistema podrá utilizar el plano como si fuera un operador más
del sistema y, por lo tanto, cuando esté en una situación parecida el tiempo
de respuesta del sistema será menor.
Recordemos que los macrooperadores corresponden a un caso de aprendi-
zaje deductivo porque aquí no hay incorporación de nuevo conocimiento,
sino únicamente de reelaboración (el plano que incorporamos como nue-
vo operador ya se puede construir a partir del conocimiento que tenemos).

Así, en los dos casos tenemos que el aprendizaje va ligado al conocimiento y


que los métodos de aprendizaje respectivos se incorporan a los sistemas que
se basan en el conocimiento con el fin de aumentar el rendimiento.

Para integrar la representación del conocimiento, la resolución de problemas Web complementaria


y el aprendizaje se han desarrollado las llamadas arquitecturas integradas. Estas
Una descripción del Noos
arquitecturas engloban, además, diversos métodos de aprendizaje. Theo, Soar, se puede encontrar en
Prodigy y Noos son algunas de las arquitecturas que existen con estas carac- http://www.iiia.csic.es/Pro-
jects/Noos.html.
terísticas.

5.1. Programación lógica inductiva

(42)
Los sistemas de programación lógica inductiva42 construyen modelos a partir En inglés, inductive logic pro-
gramming, ILP.
de ejemplos, a pesar de tratar de superar algunos de los problemas que aparecen
en los métodos de aprendizaje inductivo. En particular, intentan encontrar
soluciones para los problemas siguientes:

• Representación limitada: los métodos inductivos sólo permiten construir Lectura complementaria
modelos con expresiones equivalentes al cálculo proposicional. Por lo tan-
La descripción de la progra-
to, los modelos que se construyen no permiten representar proposiciones mación lógica inductiva está
de la lógica de primer orden. basada en:
S.�Muggleton. "Inductive
Logic Programming". En:
S. Muggleton (ed.) (1992).
Inductive logic programming
• No se permite considerar conocimiento previo sobre el dominio del siste- (pág. 3-27). Academic Press.
ma (background knowledge): los sistemas no permiten iniciar el aprendizaje
teniendo en cuenta un cierto conocimiento previo. Todo el conocimien-
to que se tiene que aprender se tiene que encontrar en los ejemplos que
se suministran en el método. Las alternativas como los macrooperadores,
en cambio, no permiten incorporar conocimiento nuevo de ningún tipo,
dado que la única cosa que hacen es incorporar una reelaboración de un
conocimiento que ya es conocido por el sistema.
© FUOC • PID_00200713 130 Aprendizaje

• Sesgo en el vocabulario: el método sólo lo pueden utilizar aquellos térmi-


nos que inicialmente ya aparecen en los ejemplos suministrados. No es
posible inventar vocabulario nuevo.

La programación lógica inductiva intenta superar estos problemas constru-


yendo métodos de aprendizaje que utilizan lógica de primer orden, tanto pa-
ra representar el conocimiento previo como para representar lo que se apren-
de. Actualmente hay diversos sistemas ILP. Algunos de estos son MIS, SOIL,
CLAUDIEN y GOLEM.

El marco donde se mueven estos sistemas de aprendizaje se puede describir


formalmente como lo hacemos a continuación.

Con un conocimiento previo K, un conjunto de ejemplos positivos E+


y un conjunto de ejemplos negativos E– (los ejemplos negativos no se
pueden demostrar a partir de K), los sistemas de programación lógica
inductiva tienen que encontrar un conjunto de cláusulas en lógica de
primer orden que llamamos H que permitan demostrar E+ pero que no
permitan demostrar E–.

A continuación, veamos un ejemplo con algunos resultados sencillos que pue- Lectura complementaria
den conseguir estos sistemas. El problema consiste en encontrar los predicados
El ejemplo de programación
del lenguaje lógico PROLOG que permiten definir el algoritmo de ordenación lógica inductiva se ha extraí-
quicksort. do de:
S.�Muggleton;�C.�Feng. "Ef-
ficient Induction of Logic
Para definir el problema necesitamos el conocimiento previo K y el conjunto Programs". En: S. Muggleton
(ed.) (1992). Inductive logic
de ejemplos positivos E+ y negativos E–. A continuación definimos estos ele- programming (pág. 281-298).
Academic Press.
mentos:
© FUOC • PID_00200713 131 Aprendizaje

Conocimiento�previo:

partition(X,[],[],[]).

partition(X,[Head|Tail], [Head|Sublist1], Sublist2) :-

lte(Head, X),

partition(X, Tail, Sublist1, Sublist2).

partition(X, [Head|Tail], Sublist1, [Head|Sublist2]):-

gt(Head, X),

partition(X, Tail, Sublist1, Sublist2).

append([],List,List).

append([Head|Tail], List,[Head|Rest]):-append(Tail, List, Rest).

lte(0,0).

lte(0,1).

...

gt(1,0).

gt(2,0).

gt(2,1).

...

En estas definiciones encontramos el predicado "partition", que recibe cua-


tro parámetros (de hecho, un valor numérico X y tres listas) y se cumplirá
cuando la segunda y la tercera lista definan una partición de la primera de
manera que en la segunda estén los elementos inferiores o iguales que X y en
la tercera estén los mayores. Así, el predicado

partition(4, [1,6,2,5,3,4], [1,2,3,4], [6,5])

se evalúa en cierto. También encontramos el predicado "append", que recibe


tres listas y se cumple cuando la tercera corresponde a la concatenación de las
dos primeras. Así, el predicado

append([1,6,2],[5,3,4], [1,6,2,5,3,4])

(43)
se evalúa en cierto. La definición del conocimiento a priori también incluye los En inglés, lte: less than or equal.
predicados "lte" y "gt". El primero define cuándo un valor numérico es menor
(44)
o igual43 a otro (0 igual a 0, 0 menor que 1...) y el segundo define cuándo un En inglés, gt: greater than.

valor es mayor44 que otro.


© FUOC • PID_00200713 132 Aprendizaje

Además del conocimiento, a priori necesitamos los ejemplos positivos y nega-


qsort([],[]).
tivos del predicado quicksort que queremos aprender (lo denotamos "qsort").
En estos ejemplos se considera el predicado "qsort" como binario, en el que qsort([0],[0]).

el primer argumento es la lista sin ordenar y el segundo es la lista ordenada. qsort([1,0],[0,1]).


Algunos de los ejemplos de qsort considerados son los siguientes:
...

Ejemplos�negativos:

qsort([1,0],[1,0]).

...

Con esta información, el sistema de programación lógica inductiva GOLEM


qsort([A|B],[C|D]):-
generó el modelo siguiente para "qsort":
partition(A, B, E,
F),
De hecho, para este problema el sistema ofrece diversas soluciones. Una solu-
ción alternativa es la siguiente: qsort(F, G),

qsort(E, H),
El primer quicksort presentado corresponde a la implementación más típica.
append(H, [A|G], [C|
Así, cuando tenemos la lista formada por un elemento A y una cola B, lo que D]).
hacemos es dividir los elementos de B entre los que son más pequeños o iguales
que A y los que son mayores. En el predicado definido más arriba, la partición
la hace, evidentemente, el predicado "particiona". Una vez tenemos la lista qsort([A|B], [C|D]):-
de los valores pequeños (inferiores o iguales que A) y la de los valores grandes
qsort(B,E),
(mayores que A), los tenemos que ordenar (eso lo hace la llamada recursiva
partition(A,E,F,G),
a los "qsort"). Una vez están ordenados estos dos conjuntos, sabemos que la
lista ordenada tiene que coincidir con la concatenación de las dos listas H y G append(F[A|G],[C|
D]).
con el elemento A (el que hemos utilizado para partir).

El segundo quicksort también corresponde a un algoritmo de ordenación pe-


ro con una implementación ineficiente. El algoritmo extrae el primer ele-
mento de la lista (el elemento A) y entonces ordena la cola (en la expresión
"qsort(B,E)"). Una vez ha ordenado la cola, divide la lista ordenada E en dos
de acuerdo con A y después vuelve a unir las dos sublistas y añade el elemento
A donde corresponde.
© FUOC • PID_00200713 133 Aprendizaje

Actividades
1. Construid una categorización de la tabla del ejercicio anterior tomando sólo los dos atri-
butos numéricos "población" y "superficie", y utilizad el algoritmo C-Means. Tomad c = 3 e
inicializad las categorías con los centroides siguientes:

Valencia = p1 = (739.014, 134,6)


Talteüll = p2 = (851, 53,5)
L'Alcora = p3 = (9.106, 94,9)

Describid los pasos que se harán a continuación. Nota: Utilizad los datos de las tablas nor-
malizadas.

2. Considerad la tabla de semejanzas sobre X = { x1, x2, x3, x4, x5 } del subapartado 3.3.2 (que
volvemos a reproducir). Calculad el dendrograma que resulte con el método aglomerativo
cuando utilizamos como criterio de agregación la selección de los objetos más próximos y
como criterio para recalcular la semejanza la media aritmética.

  x1 x2 x3 x4 x5

x1 1 0,7 0,9 0,6 0,6

x2 0,7 1 0,7 0,6 0,6

x3 0,9 0,7 1 0,6 0,6

x4 0,6 0,6 0,6 1 0,8

x5 0,6 0,6 0,6 0,8 1

Semejanza transitiva

3. Considerad el siguiente problema de clasificación representado en la figura. Ejecutad ma-


nualmente las primeras iteraciones del algoritmo Adaboost sobre el propio conjunto de en-
trenamiento (o si queréis, podéis usar algún lenguaje de scripting a vuestra elección). ¿Qué
clasificador débil usaríais? ¿Creéis que las clases son separables mediante Adaboost?

Ejercicios de autoevaluación
© FUOC • PID_00200713 134 Aprendizaje

1. Considerad la tabla de semejanzas sobre X = { x1, x2, x3, x4, x5 } del subapartado 3.3.2 (la
volvemos a reproducir aquí). Calculad el dendrograma que resulte con el método aglomera-
tivo cuando utilizamos como criterio de agregación la selección de los objetos más próximos
y como criterio para recalcular, la semejanza del vínculo simple.

  x1 x2 x3 x4 x5

x1 1 0,7 0,9 0,6 0,6

x2 0,7 1 0,7 0,6 0,6

x3 0,9 0,7 1 0,6 0,6

x4 0,6 0,6 0,6 1 0,8

x5 0,6 0,6 0,6 0,8 1

Semejanza transitiva

2. Considerad la tabla siguiente y los atributos "Industria", "Metro" y "Densidad". Pensemos


que queremos clasificar las poblaciones de las Islas Baleares y discriminarlas del resto. Por lo
tanto, consideramos dos clases. Una que comprende Inca y Maón y que denotamos IB (por lo
tanto, g(Inca) = IB y g(Maón) = IB) y otra que comprende todas las demás y que denotamos ¬IB.
Construid un árbol de decisión con los datos de la tabla e ignorad los valores que no aparecen
(por lo tanto, cuando calculéis la medida del atributo "Industria" tendremos 9 objetos en vez
de 11).

  Densidad Industria Metro Clase

L'Alcora MB cerámica no ¬IB

Valencia A   sí ¬IB

Barcelona MA   sí ¬IB

Inca B calzado no IB

Elda M calzado no ¬IB

Almussafes M coches no ¬IB

Castalla MB juguetes no ¬IB

Ibi B juguetes no ¬IB

Sant Sadurní d'Anoia B vino no ¬IB

Talteüll MB vino no ¬IB

Maón B juguetes no IB

Algunas poblaciones
© FUOC • PID_00200713 135 Aprendizaje

Solucionario

1. Para construir la solución tenemos que proceder de acuerdo con los pasos siguientes:

a) Aquí empezamos por el paso 1 porque la matriz de semejanzas la consideramos dada.

b) Selección de las categorías. Las categorías más próximas son x1y x3 porque su semejanza
es 0,9.

c) Tenemos que modificar la matriz de semejanzas y eliminar x1y x3, y tenemos que añadir la
nueva categoría. Llamamos a esta categoría x13. Para calcular la nueva semejanza utilizamos
el vínculo simple. Eso quiere decir que la semejanza entre las categorías xi y la nueva categoría
x13 es la mayor de las semejanzas s(xi,x1) y s(xi,x3):

s(xi,x13) = max(s(xi,x1), s(xi,x3))

Por lo tanto, obtenemos la matriz de semejanzas de la tabla.

  x13 x2 x4 x5

x13 1 0,7 0,6 0,6

x2 0,7 1 0,6 0,6

x4 0,6 0,6 1 0,8

x5 0,6 0,6 0,8 1

Matriz de semejanzas incorporando x13.

d) Ahora tenemos que volver a hacer una selección de los objetos más próximos. Seleccio-
namos x4 y x5 porque tienen una semejanza de 0,8.

e) Tan pronto como tenemos el par {x4, x5} tenemos que modificar la matriz de semejanzas.
Debemos añadir la nueva categoría, que denotamos x45, y eliminar tanto x4 como x5. A con-
tinuación, calculamos s(xi,x45) de acuerdo con:

s(xi,x45) = max(s(xi,x4),s(xi,x5))

Por lo tanto, obtenemos la matriz de semejanzas de latabla siguiente.

  x13 x2 x45

x13 1 0,7 0,6

x2 0,7 1 0,6

x45 0,6 0,6 1

Matriz de semejanzas incorporando x45.

f) Volvemos al paso de seleccionar los objetos más próximos. Son la categoría x13 y el objeto
x2, ya que tienen una semejanza de 0,7 y es la mayor.

g) Después de la selección, tenemos que rehacer la matriz de semejanzas. Eliminamos x13 y


x2, y a continuación añadimos la nueva categoría que denotamos x123. La nueva semejanza
de la categoría que queda (la categoría x45) con x123 será:

s(x123, x45) = max(s(x13, x45),s(x2, x45))

Por lo tanto, obtenemos la matriz de semejanzas de la tabla siguiente:

  x123 x45

Matriz de semejanzas incorporando x123.


© FUOC • PID_00200713 136 Aprendizaje

x123 1 0,6

x45 0,6 1

Matriz de semejanzas incorporando x123.

h) En el momento en que obtengamos una matriz con dos categorías, podemos pasar a definir
la raíz del dendrograma. Eso lo conseguimos uniendo x123 y x45. Una vez hemos unido estas
categorías, podemos dibujar el dendrograma. Es el que aparece en la figura 25. Se puede
observar que este dendrograma es el mismo que obtenemos con el método basado en la
clausura transitiva (ved figura del subapartado 3.3.2). Este resultado concuerda con lo que
habíamos comentado sobre el método basado en la clausura transitiva y su equivalencia con
el algoritmo aglomerativo cuando tomamos como criterio de agregación el de seleccionar los
objetos más próximos, y como criterio para recalcular las semejanzas el vínculo simple.

Figura 25

2. Repasemos los pasos necesarios para construir el árbol de decisión.

a) Como el conjunto de ejemplos inicial no está vacío y, además, hay elementos de las dos
clases, tenemos que pasar a generar las particiones del conjunto de instancias. Así, en el caso
del atributo "densidad" tenemos la partición siguiente: {{l'Alcora, Castalla, Talteüll}, {Inca, Ibi,
Sant Sadurní, Maón}, {Elda, Almussafes}, {Valencia}, {Barcelona}}. Para el atributo "industria",
la partición que obtenemos es: {{l'Alcora}, {Inca, Elda}, {Almussafes}, {Castalla, Ibi}, {Sant Sa-
durní d'Anoia, Talteüll}, {Maón}}. En el caso del atribut "metro" obtenemos {{Valencia, Barce-
lona}, {l'Alcora, Inca, Elda, Almussafes, Castalla, Ibi, Sant Sadurní d'Anoia, Talteüll, Maón}}.

b) A continuación, tenemos que seleccionar la mejor partición. Por lo tanto, tenemos que
calcular la medida para cada atributo. Los resultados que obtenemos son:

MedidaDensidad = (1/N) [3 + 2 + 2 + 1 + 1] = 9/11

MedidaIndustria = (1/N) [1 + 1 + 1 + 2 + 2 + 1] = 8/9

MedidaMetro = (1/N) [2 + 7] = 9/11

De acuerdo con las medidas y con la elección del atributo con una medida mayor, seleccio-
namos el atributo "industria".

c) Ahora tenemos que hacer una llamada recursiva para cada valor del atributo "industria".
Eso corresponde a hacer seis llamadas recursivas. Pasamos los objetos con valores descono-
cidos a cada nodo hijo. Así, hacemos una llamada con {l'Alcora, Valencia, Barcelona}, otra
llamada con {Inca, Elda, Valencia, Barcelona}. También hacemos llamadas con {Almussafes,
Valencia, Barcelona}, {Castalla, Ibi, Valencia, Barcelona}, {Sant Sadurní d'Anoia, Talteüll, Va-
lencia, Barcelona} y con {Maón, Valencia, Barcelona}. Cuando hacemos las llamadas, para
la mayoría de los casos la recursión acaba por comprobar que todos los objetos están en la
misma categoría ¬IB y, por lo tanto, asignar esta categoría en el nodo. Sólo para las llama-
das {Inca, Elda, Valencia, Barcelona} y {Maón, Valencia, Barcelona} la recursión entra en la
rama para generar las particiones. Ahora hemos de considerar las particiones de los atributos
"densidad" y "metro". En el primer caso el atributo que seleccionaremos será "densidad". En
el segundo caso, como los dos atributos "metro" y "densidad" nos discriminan perfectamente
la clase IB, cualquiera de los dos es adecuado para construir el árbol.
© FUOC • PID_00200713 137 Aprendizaje

Glosario
aprendizaje deductivo  m  Problema de aprendizaje que consiste en mejorar el conoci-
miento de manera que sea más fácil o más eficiente de utilizar. No hay incorporación de
nuevo conocimiento, sino sólo reelaboración de conocimiento ya incluido en el sistema.

aprendizaje inductivo  m  Problema de aprendizaje supervisado cuando lo formulamos


como el proceso de aprender una función.

aprendizaje no supervisado  m  Corresponde a la situación en la que no se dispone de


información sobre el resultado que tendría que dar el sistema para un ejemplo concreto.

aprendizaje por refuerzo  m  Corresponde al aprendizaje cuando el conocimiento sobre


la calidad del sistema sólo es parcial. No se dispone del valor que no corresponde a la salida
para un determinado conjunto de valores de entrada sino, solamente, una gratificación o
una penalización según el resultado que ha dado el sistema.

aprendizaje supervisado  m  Corresponde a la situación en la que hay conocimiento


completo sobre cuál es la respuesta que se tiene que dar en una determinada situación.

conjunto de entrenamiento  m  Conjunto de ejemplos que se utilizan en el aprendizaje.

ejemplo  m Cada una de las unidades (objetos) que permiten aprender.


sin. instancia

instancia  f  Véase ejemplo.

problema de clasificación  m  El atributo solución para los ejemplos corresponde a un


valor categórico (no numérico).

problema de regresión  m  El atributo solución para los ejemplos corresponde a un valor


numérico.

problema de búsqueda  m  Corresponde al aprendizaje ligado a la resolución de proble-


mas.
© FUOC • PID_00200713 138 Aprendizaje

Bibliografía
Bibliografía básica

Hastie, T.; Tibshirani, R.; Friedman, J. (2001). The elements of statistical learning. Nueva
York: Springer.

Langley, P.

Bibliografía complementaria

Burges, C. J. C. (1998). ìA tutorial on support vector machines for pattern recognitionî.


Data mining and knowledge discovery (núm. 2, pág. 121-167).

Dietterich, T. G. (1997). ìMachine-learning research: Four current directionsî. AI magazine


(pág. 97-136).

Hernández Ovallo, J.; Ramírez Quintana, M. J.; Ferri Ramírez, C. (2004). Introduc-
ción a la minería de datos. Madrid: Pearson Prentice-Hall.

Miyamoto, S.; Umayahara, K. (2000). ìMethods in hard and fuzzy clusteringî. En: Z.-Liu;
S. Miyamoto (ed.). Soft computing and human-centered machines (pág. 85-129). Tokyo: Springer.

También podría gustarte