You are on page 1of 27

UNIVERSIDAD CARLOS III DE MADRID

Aplicación de algoritmos de selección clonal en problemas de clasificación
Computación No Convencional

Andrés Duque Fernández. NIA: 100047570 20/06/2010

Máster Oficial en Ciencia y Tecnología Informática. Curso 2009/2010.

Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. Curso 2009/2010

TABLA DE CONTENIDOS
1. Introducción.......................................................................................... 3 2. Fundamentos teóricos .......................................................................... 5 2.1. El sistema inmune y la teoría de selección clonal .......................... 5 2.2. Algoritmo CLONALG...................................................................... 6 2.3. Algoritmo CSCA .............................................................................. 8 2.4. Algoritmos y dominios de clasificación ........................................ 10 2.5. Validación cruzada........................................................................ 11 3. Descripción de la solución.................................................................. 13 3.1. Dominios utilizados ....................................................................... 13 3.2. Descripción del programa utilizado ............................................. 16 4. Experimentación y resultados ........................................................... 19 4.1. Experimento 1: Dominio Aleatorio Sencillo ................................. 19 4.2. Experimento 2: Dominio Aleatorio Modificado............................ 20 4.3. Experimento 3: Dominio Bupa...................................................... 20 4.4. Experimento 4: Dominio Car ........................................................ 21 4.5. Experimento 5: Dominio Diabetes ................................................ 21 4.6. Experimento 6: Dominio Ionosphere ............................................ 22 4.7. Experimento 7: Dominio Iris......................................................... 22 4.8. Experimento 8: Dominio Wine ...................................................... 23 4.9. Gráficas comparativas .................................................................. 23 5. Conclusiones........................................................................................ 25 6. Referencias .......................................................................................... 27

2

paralelismo. un proceso de selección. es decir. autorregulación y detección distribuida. cada uno de los cuáles está representado por un dominio o conjunto de datos o patrones representativos del problema. descentralización. así como mejorar el anticuerpo y memorizarlo para conseguir una defensa contra el antígeno más rápida y más precisa en un futuro (adaptabilidad y maduración del sistema inmune). En el presente trabajo. Introducción Los Sistemas Inmunológicos Artificiales (SIA) son sistemas computacionales que imitan al sistema inmune de los animales vertebrados (más específicamente. principios y modelos fundamentales de dicho sistema para su aplicación en la resolución de multitud de problemas. aquéllas técnicas que imitan comportamientos observados y analizados en la naturaleza y la biología para resolver problemas que otros algoritmos y técnicas no pueden resolver o para los cuáles ofrecen resultados poco satisfactorios. implementando las funciones. 2003): aprendizaje y memoria. el análisis y la minería de datos. la técnica que se va a utilizar en este trabajo es la denominada selección clonal. Se van a analizar varios problemas de clasificación. La implementación de la técnica de selección clonal en un algoritmo está basada en las características principales del 3 . aplicadas a problemas de clasificación en los que algoritmos clásicos de clasificación no arrojan buenos resultados. por lo que los SIAs se convierten en herramientas eficaces y robustas para su aplicación en multitud de áreas. la navegación autónoma de robots. diversidad. se van a analizar la eficacia y el rendimiento de algunas técnicas extraídas de los SIAs. en las características que poseen dichos sistemas (Cruz. reconocimiento de patrones. el aprendizaje automático.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. la clasificación y el reconocimiento de patrones. fundamentalmente. la resolución de problemas de búsqueda y optimización. los sistemas de detección de intrusos (IDS). Curso 2009/2010 1. como el desarrollo de antivirus. activación y maduración de las células del sistema inmune que permite reconocer elementos externos a dicho sistema (denominados antígenos) y activar los elementos internos del sistema (anticuerpos) para luchar contra dicho antígeno. Estas mejoras aportadas por las técnicas de los SIAs están basadas. Aunque existen otras técnicas interesantes dentro de los SIAs (como la selección negativa o las redes inmunes). la protección de datos y de redes. de los seres humanos). etc. Estas técnicas se comenzaron a utilizar en los años 90 como parte de la rama de la Inteligencia Artificial que se ocupa de los sistemas con inspiración biológica.

el conjunto de anticuerpos que desarrollarán los algoritmos utilizados será utilizado para clasificar los patrones de los dominios que sean presentados al sistema. como los que nos ocupan en este trabajo. una evolución de CLONALG desarrollada para su aplicación en problemas de clasificación.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. los elementos clasificadores) y los antígenos externos (los patrones que se quieren clasificar). también es importante prestar atención al consumo de recursos de los algoritmos utilizados (fundamentalmente el tiempo de ejecución). o en un dominio de clasificación en particular. que es uno de los más utilizados por los SIAs para la resolución de problemas de muy diversos tipos. sin embargo. si el tiempo de ejecución es elevado habrá que analizar la conveniencia de utilizar cada algoritmo en un momento concreto. el algoritmo CLONALG. Es decir. selección. ya que el objetivo que se persigue es conseguir mejoras en la clasificación que realizan otros algoritmos clásicos. Curso 2009/2010 sistema natural (reconocimiento. y por otra parte. En apartados posteriores se detallarán ambos algoritmos en mayor profundidad. 4 . El criterio principal que se utilizará para evaluar el comportamiento de los algoritmos utilizados en los problemas de clasificación será la tasa de acierto que presenta cada algoritmo en cada dominio probado. por lo que los algoritmos que se van a utilizar en el presente trabajo controlarán la interacción entre los componentes del sistema inmune (en nuestro caso. el algoritmo CSCA (Clonal Selection Classification Algorithm). Se van a utilizar dos algoritmos diferentes que implementan la técnica de selección clonal: por una parte. clonación y maduración). ya que aunque se consigan mejoras.

así como por muchos tipos de células. • Expansión clonal: Se basa en la proliferación y maduración de clones cuando se produce un contacto entre linfocitos y antígenos (se detecta la presencia de elementos externos infecciosos). y el sistema inmune adquirido. En lo que se refiere a la teoría de la selección clonal. los linfocitos se ocupan de la respuesta inmune: el agente infeccioso es presentado a los linfocitos de tipo T (o células T). que a su vez activan a los linfocitos de tipo B (o células B) para producir anticuerpos (específicos para cada uno de los agentes infecciosos). Estos linfocitos han de ser reconocidos y eliminados en fases tempranas del desarrollo del organismo. 5 . bioquímicas. Fundamentos teóricos 2. en este trabajo nos interesan el sistema inmune innato. Cuando un agente infeccioso entra en el cuerpo y los mecanismos de las capas anteriores son incapaces de detener la infección. como saliva. ya que es el que inicia y controla la respuesta adaptativa. ya que se ocupa de reaccionar ante los antígenos y de recordar los ataques que se han producido para mejorar la respuesta inmune en posibles ataques futuros. Aunque el sistema inmunitario está compuesto por varias capas (físicas. como piel y mucosas. Además de producir los anticuerpos. Asimismo.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. en concreto los linfocitos (pertenecientes al sistema adaptativo). El sistema inmune y la teoría de selección clonal El sistema inmune de los vertebrados está compuesto por un conjunto de procesos que protegen al organismo de enfermedades mediante la identificación y eliminación de células patógenas y cancerosas. reconociéndolas como ajenas (base de las enfermedades auto-inmunes). las células B “recuerdan” la respuesta inmune realizada para determinado agente externo para cuando se repita una intrusión. las células más importantes en lo que se refiere al tema que se está tratando son los leucocitos o glóbulos blancos. inmunes innatas e inmunes adquiridas o adaptivas).1. Curso 2009/2010 2. sus propiedades fundamentales son las siguientes: • Selección negativa: Existe un conjunto de linfocitos que se ocupan de reconocer patrones antigénicos que pertenecen al propio organismo. sudor o lágrimas. para evitar que se produzcan ataques a células propias.

2002) como CLONALG. el aprendizaje.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. mejorando así la respuesta inmune.2. Su objetivo fundamental es el desarrollo de un conjunto de anticuerpos. 2005). En etapas posteriores del sistema inmune. Las mutaciones que se producen en los anticuerpos dentro del proceso de maduración de la afinidad persiguen mejorar la capacidad de ataque de un anticuerpo a un antígeno. fue desarrollado inicialmente por (De Castro. por otro lado la memoria. el proceso de selección clonal comienza en fases tempranas del desarrollo de un organismo. o una solución concreta a un problema compuesto por elementos representados por los antígenos. 2000). y renombrado más tarde en (De Castro. representada por la presencia en el organismo de linfocitos de larga vida que se encuentran en reposo. y la maduración de la afinidad de dichos anticuerpos (mutación). el incremento de las poblaciones de anticuerpos (clonación). cada uno de los cuáles representa una parte de la solución. se puede decir que los conceptos fundamentales del proceso de selección clonal son dos: por un lado. se diferencias en células efectoras. la célula se activa y se replica para hacer frente a la infección. Los aspectos que se imitan de la teoría de selección clonal son: el mantenimiento de un conjunto de memoria (anticuerpos resultantes). Como ya se ha dicho. Algoritmo CLONALG El algoritmo CLONALG. la selección y clonación de los mejores anticuerpos. y la eliminación de anticuerpos que no 6 . Los clones que se generan. mediante la eliminación de linfocitos reconocedores de células propias para evitar el desarrollo de enfermedades auto-inmunes (autotolerancia). se producen cambios genéticos aleatorios en dichos anticuerpos para conseguir mejores respuestas inmunes. con el nombre de CSA. que se explica con profundidad en (Brownlee. y células de memoria. Hipermutación somática: A la hora de realizar clonaciones de anticuerpos generados para luchar contra una infección. Por tanto. 2. cuando el antígeno entra en contacto con los receptores de un linfocito maduro. conseguido mediante la exposición repetida a los antígenos. Curso 2009/2010 • • Monoespecificidad: Se refiere al reconocimiento de cada antígeno por un linfocito diferente. esperando la posibilidad de volver a participar en una respuesta inmune si se produce una infección con el mismo antígeno en el futuro.

Selección de antígeno: Se selecciona aleatoriamente un antígeno. el cuál estará dividido en dos subconjuntos. Maduración de la afinidad: Se mutan los clones de forma inversamente proporcional a la afinidad (a mayor afinidad. sustituyendo a aquéllos que ocupasen sus mismas posiciones en el conjunto m en caso de presentar mayor valor de afinidad. Curso 2009/2010 funcionan correctamente. y se incluye en m. e. Clonación: Se clonan los anticuerpos seleccionados de forma directamente proporcional a la afinidad (a mayor afinidad. Finalización: El conjunto m contiene la solución al problema. h. 7 . la maduración de la afinidad mediante la mutación de anticuerpos. Exposición: Se presenta el antígeno a todos los anticuerpos presentes y se mide la afinidad de cada uno con el antígeno (normalmente con distancias de Hamming). Candidatura: Se selecciona el anticuerpo o anticuerpos con mayor afinidad. Los pasos a seguir por el algoritmo se exponen a continuación: 1. la reselección de los mejores clones y el mantenimiento de la diversidad de anticuerpos. menor grado de mutación). b. Exposición de clones: Se presenta el antígeno a todos los clones generados y mutados. y un subconjunto r utilizado para incluir diversidad al sistema. Bucle: Una generación finaliza cuando se ha ejecutado el bucle para todos los antígenos disponibles. 2. a. 3. sin reemplazo para la presente generación (ya no se vuelve a seleccionar en esta generación). y se calcula la afinidad de cada uno. uno denominado m que almacena la memoria de anticuerpos (al final del algoritmo representará la solución).Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. Se pueden ejecutar tantas generaciones como el usuario configure. Inicialización: Se prepara un conjunto aleatorio de N anticuerpos. c. f. g. mayor número de clones). Selección: Se seleccionan aquéllos anticuerpos que presentan mayor afinidad con el antígeno. Reemplazo: Los elementos con menor afinidad de los restantes en r se sustituyen por anticuerpos aleatorios. d.

2005). el número total de anticuerpos a sustituir en el paso 2h (d). Curso 2009/2010 Los parámetros más importantes del algoritmo CLONALG son: El número de anticuerpos que componen el conjunto inicial (N). Hay que controlar el problema del sobreaprendizaje para valores muy altos de G. mayor diversidad). lo cuál se consigue exponiendo el conjunto de anticuerpos a un subconjunto específico (partición) de antígenos o patrones de aprendizaje. Algoritmo CSCA El algoritmo CSCA (Clonal Selection Classification Algorithm) (Brownlee. • Los anticuerpos que presentan un fitness menor que un determinado umbral. En este caso. persigue el objetivo de maximizar la ratio entre la tasa de patrones clasificados correctamente y la tasa de clasificados incorrectamente. que escala el número de clones que se generan en el paso 2d. mayor presión). Una de las diferencias fundamentales de este algoritmo respecto a CLONALG es la manera de tratar el fitness mostrado por los anticuerpos respecto a un conjunto de antígenos. que define la diversidad que se introduce en el sistema en cada paso (a mayor d. existen tres acciones diferentes que se pueden realizar.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. 8 . el factor clonal (ß). y más de uno incorrectamente. y no participan en la clonación y la maduración. son eliminados del conjunto de anticuerpos.3. y por último el número de generaciones (G). lo que consigue el algoritmo es transformar un problema de clasificación en uno de optimización de funciones. antes de pasar a clonar y madurar (mutar) los anticuerpos: • Los anticuerpos que presentan cero patrones clasificados correctamente. y posteriormente se recalcula el fitness. más orientado a la aplicación de selección clonal para clasificación. en el que lo más importante es establecer el fitness a partir del número de instancias clasificadas correcta e incorrectamente. son modificados de tal forma que su clase ahora será aquélla para la cuál ha conseguido más clasificaciones correctas. que define la presión que tienen los anticuerpos para conseguir buenos clones en tiempo reducido (a menor número n. 2. Desde este punto de partida. el número de anticuerpos que se seleccionan en el paso 2c (n). así como los valores para m y r.

Inicialización: El conjunto inicial de anticuerpos se rellena con un S elementos tomados de la población inicial de antígenos. Los anticuerpos cuyo fitness es menor que un umbral ε son eliminados del conjunto seleccionado y del conjunto base de anticuerpos. ii. 3. para completar el conjunto de anticuerpos. 9 . iii. Se insertan también nuevos antígenos de forma aleatoria. se seleccionan los K anticuerpos con mayor afinidad para cada antígeno. Inserción: Los clones generados se insertan en la población general de anticuerpos. Los pasos seguidos por el algoritmo CSCA son los siguientes: 1. a. Los anticuerpos con tasa de clasificaciones incorrectas igual a cero se eliminan del conjunto seleccionado. Bucle: Se repiten los siguientes pasos para G generaciones. b. se modifican cambiando su clase a aquélla mayoritaria en las clasificaciones realizadas. Curso 2009/2010 • Los anticuerpos que no presentan errores (patrones clasificados incorrectamente). es decir. evaluación del fitness y poda. de forma aleatoria y sin reemplazo. y clasificaciones incorrectas mayor que cero.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. de la misma manera que en CLONALG. y se poda de la siguiente forma: i. 2. se selecciona todo el conjunto. Los anticuerpos con tasa de clasificaciones correctas igual a 0. se calcula el fitness. y la clase mayoritaria de dicha selección es asignada al antígeno (instancia). Clasificación: Se clasifica el conjunto de antígenos contra el conjunto de anticuerpos resultante del algoritmo. utilizando una estrategia KNN. Poda final: Se realiza una última exposición del conjunto de anticuerpos. c. y se recalcula el fitness. Clonación y mutación: Se realiza de forma proporcional a los valores de fitness. Selección y poda: Se expone toda la población de anticuerpos al conjunto de antígenos. aunque no son eliminados del conjunto de anticuerpos. 4. no participan en la clonación y la maduración.

será necesario computar la distancia del patrón a clasificar a cada uno de los ejemplos de los que disponemos. es decir.4. por una parte. Sin embargo. ya que se trata de uno de los algoritmos más clásicos utilizado para la realización de tareas de clasificación en diversos dominios. x j ) = p ∑ (x r =1 ir − x jr ) 2 10 . en este trabajo se va a utilizar como base para comparar el funcionamiento de CLONALG y CSCA sobre dominios de clasificación. el algoritmo de KNN (KNearest Neighbours). Umbral mínimo de fitness (ε): Permite eliminar aquellos elementos que no son útiles para el sistema. cuando se utilizan datos numéricos. y por otra parte la medida de la distancia entre dos patrones. los parámetros fundamentales para el algoritmo KNN son.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. se utiliza la distancia Euclídea: d ( xi . y en función de sus clases. Por tanto. en seleccionar la clase de un patrón que se quiere clasificar. Curso 2009/2010 Existen dos maneras principales de evitar que el conjunto final de anticuerpos se reduzca a una duplicación de un subconjunto de antígenos (debido a que el conjunto de anticuerpos se inicializa con antígenos): Límite en el número de generaciones (G): Permite al usuario definir el nivel de adaptación deseado para un determinado dominio. 2. su efecto es predecible y obvio para una población de anticuerpos dada. Normalmente. es necesario establecer un número suficiente para conseguir un buen aprendizaje. Es decir. El algoritmo KNN se basa. principalmente. para posteriormente seleccionar aquéllos ejemplos mas cercanos a nuestro patrón. asignar una clase a dicho patrón. y establecer un criterio de parada. de tal forma que cuando se selecciona un único vecino se habla del algoritmo del vecino más cercano (Nearest Neighbour Algorithm). a partir de aquellos patrones más cercanos al nuestro. pero sin sufrir sobreaprendizaje. el número de vecinos a considerar (K). Algoritmos y dominios de clasificación Existen multitud de algoritmos de clasificación. que además han sufrido diversas clasificaciones para adecuarse a los dominios específicos para los que se han utilizado. de los cuáles conocemos su clase.

el algoritmo funciona para otros ejemplos que no han sido nunca vistos por el algoritmo (es decir. los dominios que se van a utilizar en el presente trabajo. Por tanto. Esta técnica se basa en la división del conjunto de ejemplos inicial en una serie de subconjuntos (típicamente 10). 9 de los subconjuntos para entrenar el algoritmo. una vez modificados los datos. en los que es necesario. intentando mantener una aleatoriedad lo más alta posible en lo que se refiere a los ejemplos que se incluyen en cada subconjunto. si se ha dividido el conjunto de ejemplos en 10 subconjuntos. la distancia Euclídea nos dará una medida de similitud entre dos ejemplos distintos.ics. Además. y por otra. Curso 2009/2010 Donde xi y xj son dos patrones y p es el número total de atributos de los patrones. mediante la modificación directa de los patrones a medida que entran en el clasificador.5. por una parte. 2009) que buscan aumentar el porcentaje de acierto de algoritmos de clasificación clásicos. en concreto. se pueden encontrar multitud de datos en Internet para utilizarlos en experimentos de clasificación. como por ejemplo la utilización de la distancia de Chebyshev o de Mahalanobis. y se explicarán en apartados posteriores. Por ejemplo. y el resto para test o validación.uci. en cada experimento (10 en total).Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. y uno para validarlo. la utilización de la distancia Euclídea para determinar la clase a la que ha de pertenecer el patrón. se han extraído de la base de datos del UCI Machine Learning Repository (www. utilizando en cada experimento un porcentaje de los subconjuntos para entrenamiento del algoritmo. Una vez dividido el conjunto inicial de ejemplos. En lo que se refiere a los dominios de clasificación. a través de una matriz de transformación que permita. Validación cruzada La técnica de validación cruzada es ampliamente utilizada en multitud de algoritmos de aprendizaje supervisado. lo más típico es utilizar.edu/~mlearn). tener una serie de valores de test para comprobar que una vez realizado dicho aprendizaje. existen trabajos (Valls. que al generalizar el algoritmo sigue funcionando correctamente). No obstante. 2. 11 . realizar un entrenamiento del algoritmo cuyo rendimiento se quiere analizar. se realizarán tantos experimentos como subconjuntos se hayan obtenido. existen muchas posibles variaciones para calcular la distancia entre dos ejemplos en KNN. como KNN.

Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. los resultados del algoritmo se obtendrán computando la media de la tasa de acierto y fallo en aprendizaje y en validación de todos los experimentos realizados. 12 . Curso 2009/2010 Una vez que se han realizado todos los experimentos.

los dominios que se han utilizado para la realización del presente trabajo se han extraído del repositorio UCI (UCI Machine Learning Repository). 5. 5. medio y bajo). Los atributos son los siguientes: 1. El dominio posee 6 atributos. aquéllos que presentan problemas de hígado y aquéllos que no. Aminotransferasa de aspartato. 3. Fosfatasa alcalina. 13 . media o alta). medio y bajo). Precio de mantenimiento (muy alto. 3. basándose en una serie de características y resultados médicos. A continuación se exponen en detalle sus nombres y sus características: • Dominio Bupa: Se trata de un dominio utilizado para dividir un grupo de personas en dos clases. Curso 2009/2010 3. Precio de compra (muy alto. y 200 pertenecientes a la clase 2. Descripción de la solución 3. alto. mediano o grande). 3. 5 o más).1. 6.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. Dominios utilizados Como ya se ha indicado anteriormente. Existen 6 atributos y 4 posibles clases. 4. Número de bebidas alcohólicas ingeridas al día (la unidad se corresponde con media pinta). • Dominio Car: Dominio que trata de la evaluación de coches a partir de una serie de atributos representativos. Tamaño del maletero (pequeño. En total existen 345 patrones diferentes. Gamma-glutamil transpeptidasa. Los atributos son: 1. 145 pertenecientes a la clase 1. 2. Aminotransferasa alanina. Número de personas que caben en el coche (2. 4. 4. alto. 2. y 2 posibles clases. Número de puertas (2. 6. Volumen corpuscular medio. Seguridad (baja. 4 o más).

2. 2. 69 a la clase “good” y 65 a la clase “vgood”. De un total de 768 instancias. • Dominio Ionosphere: El dominio Ionosphere permite averiguar si una serie de pulsos electromagnéticos enviados a la ionosfera son devueltos al origen. Concentración de glucosa en plasma. Anchura del sépalo en cm. o por el contrario continúan adelante y no son captadas de vuelta por un radar. 6. Los atributos utilizados son los siguientes: 1. Edad. de los cuáles 1210 pertenecen a la clase “unacc”. 8.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. cada uno de ellos con 2 parámetros diferentes. La clase puede ser 0. lo cuál indica presencia de estructuras de electrones libres. lo que indica la ausencia de dichos electrones libres. 384 a la clase “acc”. “Iris Versicolour” e “Iris Virginica”. 5. Índice de masa corporal. y 126 pertenecen a la clase 0 (los pulsos se pierden). “rebotan” en la ionosfera. Grosor de la piel que envuelve el tríceps. Presión sanguínea diastólica. Longitud del sépalo en cm. Se utilizan 17 pulsos magnéticos. 268 pertenecen a la clase 1 (test positivo para diabetes) y 500 a la clase 0 (test negativo para diabetes). Curso 2009/2010 Se dispone de 1728 patrones. 14 . 7. es decir. 3. y 1 si la emisión “rebota” en la ionosfera. 225 pertenecen a la clase 1 (los pulsos se registran de vuelta en el radar). • Dominio Diabetes: Contiene información para determinar si una mujer tiene diabetes o no (2 clases diferentes) a partir de los siguientes 7 atributos: 1. • Dominio Iris: Se trata de un dominio utilizado para clasificar plantas de la familia “Iris”. Número de veces embarazada. por lo que cada instancia del dominio contiene 34 atributos distintos (los cuáles no se van a exponer en detalle). en caso de que la emisión electromagnética no “rebote” y se pierda. Existen tres clases diferentes de esta planta: “Iris Setosa”. De un total de 351 instancias. Función de diabetes (Diabetes pedigree function). 4. Resistencia a la insulina (2-hour serum insulin).

Anchura del pétalo en cm. 2. Intensidad del color. 5. creados específicamente para su utilización en este trabajo: • Dominio aleatorio sencillo: El primer dominio consta únicamente de dos atributos y de dos clases. Alcohol. 7. 4. Los atributos son: 1. Ceniza. Prolina. Matiz. Medidores OD280/OD315 de vinos diluidos. Curso 2009/2010 3. Ácido málico. 3. 12. mientras que el eje de ordenadas representa los valores del segundo atributo. 15 . Magnesio. Flavanoides. 9. Se dispone de 150 ejemplos. 4. Las clases se representan mediante el color de los puntos. Fenoles no flavanoides. 8. 13. Alcalinidad de la ceniza. de tal manera que se puede representar en un gráfico de dispersión de dos dimensiones. 71 a la clase 2 y 48 a la clase 3. 10.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. • Dominio Wine: Este dominio analiza 13 atributos diferentes de vinos cultivados en la misma región de Italia. Proantocianidinas. 6. pero en zonas diferentes y por personas diferentes. donde el eje de abscisas representa los valores del primer atributo. se han utilizado dos dominios “artificiales”. 59 pertenecen a la clase 1. 11. de los cuáles 50 pertenecen a cada una de las clases. De los 178 ejemplos totales. Fenoles totales. Longitud del pétalo en cm. Además de estos dominios extraídos de Internet. es decir.

3. o ClonalG: CLONALG y CSCA.cs. pero que además añade dos atributos más. de un rango de valores mucho mayor. El objetivo de este dominio es observar si el algoritmo consigue anular estos dos atributos que sólo incluyen ruido. y con los mismos valores. 150 pertenecientes a cada clase.2.sourceforge. En ambos dominios habrá un total de 300 instancias de datos.net. cuyos dos primeros atributos son los mismos. disponible gratuitamente en la web www. AIRS2 y AIRS2Parallel. y permitir así una correcta clasificación. que presenta implementaciones específicas de los siguientes algoritmos: • Algoritmos inmunes: o Airs: AIRS1. Curso 2009/2010 Figura 1: Dominio aleatorio sencillo • Dominio aleatorio modificado: Se va a utilizar un segundo dominio aleatorio. 16 . que los utilizados en el dominio anterior.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. denominado “WEKA classification algorithms”. Descripción del programa utilizado Para la realización de los experimentos se ha utilizado el programa WEKA.waikato.nz/ml/weka/.ac. lo que provoca que los valores de los datos estén mucho más dispersos. y más concretamente un plug-in disponible en http://wekaclassalgos.

o Perceptrón simple: Perceptron. se escogerán los dos algoritmos que nos interesan: CLONALG y CSCA. ratio de memoria del conjunto de anticuerpos. OLVQ3 y SOM. MultipassLVQ. LVQ2_1. • Algoritmos basados en reglas: o ZeroR. Curso 2009/2010 o Immunos: Immunos1. número de generaciones. WidrowHoff. BoldDriverBackPropagation. OLVQ1. o Perceptrón multicapa: BackPropagation. Immunos2 e Immunos99. semilla inicial.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. se pueden modificar los siguientes parámetros: tamaño del conjunto de anticuerpos. En los dominios utilizados se han mantenido todos los valores por defecto (que son los que se muestran en la figura). excepto el 17 . Por tanto. Los parámetros de configuración de CLONALG se exponen en la siguiente figura: Figura 2: Parámetros configurables de CLONALG Como se observa en la figura. número de anticuerpos a seleccionar tras evaluar la afinidad y reemplazo total. factor clonal. LVQ3. MultipasSOM. LVQ1. • Algoritmos neurales: o LVQ: HierarchicalLVQ.

Curso 2009/2010 atributo “antibodyPoolSize” (tamaño del conjunto de anticuerpos inicial). umbral mínimo de fitness. número de particiones.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. A continuación se exponen los parámetros configurables del algoritmo CSCA: Figura 3: Parámetros configurables de CSCA Los parámetros configurables. no se han mejorado los resultados obtenidos con la configuración por defecto. tamaño de la población inicial. 18 . factor clonal. En este algoritmo se han variado casi todos los parámetros posibles. sin que esto haya supuesto grandes diferencias en los resultados obtenidos. que se ha modificado entre 20 y 30 en función del tamaño del dominio utilizado. Es decir. son: valor de K para el algoritmo KNN utilizado en la clasificación final. así como el número de generaciones para evaluar las diferencias en los resultados. en este caso. aunque los resultados obtenidos con los valores por defecto (que se muestran en la figura) son similares a los mejores resultados obtenidos con diversas configuraciones iniciales. semilla y generaciones totales.

se utilizará una validación cruzada de 10 campos. Experimentación y resultados En este apartado se expondrán los diversos experimentos realizados. si el primer atributo es la coordenada “x” y el segundo la “y”. utilizando cada vez un subconjunto diferente para test. tanto en lo que se refiere a las tasas de acierto como al tiempo de ejecución de cada algoritmo: KNN Tasa de acierto Tiempo de ejecución 98% 0. que como ya se ha explicado. y los otros nueve para aprendizaje.95 seg. mientras que los puntos situados por encima de la línea (“y” es mayor que “x”) pertenecen a la clase “0”. los puntos situados por debajo de la línea (“x” es mayor que “y”) pertenecen a la clase “1”. A continuación se muestran los resultados obtenidos. Hay que destacar que los resultados para KNN se han extraído del artículo (Valls. así como los resultados obtenidos en cada uno de ellos.2 seg. y su comparación con los resultados del algoritmo KNN aplicado a cada uno de los dominios utilizados. CSCA 95. y se realizarán diez entrenamientos y validaciones para cada experimento.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. el conjunto inicial de ejemplos se dividirá en 10 subconjuntos. CLONALG 88% 0. Experimento 1: Dominio Aleatorio Sencillo El primer experimento se realiza con el dominio aleatorio sencillo. 2009). de tal forma que.1. consiste en un conjunto de puntos que se pueden representar en dos dimensiones. Por tanto. Tabla 1: Resultados del Dominio Aleatorio Sencillo 19 . Como ya se ha citado anteriormente. 4. Curso 2009/2010 4.69 seg. Estos puntos están separados por una línea imaginaria que sigue la ecuación y = x. los resultados obtenidos serán la media de cada una de las ejecuciones de dicha validación cruzada.33% 1. es decir.

03% 0.10% 1. que no aportan ninguna información. CLONALG 57. por lo que los resultados siguen siendo poco satisfactorios. Experimento 2: Dominio Aleatorio Modificado En este dominio se utilizan los mismos atributos que en el anterior.43 seg.17 seg. aunque no se trata de mejoras muy significativas.19% 5. Tabla 2: Resultados del Dominio Aleatorio Modificado Como se puede observar.45 seg. mientras que el algoritmo CSCA sí que la mejora. Experimento 3: Dominio Bupa El dominio Bupa también presenta dos posibles clases para los patrones. CSCA 56% 3. Los resultados obtenidos por los algoritmos probados para el dominio Bupa son los siguientes: KNN Tasa de acierto Tiempo de ejecución 62. los algoritmos inmunes tardan más tiempo en ejecutarse que KNN. CSCA 63. Además. Curso 2009/2010 4.3. CLONALG 51% 1. pero muy ligeramente.2. pero además se añaden dos atributos más que únicamente incluyen ruido.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional.23 seg. es decir. 4.05 seg. Tabla 3: Resultados del Dominio Bupa El algoritmo CLONALG no consigue mejorar la tasa de acierto para el dominio Bupa obtenida por el algoritmo KNN. “1” y “2”. Los resultados obtenidos para este dominio se ilustran en la siguiente tabla: KNN Tasa de acierto Tiempo de ejecución 50. los algoritmos CLONALG y CSCA mejoran ligeramente los resultados obtenidos por KNN.20% 0. ya que los porcentajes de acierto son todavía muy bajos. en función de si el paciente presenta enfermedades hepáticas o no.97 seg. Al igual 20 .

60 seg.67% 2.14% 29. es muy reseñable el aumento de dicho tiempo de ejecución que experimenta el algoritmo CSCA. CSCA 72. Curso 2009/2010 que en experimentos anteriores. Los resultados obtenidos para este dominio son los siguientes: KNN Tasa de acierto Tiempo de ejecución 87.05 seg.49 seg. los algoritmos inmunes tardan más tiempo que el algoritmo de KNN. Experimento 5: Dominio Diabetes El dominio diabetes presenta también un elevado número de instancias.18% 0. Tabla 5: Resultados del Dominio Diabetes Observamos que únicamente CSCA puede mejorar ligeramente la tasa de acierto obtenida por KNN para este dominio.5. CSCA 81. al existir más instancias. 4.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional.37% 157. CLONALG 66. más de 100 veces mayor que el de KNN. es posible que los tiempos de ejecución de los algoritmos aumenten.72% 5. por lo que los tiempos de ejecución se pueden ver perjudicados.47 seg.03 seg. Tabla 4: Resultados del Dominio Car Como se puede observar. aunque el tiempo de ejecución de CLONALG aumenta.47% 1. 4. CLONALG 70. Experimento 4: Dominio Car En el caso del dominio Car. KNN Tasa de acierto Tiempo de ejecución 70. además.4.77 seg. mientras que CLONALG obtiene una tasa de 21 . ninguno de los dos algoritmos analizados es capaz de mejorar la tasa de acierto obtenida por el algoritmo KNN.

CSCA 95. Tabla 7: Resultados del Dominio Iris Los resultados obtenidos por los tres algoritmos son muy similares y. “0”.87% 0. el tiempo de ejecución de CSCA aumenta significativamente por el número de instancias presentes en el dominio.75% 11. Tabla 6: Resultados del Dominio Ionosphere El algoritmo CLONALG no consigue mejorar la tasa de acierto obtenida por KNN.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional.66% 2. Los resultados obtenidos son los siguientes: KNN Tasa de acierto Tiempo de ejecución 95. 4. tal y como se pensaba.32% 0.88 seg. mientras que el número de instancias no es muy elevado (351). Asimismo. bastante satisfactorios.33% 0. En lo que se refiere al tiempo de ejecución. CLONALG 95. en general. El número de atributos elevado también influye en el tiempo de ejecución de CSCA.32 seg. Curso 2009/2010 acierto menor. Experimento 7: Dominio Iris El dominio iris presenta 3 posibles clases. Experimento 6: Dominio Ionosphere El dominio Ionosphere presenta 34 atributos y dos clases posibles.06 seg.6.58 seg. que es bastante mayor que el de KNN y CLONALG. por lo que los tiempos de ejecución no deberían ser muy elevados. CSCA 87. cosa que sí consigue CSCA aunque con una mejora muy pequeña.91 seg.33% 0. pocas instancias (150) y pocos atributos (4). CLONALG 68.51 seg.7. Los resultados obtenidos por los algoritmos analizados son los siguientes: KNN Tasa de acierto Tiempo de ejecución 86. al tratarse de pocas 22 . 4. “1” y “2”.

4. Experimento 8: Dominio Wine Para el último experimento se utiliza el dominio Wine. Gráficas comparativas A continuación se muestran dos gráficas: la primera compara la tasa de acierto en validación conseguida con CLONALG y CSCA frente a la tasa de acierto que consigue el algoritmo KNN para cada uno de los dominios utilizados. Los resultados obtenidos por los algoritmos analizados para el dominio Wine son los siguientes: KNN Tasa de acierto Tiempo de ejecución 76. y las otra compara el tiempo de ejecución del algoritmo KNN.03% 1. el de CLONALG y el de CSCA: 23 .22% 0. Curso 2009/2010 instancias y atributos. “1”.38% 0. CLONALG 70. “2” y “3”.9.17 seg.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional.98 seg.94 seg. Tabla 8: Resultados del Dominio Wine 4.8. pocas instancias (178) y bastantes atributos (13). que presenta 3 posibles clases. los tiempos son bastante bajos. aunque KNN sigue presentando el tiempo de ejecución más reducido de todos. CSCA 73.

00% 80.00 Al ea to rio Al Se ea nc to rio ill o M od ifi ca do ia be te s Bu pa e Io no sp he r W in e C ar Iri s KNN CLONALG CSCA Figura 5: Comparativa entre los tiempos de ejecución (KNN.00% 70.00% 20.00 20.00 0.00% 10.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. CLONALG y CSCA) D 24 .00% 30. Curso 2009/2010 Tasas de acierto 100.00 100.00 160.00 140.00 40.00% 40.00% 50.00% 90.00% Se nc ill o M od ifi ca do D ia be te s Bu pa e Io no sp he r W in e C ar Ir i s KNN CLONALG CSCA Al ea to r io Al ea to r Figura 4: Comparativa entre las tasas de acierto (KNN.00% 60. CLONALG y CSCA) io Tiem pos de ejecución (segundos) 180.00 120.00 80.00% 0.00 60.

Además. obteniendo resultados similares a otros algoritmos de clasificación más clásicos. • El algoritmo CSCA mejora las tasas de acierto conseguidas por KNN en los dominios Aleatorio Modificado. Para el resto de los dominios. ya que no consigue mejorar las tasas de acierto ni los tiempos de ejecución. Conclusiones De todos los resultados extraídos de los experimentos que se han realizado en el presente trabajo. como se puede observar por los resultados obtenidos. la mejora que ha conseguido CLONALG es únicamente de un 1%. en los casos en los que existe mejora. aunque como ya se ha dicho se trata del dominio para el que peor se comporta KNN. y se trata del dominio para el que KNN funcionaba peor de todos los que se han utilizado. consigue resultados más o menos similares en Iris. • El algoritmo CLONALG sólo ha conseguido mejorar la tasa de acierto ofrecida por KNN en un dominio (Aleatorio Modificado). Diabetes e Ionosphere. se pueden extraer las siguientes conclusiones: • Aunque los dos algoritmos que se han utilizado (CLONALG y CSCA) demuestran cierta robustez desde el punto de vista de que son capaces de afrontar problemas de clasificación muy diferentes sin modificación de sus parámetros. Bupa. se observa que CSCA tarda siempre más que KNN en obtener la solución. además. de entre el 1% y el 2%. Además. observamos que el uso de CLONALG no es recomendable. por lo que tampoco se recomendaría especialmente la utilización de CSCA por encima de otros algoritmos clásicos de clasificación. ninguno de los dos algoritmos utilizados mejora sensiblemente las tasas de acierto de dichos algoritmos clásicos (KNN). Curso 2009/2010 5. esta es muy pequeña. salvo en Aleatorio Modificado. y no consigue mejorar las tasas de acierto en Aleatorio Sencillo ni en Wine. 25 . en el que la mejora es del 6%. analizando los tiempos de ejecución del algoritmo.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional.

ya que abordan el problema desde un enfoque diferente. • Otro tipo de técnicas. al final. por lo que si la base de los algoritmos es similar. la misma técnica que se utiliza en KNN. aunque las mejoras obtenidas por los algoritmos (en los casos en que se producen) no tienen ninguna relación con el tiempo de ejecución del algoritmo.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. la generación de programas matemáticos que obtienen una función para clasificar cada patrón del dominio. es lógico que éstos arrojen resultados similares. como por ejemplo la programación automática. han demostrado funcionar bastante mejor que los algoritmos clásicos de clasificación para estos mismos dominios. para CLONALG y CSCA de forma proporcional al número de instancias del dominio y al número de atributos. es decir. Curso 2009/2010 • Los tiempos de ejecución aumentan. • El hecho de que ninguno de los algoritmos utilizados (CLONALG y CSCA) consiga mejoras significativas en los dominios probados respecto a KNN puede deberse a que. 26 . la forma de extraer medidas de afinidad y de fitness en estos algoritmos de selección clonal es la comparación y el cálculo de distancias entre patrones. buscando relaciones matemáticas entre los atributos de un dominio y no sólo utilizando medidas de similitud entre los patrones de dicho dominio.

: Optimización Multiobjetivo Utilizando el Principio de Selección Clonal del Sistema Inmune. 2000.J. C. y Aler. México. • Brownlee.A. Swinburne University of Technology (SUT). • De Castro. • Cruz. IEEE Transactions on Evolutionary Computation. The Clonal Selection Classification Algorithm (CSCA). 2009. 2003. N.N. • De Castro.N. J. Las Vegas. L. USA.Aplicación de algoritmos de selección clonal en problemas de clasificación Computación No Convencional. Curso 2009/2010 6. y Von Zuben.. J. Technical Report. ISDA ’09. y Von Zuben. y Coello. L.: Clonal Selection Theory & CLONALG. • Referencias Valls.F. R. 2005. 27 . F. F. D.J. Workshop on Artificial Immune Systems and Their Applications. GECCO 2000. 2002. Special Issue on Artificial Immune Systems.: Learning and Optimization Using the Clonal Selection Principle. 9ª Conferencia de Ingeniería Eléctrica.M.: The Clonal Selection Algorithm with Engineering Applications. Ninth International Conference on Intelligent Systems Design and Applications.: Optimizing Linear and Quadratic Data Transformations for Classification Tasks.