Download - Seleccion Clonal en Clasificacion

Transcript
  • UNIVERSIDAD CARLOS III DE MADRID

    Aplicacin de algoritmos

    de seleccin clonal en

    problemas de

    clasificacin

    Computacin No Convencional

    Andrs Duque Fernndez. NIA: 100047570

    20/06/2010

    Mster Oficial en Ciencia y Tecnologa Informtica. Curso 2009/2010.

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    2

    TABLA DE CONTENIDOS

    1. Introduccin..........................................................................................3

    2. Fundamentos tericos ..........................................................................5 2.1. El sistema inmune y la teora de seleccin clonal ..........................5 2.2. Algoritmo CLONALG......................................................................6 2.3. Algoritmo CSCA ..............................................................................8 2.4. Algoritmos y dominios de clasificacin ........................................10 2.5. Validacin cruzada........................................................................11

    3. Descripcin de la solucin..................................................................13 3.1. Dominios utilizados .......................................................................13 3.2. Descripcin del programa utilizado .............................................16

    4. Experimentacin 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. Grficas comparativas ..................................................................23

    5. Conclusiones........................................................................................25

    6. Referencias ..........................................................................................27

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    3

    1. Introduccin

    Los Sistemas Inmunolgicos Artificiales (SIA) son sistemas computacionales que imitan al sistema inmune de los animales vertebrados (ms especficamente, de los seres humanos), implementando las funciones, principios y modelos fundamentales de dicho sistema para su aplicacin en la resolucin de multitud de problemas. Estas tcnicas se comenzaron a utilizar en los aos 90 como parte de la rama de la Inteligencia Artificial que se ocupa de los sistemas con inspiracin biolgica, es decir, aqullas tcnicas que imitan comportamientos observados y analizados en la naturaleza y la biologa para resolver problemas que otros algoritmos y tcnicas no pueden resolver o para los cules ofrecen resultados poco satisfactorios. Estas mejoras aportadas por las tcnicas de los SIAs estn basadas, fundamentalmente, en las caractersticas que poseen dichos sistemas (Cruz, 2003): aprendizaje y memoria, descentralizacin, reconocimiento de patrones, paralelismo, diversidad, autorregulacin y deteccin distribuida, por lo que los SIAs se convierten en herramientas eficaces y robustas para su aplicacin en multitud de reas, como el desarrollo de antivirus, los sistemas de deteccin de intrusos (IDS), la proteccin de datos y de redes, la resolucin de problemas de bsqueda y optimizacin, la clasificacin y el reconocimiento de patrones, el aprendizaje automtico, el anlisis y la minera de datos, la navegacin autnoma de robots, etc. En el presente trabajo, se van a analizar la eficacia y el rendimiento de algunas tcnicas extradas de los SIAs, aplicadas a problemas de clasificacin en los que algoritmos clsicos de clasificacin no arrojan buenos resultados. Se van a analizar varios problemas de clasificacin, cada uno de los cules est representado por un dominio o conjunto de datos o patrones representativos del problema. Aunque existen otras tcnicas interesantes dentro de los SIAs (como la seleccin negativa o las redes inmunes), la tcnica que se va a utilizar en este trabajo es la denominada seleccin clonal, un proceso de seleccin, activacin y maduracin de las clulas del sistema inmune que permite reconocer elementos externos a dicho sistema (denominados antgenos) y activar los elementos internos del sistema (anticuerpos) para luchar contra dicho antgeno, as como mejorar el anticuerpo y memorizarlo para conseguir una defensa contra el antgeno ms rpida y ms precisa en un futuro (adaptabilidad y maduracin del sistema inmune). La implementacin de la tcnica de seleccin clonal en un algoritmo est basada en las caractersticas principales del

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    4

    sistema natural (reconocimiento, seleccin, clonacin y maduracin), por lo que los algoritmos que se van a utilizar en el presente trabajo controlarn la interaccin entre los componentes del sistema inmune (en nuestro caso, los elementos clasificadores) y los antgenos externos (los patrones que se quieren clasificar). Es decir, el conjunto de anticuerpos que desarrollarn los algoritmos utilizados ser utilizado para clasificar los patrones de los dominios que sean presentados al sistema. Se van a utilizar dos algoritmos diferentes que implementan la tcnica de seleccin clonal: por una parte, el algoritmo CLONALG, que es uno de los ms utilizados por los SIAs para la resolucin de problemas de muy diversos tipos, y por otra parte, el algoritmo CSCA (Clonal Selection Classification Algorithm), una evolucin de CLONALG desarrollada para su aplicacin en problemas de clasificacin, como los que nos ocupan en este trabajo. En apartados posteriores se detallarn ambos algoritmos en mayor profundidad. El criterio principal que se utilizar para evaluar el comportamiento de los algoritmos utilizados en los problemas de clasificacin ser la tasa de acierto que presenta cada algoritmo en cada dominio probado, ya que el objetivo que se persigue es conseguir mejoras en la clasificacin que realizan otros algoritmos clsicos; sin embargo, tambin es importante prestar atencin al consumo de recursos de los algoritmos utilizados (fundamentalmente el tiempo de ejecucin), ya que aunque se consigan mejoras, si el tiempo de ejecucin es elevado habr que analizar la conveniencia de utilizar cada algoritmo en un momento concreto, o en un dominio de clasificacin en particular.

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    5

    2. Fundamentos tericos

    2.1. El sistema inmune y la teora de seleccin clonal

    El sistema inmune de los vertebrados est compuesto por un conjunto de procesos que protegen al organismo de enfermedades mediante la identificacin y eliminacin de clulas patgenas y cancerosas. Aunque el sistema inmunitario est compuesto por

    varias capas (fsicas, como piel y mucosas, bioqumicas, como saliva, sudor o lgrimas, inmunes innatas e inmunes adquiridas o adaptivas), as como por muchos tipos de clulas, en este trabajo nos interesan el sistema inmune innato, ya que es el que inicia y controla la respuesta adaptativa, y el sistema inmune adquirido, ya que se ocupa de reaccionar ante los antgenos y de recordar los ataques que se han producido para mejorar la respuesta inmune en posibles ataques futuros. Asimismo, las clulas ms importantes en lo que se refiere al tema que se est tratando son los leucocitos o glbulos blancos, en concreto los linfocitos (pertenecientes al sistema adaptativo). Cuando un agente infeccioso entra en el cuerpo y los mecanismos de las capas anteriores son incapaces de detener la infeccin, los linfocitos se ocupan de la respuesta inmune: el agente infeccioso es presentado a los linfocitos de tipo T (o clulas T), que a su vez activan a los linfocitos de tipo B (o clulas B) para producir anticuerpos (especficos para cada uno de los agentes infecciosos). Adems de producir los anticuerpos, las clulas B recuerdan la respuesta inmune realizada para determinado agente externo para cuando se repita una intrusin. En lo que se refiere a la teora de la seleccin clonal, sus propiedades fundamentales son las siguientes:

    Seleccin negativa: Existe un conjunto de linfocitos que se ocupan de reconocer patrones antignicos que pertenecen al propio organismo. Estos linfocitos han de ser reconocidos y eliminados en fases tempranas del desarrollo del organismo, para evitar que se produzcan ataques a clulas propias, reconocindolas como ajenas (base de las enfermedades auto-inmunes).

    Expansin clonal: Se basa en la proliferacin y maduracin de clones cuando se produce un contacto entre linfocitos y antgenos (se detecta la presencia de elementos externos infecciosos).

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    6

    Monoespecificidad: Se refiere al reconocimiento de cada antgeno por un linfocito diferente.

    Hipermutacin somtica: A la hora de realizar clonaciones de anticuerpos generados para luchar contra una infeccin, se producen cambios genticos aleatorios en dichos anticuerpos para conseguir mejores respuestas inmunes.

    Como ya se ha dicho, el proceso de seleccin clonal comienza en fases tempranas del desarrollo de un organismo, mediante la eliminacin de linfocitos reconocedores de clulas propias para evitar el desarrollo de enfermedades auto-inmunes (auto-tolerancia). En etapas posteriores del sistema inmune, cuando el antgeno entra en contacto con los receptores de un linfocito maduro, la clula se activa y se replica para hacer frente a la infeccin. Los clones que se generan, se diferencias en clulas efectoras, y clulas de memoria. Por tanto, se puede decir que los conceptos fundamentales del proceso de seleccin clonal son dos: por un lado, el aprendizaje, conseguido mediante la exposicin repetida a los antgenos, el incremento de las poblaciones de anticuerpos (clonacin), y la maduracin de la afinidad de dichos anticuerpos (mutacin); por otro lado la memoria, representada por la presencia en el organismo de linfocitos de larga vida que se encuentran en reposo, esperando la posibilidad de volver a participar en una respuesta inmune si se produce una infeccin con el mismo antgeno en el futuro. Las mutaciones que se producen en los anticuerpos dentro del proceso de maduracin de la afinidad persiguen mejorar la capacidad de ataque de un anticuerpo a un antgeno, mejorando as la respuesta inmune.

    2.2. Algoritmo CLONALG

    El algoritmo CLONALG, que se explica con profundidad en (Brownlee, 2005), fue desarrollado inicialmente por (De Castro, 2000), con el nombre de CSA, y renombrado ms tarde en (De Castro, 2002) como CLONALG. Su objetivo fundamental es el desarrollo de un conjunto de anticuerpos, cada uno de los cules representa una parte de la solucin, o una solucin concreta a un problema compuesto por elementos representados por los antgenos. Los aspectos que se imitan de la teora de seleccin clonal son: el mantenimiento de un conjunto de memoria (anticuerpos resultantes), la seleccin y clonacin de los mejores anticuerpos, y la eliminacin de anticuerpos que no

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    7

    funcionan correctamente, la maduracin de la afinidad mediante la mutacin de anticuerpos, la reseleccin de los mejores clones y el mantenimiento de la diversidad de anticuerpos. Los pasos a seguir por el algoritmo se exponen a continuacin:

    1. Inicializacin: Se prepara un conjunto aleatorio de N anticuerpos, el cul estar dividido en dos subconjuntos, uno denominado m que almacena la memoria de anticuerpos (al final del algoritmo representar la solucin), y un subconjunto r utilizado para incluir diversidad al sistema.

    2. Bucle: Una generacin finaliza cuando se ha ejecutado el bucle para todos los antgenos disponibles. Se pueden ejecutar tantas generaciones como el usuario configure.

    a. Seleccin de antgeno: Se selecciona aleatoriamente un antgeno, sin reemplazo para la presente generacin (ya no se vuelve a seleccionar en esta generacin).

    b. Exposicin: Se presenta el antgeno a todos los anticuerpos presentes y se mide la afinidad de cada uno con el antgeno (normalmente con distancias de Hamming).

    c. Seleccin: Se seleccionan aqullos anticuerpos que presentan mayor afinidad con el antgeno.

    d. Clonacin: Se clonan los anticuerpos seleccionados de forma directamente proporcional a la afinidad (a mayor afinidad, mayor nmero de clones).

    e. Maduracin de la afinidad: Se mutan los clones de forma inversamente proporcional a la afinidad (a mayor afinidad, menor grado de mutacin).

    f. Exposicin de clones: Se presenta el antgeno a todos los clones generados y mutados, y se calcula la afinidad de cada uno.

    g. Candidatura: Se selecciona el anticuerpo o anticuerpos con mayor afinidad, y se incluye en m, sustituyendo a aqullos que ocupasen sus mismas posiciones en el conjunto m en caso de presentar mayor valor de afinidad.

    h. Reemplazo: Los elementos con menor afinidad de los restantes en r se sustituyen por anticuerpos aleatorios.

    3. Finalizacin: El conjunto m contiene la solucin al problema.

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    8

    Los parmetros ms importantes del algoritmo CLONALG son: El nmero de anticuerpos que componen el conjunto inicial (N), as como los valores para m y r, el nmero de anticuerpos que se seleccionan en el paso 2c (n), que define la presin que tienen los anticuerpos para conseguir buenos clones en tiempo reducido (a menor nmero n, mayor presin), el nmero total de anticuerpos a sustituir en el paso 2h (d), que define la diversidad que se introduce en el sistema en cada paso (a mayor d, mayor diversidad), el factor clonal (), que escala el nmero de clones que se generan en el paso 2d, y por ltimo el nmero de generaciones (G). Hay que controlar el problema del sobreaprendizaje para valores muy altos de G.

    2.3. Algoritmo CSCA

    El algoritmo CSCA (Clonal Selection Classification Algorithm) (Brownlee, 2005), ms orientado a la aplicacin de seleccin clonal para clasificacin, persigue el objetivo de maximizar la ratio entre la tasa de patrones clasificados correctamente y la tasa de clasificados incorrectamente. Desde este punto de partida, lo que consigue el algoritmo es transformar un problema de clasificacin en uno de optimizacin de funciones, en el que lo ms importante es establecer el fitness a partir del nmero de instancias clasificadas correcta e incorrectamente, lo cul se consigue exponiendo el conjunto de anticuerpos a un subconjunto especfico (particin) de antgenos o patrones de aprendizaje. 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 antgenos. En este caso, existen tres acciones diferentes que se pueden realizar, antes de pasar a clonar y madurar (mutar) los anticuerpos:

    Los anticuerpos que presentan cero patrones clasificados correctamente, y ms de uno incorrectamente, son modificados de tal forma que su clase ahora ser aqulla para la cul ha conseguido ms clasificaciones correctas, y posteriormente se recalcula el fitness.

    Los anticuerpos que presentan un fitness menor que un determinado umbral, son eliminados del conjunto de anticuerpos, y no participan en la clonacin y la maduracin.

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    9

    Los anticuerpos que no presentan errores (patrones clasificados incorrectamente), no participan en la clonacin y la maduracin, aunque no son eliminados del conjunto de anticuerpos.

    Los pasos seguidos por el algoritmo CSCA son los siguientes:

    1. Inicializacin: El conjunto inicial de anticuerpos se rellena con un S elementos tomados de la poblacin inicial de antgenos, de forma aleatoria y sin reemplazo.

    2. Bucle: Se repiten los siguientes pasos para G generaciones. a. Seleccin y poda: Se expone toda la poblacin de anticuerpos al

    conjunto de antgenos, se calcula el fitness, se selecciona todo el conjunto, y se poda de la siguiente forma:

    i. Los anticuerpos con tasa de clasificaciones incorrectas igual a cero se eliminan del conjunto seleccionado.

    ii. Los anticuerpos con tasa de clasificaciones correctas igual a 0, y clasificaciones incorrectas mayor que cero, se modifican cambiando su clase a aqulla mayoritaria en las clasificaciones realizadas, y se recalcula el fitness.

    iii. Los anticuerpos cuyo fitness es menor que un umbral son eliminados del conjunto seleccionado y del conjunto base de anticuerpos.

    b. Clonacin y mutacin: Se realiza de forma proporcional a los valores de fitness, de la misma manera que en CLONALG.

    c. Insercin: Los clones generados se insertan en la poblacin general de anticuerpos. Se insertan tambin nuevos antgenos de forma aleatoria, para completar el conjunto de anticuerpos.

    3. Poda final: Se realiza una ltima exposicin del conjunto de anticuerpos, evaluacin del fitness y poda.

    4. Clasificacin: Se clasifica el conjunto de antgenos contra el conjunto de anticuerpos resultante del algoritmo, utilizando una estrategia KNN, es decir, se seleccionan los K anticuerpos con mayor afinidad para cada antgeno, y la clase mayoritaria de dicha seleccin es asignada al antgeno (instancia).

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    10

    Existen dos maneras principales de evitar que el conjunto final de anticuerpos se reduzca a una duplicacin de un subconjunto de antgenos (debido a que el conjunto de anticuerpos se inicializa con antgenos):

    Lmite en el nmero de generaciones (G): Permite al usuario definir el nivel de adaptacin deseado para un determinado dominio, y establecer un criterio de parada. Es decir, es necesario establecer un nmero suficiente para conseguir un buen aprendizaje, pero sin sufrir sobreaprendizaje. Umbral mnimo de fitness (): Permite eliminar aquellos elementos que no son tiles para el sistema; su efecto es predecible y obvio para una poblacin de anticuerpos dada.

    2.4. Algoritmos y dominios de clasificacin

    Existen multitud de algoritmos de clasificacin, que adems han sufrido diversas clasificaciones para adecuarse a los dominios especficos para los que se han utilizado. Sin embargo, en este trabajo se va a utilizar como base para comparar el funcionamiento de CLONALG y CSCA sobre dominios de clasificacin, el algoritmo de KNN (K-Nearest Neighbours), ya que se trata de uno de los algoritmos ms clsicos utilizado para la realizacin de tareas de clasificacin en diversos dominios. El algoritmo KNN se basa, principalmente, en seleccionar la clase de un patrn que se quiere clasificar, a partir de aquellos patrones ms cercanos al nuestro, de los cules conocemos su clase, es decir, ser necesario computar la distancia del patrn a clasificar a cada uno de los ejemplos de los que disponemos, para posteriormente seleccionar aqullos ejemplos mas cercanos a nuestro patrn, y en funcin de sus clases, asignar una clase a dicho patrn.

    Por tanto, los parmetros fundamentales para el algoritmo KNN son, por una parte, el nmero de vecinos a considerar (K), de tal forma que cuando se selecciona un nico vecino se habla del algoritmo del vecino ms cercano (Nearest Neighbour Algorithm), y por otra parte la medida de la distancia entre dos patrones. Normalmente, cuando se utilizan datos numricos, se utiliza la distancia Eucldea:

    =

    =

    p

    r

    jrirji xxxxd1

    2)(),(

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    11

    Donde xi y xj son dos patrones y p es el nmero total de atributos de los patrones. Por tanto, la distancia Eucldea nos dar una medida de similitud entre dos ejemplos distintos. No obstante, existen muchas posibles variaciones para calcular la distancia entre dos ejemplos en KNN, como por ejemplo la utilizacin de la distancia de Chebyshev o de Mahalanobis. Adems, existen trabajos (Valls, 2009) que buscan aumentar el porcentaje de acierto de algoritmos de clasificacin clsicos, como KNN, mediante la modificacin directa de los patrones a medida que entran en el clasificador, a travs de una matriz de transformacin que permita, una vez modificados los datos, la utilizacin de la distancia Eucldea para determinar la clase a la que ha de pertenecer el patrn. En lo que se refiere a los dominios de clasificacin, se pueden encontrar multitud de datos en Internet para utilizarlos en experimentos de clasificacin; en concreto, los dominios que se van a utilizar en el presente trabajo, se han extrado de la base de datos del UCI Machine Learning Repository (www.ics.uci.edu/~mlearn), y se explicarn en apartados posteriores.

    2.5. Validacin cruzada

    La tcnica de validacin cruzada es ampliamente utilizada en multitud de algoritmos de aprendizaje supervisado, en los que es necesario, por una parte, realizar un entrenamiento del algoritmo cuyo rendimiento se quiere analizar, y por otra, tener una serie de valores de test para comprobar que una vez realizado dicho aprendizaje, el algoritmo funciona para otros ejemplos que no han sido nunca vistos por el algoritmo (es decir, que al generalizar el algoritmo sigue funcionando correctamente). Esta tcnica se basa en la divisin del conjunto de ejemplos inicial en una serie de subconjuntos (tpicamente 10), intentando mantener una aleatoriedad lo ms alta posible en lo que se refiere a los ejemplos que se incluyen en cada subconjunto. Una vez dividido el conjunto inicial de ejemplos, se realizarn tantos experimentos como subconjuntos se hayan obtenido, utilizando en cada experimento un porcentaje de los subconjuntos para entrenamiento del algoritmo, y el resto para test o validacin. Por ejemplo, si se ha dividido el conjunto de ejemplos en 10 subconjuntos, lo ms tpico es utilizar, en cada experimento (10 en total), 9 de los subconjuntos para entrenar el algoritmo, y uno para validarlo.

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    12

    Una vez que se han realizado todos los experimentos, los resultados del algoritmo se obtendrn computando la media de la tasa de acierto y fallo en aprendizaje y en validacin de todos los experimentos realizados.

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    13

    3. Descripcin de la solucin

    3.1. Dominios utilizados

    Como ya se ha indicado anteriormente, los dominios que se han utilizado para la realizacin del presente trabajo se han extrado del repositorio UCI (UCI Machine Learning Repository). A continuacin se exponen en detalle sus nombres y sus caractersticas:

    Dominio Bupa: Se trata de un dominio utilizado para dividir un grupo de personas en dos clases, aqullos que presentan problemas de hgado y aqullos que no, basndose en una serie de caractersticas y resultados mdicos. El dominio posee 6 atributos, y 2 posibles clases. Los atributos son: 1. Volumen corpuscular medio. 2. Fosfatasa alcalina.

    3. Aminotransferasa alanina. 4. Aminotransferasa de aspartato. 5. Gamma-glutamil transpeptidasa. 6. Nmero de bebidas alcohlicas ingeridas al da (la unidad se corresponde

    con media pinta). En total existen 345 patrones diferentes, 145 pertenecientes a la clase 1, y 200 pertenecientes a la clase 2.

    Dominio Car: Dominio que trata de la evaluacin de coches a partir de una serie de atributos representativos. Existen 6 atributos y 4 posibles clases. Los atributos son los siguientes:

    1. Precio de compra (muy alto, alto, medio y bajo). 2. Precio de mantenimiento (muy alto, alto, medio y bajo). 3. Nmero de puertas (2, 3, 4, 5 o ms). 4. Nmero de personas que caben en el coche (2, 4 o ms). 5. Tamao del maletero (pequeo, mediano o grande). 6. Seguridad (baja, media o alta).

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    14

    Se dispone de 1728 patrones, de los cules 1210 pertenecen a la clase unacc, 384 a la clase acc, 69 a la clase good y 65 a la clase vgood.

    Dominio Diabetes: Contiene informacin para determinar si una mujer tiene diabetes o no (2 clases diferentes) a partir de los siguientes 7 atributos: 1. Nmero de veces embarazada. 2. Concentracin de glucosa en plasma. 3. Presin sangunea diastlica. 4. Grosor de la piel que envuelve el trceps. 5. Resistencia a la insulina (2-hour serum insulin). 6. ndice de masa corporal. 7. Funcin de diabetes (Diabetes pedigree function). 8. Edad. De un total de 768 instancias, 268 pertenecen a la clase 1 (test positivo para diabetes) y 500 a la clase 0 (test negativo para diabetes).

    Dominio Ionosphere: El dominio Ionosphere permite averiguar si una serie de pulsos electromagnticos enviados a la ionosfera son devueltos al origen, es decir, rebotan en la ionosfera, lo cul indica presencia de estructuras de electrones libres, o por el contrario continan adelante y no son captadas de vuelta por un radar, lo que indica la ausencia de dichos electrones libres. Se utilizan 17 pulsos magnticos, cada uno de ellos con 2 parmetros diferentes, por lo que cada instancia del dominio contiene 34 atributos distintos (los cules no se van a exponer en detalle). La clase puede ser 0, en caso de que la emisin electromagntica no rebote y se pierda, y 1 si la emisin rebota en la ionosfera. De un total de 351 instancias, 225 pertenecen a la clase 1 (los pulsos se registran de vuelta en el radar), y 126 pertenecen a la clase 0 (los pulsos se pierden).

    Dominio Iris: Se trata de un dominio utilizado para clasificar plantas de la familia Iris. Existen tres clases diferentes de esta planta: Iris Setosa, Iris Versicolour e Iris Virginica. Los atributos utilizados son los siguientes: 1. Longitud del spalo en cm. 2. Anchura del spalo en cm.

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    15

    3. Longitud del ptalo en cm. 4. Anchura del ptalo en cm. Se dispone de 150 ejemplos, de los cules 50 pertenecen a cada una de las clases.

    Dominio Wine: Este dominio analiza 13 atributos diferentes de vinos cultivados en la misma regin de Italia, pero en zonas diferentes y por personas diferentes. Los atributos son: 1. Alcohol.

    2. cido mlico. 3. Ceniza. 4. Alcalinidad de la ceniza. 5. Magnesio. 6. Fenoles totales. 7. Flavanoides. 8. Fenoles no flavanoides. 9. Proantocianidinas. 10. Intensidad del color. 11. Matiz.

    12. Medidores OD280/OD315 de vinos diluidos. 13. Prolina. De los 178 ejemplos totales, 59 pertenecen a la clase 1, 71 a la clase 2 y 48 a la clase 3.

    Adems de estos dominios extrados de Internet, se han utilizado dos dominios artificiales, es decir, creados especficamente para su utilizacin en este trabajo:

    Dominio aleatorio sencillo: El primer dominio consta nicamente de dos atributos y de dos clases, de tal manera que se puede representar en un grfico de dispersin de dos dimensiones, donde el eje de abscisas representa los valores del primer atributo, mientras que el eje de ordenadas representa los valores del segundo atributo. Las clases se representan mediante el color de los puntos.

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    16

    Figura 1: Dominio aleatorio sencillo

    Dominio aleatorio modificado: Se va a utilizar un segundo dominio aleatorio, cuyos dos primeros atributos son los mismos, y con los mismos valores, que los utilizados en el dominio anterior, pero que adems aade dos atributos ms, de un rango de valores mucho mayor, lo que provoca que los valores de los datos estn mucho ms dispersos. El objetivo de este dominio es observar si el algoritmo consigue anular estos dos atributos que slo incluyen ruido, y permitir as una correcta clasificacin. En ambos dominios habr un total de 300 instancias de datos, 150 pertenecientes a cada clase.

    3.2. Descripcin del programa utilizado

    Para la realizacin de los experimentos se ha utilizado el programa WEKA, disponible gratuitamente en la web www.cs.waikato.ac.nz/ml/weka/, y ms concretamente un plug-in disponible en http://wekaclassalgos.sourceforge.net, denominado WEKA classification algorithms, que presenta implementaciones especficas de los siguientes algoritmos:

    Algoritmos inmunes:

    o Airs: AIRS1, AIRS2 y AIRS2Parallel.

    o ClonalG: CLONALG y CSCA.

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    17

    o Immunos: Immunos1, Immunos2 e Immunos99.

    Algoritmos neurales:

    o LVQ: HierarchicalLVQ, LVQ1, LVQ2_1, LVQ3, MultipassLVQ, MultipasSOM, OLVQ1, OLVQ3 y SOM.

    o Perceptrn multicapa: BackPropagation, BoldDriverBackPropagation. o Perceptrn simple: Perceptron, WidrowHoff.

    Algoritmos basados en reglas: o ZeroR.

    Por tanto, se escogern los dos algoritmos que nos interesan: CLONALG y CSCA. Los parmetros de configuracin de CLONALG se exponen en la siguiente figura:

    Figura 2: Parmetros configurables de CLONALG

    Como se observa en la figura, se pueden modificar los siguientes parmetros: tamao del conjunto de anticuerpos, factor clonal, nmero de generaciones, ratio de memoria del conjunto de anticuerpos, semilla inicial, nmero de anticuerpos a seleccionar tras evaluar la afinidad y reemplazo total. En los dominios utilizados se han mantenido todos los valores por defecto (que son los que se muestran en la figura), excepto el

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    18

    atributo antibodyPoolSize (tamao del conjunto de anticuerpos inicial), que se ha modificado entre 20 y 30 en funcin del tamao del dominio utilizado, sin que esto haya supuesto grandes diferencias en los resultados obtenidos, as como el nmero de generaciones para evaluar las diferencias en los resultados. A continuacin se exponen los parmetros configurables del algoritmo CSCA:

    Figura 3: Parmetros configurables de CSCA

    Los parmetros configurables, en este caso, son: valor de K para el algoritmo KNN utilizado en la clasificacin final, factor clonal, tamao de la poblacin inicial, umbral mnimo de fitness, nmero de particiones, semilla y generaciones totales. En este algoritmo se han variado casi todos los parmetros posibles, 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. Es decir, no se han mejorado los resultados obtenidos con la configuracin por defecto.

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    19

    4. Experimentacin y resultados

    En este apartado se expondrn los diversos experimentos realizados, as como los resultados obtenidos en cada uno de ellos, y su comparacin con los resultados del algoritmo KNN aplicado a cada uno de los dominios utilizados. Como ya se ha citado anteriormente, se utilizar una validacin cruzada de 10 campos, es decir, el conjunto inicial de ejemplos se dividir en 10 subconjuntos, y se realizarn diez entrenamientos y validaciones para cada experimento, utilizando cada vez un subconjunto diferente para test, y los otros nueve para aprendizaje. Por tanto, los resultados obtenidos sern la media de cada una de las ejecuciones de dicha validacin cruzada. Hay que destacar que los resultados para KNN se han extrado del artculo (Valls, 2009).

    4.1. Experimento 1: Dominio Aleatorio Sencillo

    El primer experimento se realiza con el dominio aleatorio sencillo, que como ya se ha explicado, consiste en un conjunto de puntos que se pueden representar en dos dimensiones. Estos puntos estn separados por una lnea imaginaria que sigue la ecuacin y = x, de tal forma que, si el primer atributo es la coordenada x y el segundo la y, los puntos situados por debajo de la lnea (x es mayor que y) pertenecen a la clase 1, mientras que los puntos situados por encima de la lnea (y es mayor que x) pertenecen a la clase 0.

    A continuacin se muestran los resultados obtenidos, tanto en lo que se refiere a las tasas de acierto como al tiempo de ejecucin de cada algoritmo:

    KNN CLONALG CSCA Tasa de acierto 98% 88% 95,33%

    Tiempo de ejecucin 0,2 seg. 0,95 seg. 1,69 seg.

    Tabla 1: Resultados del Dominio Aleatorio Sencillo

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    20

    4.2. Experimento 2: Dominio Aleatorio Modificado

    En este dominio se utilizan los mismos atributos que en el anterior, pero adems se aaden dos atributos ms que nicamente incluyen ruido, es decir, que no aportan ninguna informacin.

    Los resultados obtenidos para este dominio se ilustran en la siguiente tabla:

    KNN CLONALG CSCA Tasa de acierto 50,03% 51% 56%

    Tiempo de ejecucin 0,23 seg. 1,05 seg. 3,97 seg.

    Tabla 2: Resultados del Dominio Aleatorio Modificado

    Como se puede observar, los algoritmos CLONALG y CSCA mejoran ligeramente los resultados obtenidos por KNN, aunque no se trata de mejoras muy significativas, ya que los porcentajes de acierto son todava muy bajos. Adems, los algoritmos inmunes tardan ms tiempo en ejecutarse que KNN.

    4.3. Experimento 3: Dominio Bupa

    El dominio Bupa tambin presenta dos posibles clases para los patrones, 1 y 2, en funcin de si el paciente presenta enfermedades hepticas o no. Los resultados obtenidos por los algoritmos probados para el dominio Bupa son los siguientes:

    KNN CLONALG CSCA Tasa de acierto 62,20% 57,10% 63,19%

    Tiempo de ejecucin 0,17 seg. 1,45 seg. 5,43 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, mientras que el algoritmo CSCA s que la mejora, pero muy ligeramente, por lo que los resultados siguen siendo poco satisfactorios. Al igual

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    21

    que en experimentos anteriores, los algoritmos inmunes tardan ms tiempo que el algoritmo de KNN.

    4.4. Experimento 4: Dominio Car

    En el caso del dominio Car, al existir ms instancias, es posible que los tiempos de ejecucin de los algoritmos aumenten. Los resultados obtenidos para este dominio son los siguientes:

    KNN CLONALG CSCA Tasa de acierto 87,47% 70,72% 81,37%

    Tiempo de ejecucin 1,47 seg. 5,05 seg. 157,03 seg.

    Tabla 4: Resultados del Dominio Car

    Como se puede observar, ninguno de los dos algoritmos analizados es capaz de mejorar la tasa de acierto obtenida por el algoritmo KNN; adems, aunque el tiempo de ejecucin de CLONALG aumenta, es muy reseable el aumento de dicho tiempo de ejecucin que experimenta el algoritmo CSCA, ms de 100 veces mayor que el de KNN.

    4.5. Experimento 5: Dominio Diabetes

    El dominio diabetes presenta tambin un elevado nmero de instancias, por lo que los tiempos de ejecucin se pueden ver perjudicados.

    KNN CLONALG CSCA Tasa de acierto 70,18% 66,67% 72,14%

    Tiempo de

    ejecucin 0,77 seg. 2,60 seg. 29,49 seg.

    Tabla 5: Resultados del Dominio Diabetes

    Observamos que nicamente CSCA puede mejorar ligeramente la tasa de acierto obtenida por KNN para este dominio, mientras que CLONALG obtiene una tasa de

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    22

    acierto menor. Asimismo, tal y como se pensaba, el tiempo de ejecucin de CSCA aumenta significativamente por el nmero de instancias presentes en el dominio.

    4.6. Experimento 6: Dominio Ionosphere

    El dominio Ionosphere presenta 34 atributos y dos clases posibles, mientras que el nmero de instancias no es muy elevado (351). Los resultados obtenidos por los algoritmos analizados son los siguientes:

    KNN CLONALG CSCA Tasa de acierto 86,32% 68,66% 87,75%

    Tiempo de ejecucin 0,32 seg. 2,88 seg. 11,51 seg.

    Tabla 6: Resultados del Dominio Ionosphere

    El algoritmo CLONALG no consigue mejorar la tasa de acierto obtenida por KNN, cosa que s consigue CSCA aunque con una mejora muy pequea. El nmero de atributos elevado tambin influye en el tiempo de ejecucin de CSCA, que es bastante mayor que el de KNN y CLONALG.

    4.7. Experimento 7: Dominio Iris

    El dominio iris presenta 3 posibles clases, 0, 1 y 2, pocas instancias (150) y pocos atributos (4), por lo que los tiempos de ejecucin no deberan ser muy elevados. Los resultados obtenidos son los siguientes:

    KNN CLONALG CSCA Tasa de acierto 95,87% 95,33% 95,33%

    Tiempo de

    ejecucin 0,06 seg. 0,58 seg. 0,91 seg.

    Tabla 7: Resultados del Dominio Iris

    Los resultados obtenidos por los tres algoritmos son muy similares y, en general, bastante satisfactorios. En lo que se refiere al tiempo de ejecucin, al tratarse de pocas

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    23

    instancias y atributos, los tiempos son bastante bajos, aunque KNN sigue presentando el tiempo de ejecucin ms reducido de todos.

    4.8. Experimento 8: Dominio Wine

    Para el ltimo experimento se utiliza el dominio Wine, que presenta 3 posibles clases, 1, 2 y 3, pocas instancias (178) y bastantes atributos (13). Los resultados obtenidos por los algoritmos analizados para el dominio Wine son los siguientes:

    KNN CLONALG CSCA Tasa de acierto 76,38% 70,22% 73,03%

    Tiempo de

    ejecucin 0,17 seg. 0,98 seg. 1,94 seg.

    Tabla 8: Resultados del Dominio Wine

    4.9. Grficas comparativas

    A continuacin se muestran dos grficas: la primera compara la tasa de acierto en validacin conseguida con CLONALG y CSCA frente a la tasa de acierto que consigue el algoritmo KNN para cada uno de los dominios utilizados, y las otra compara el tiempo de ejecucin del algoritmo KNN, el de CLONALG y el de CSCA:

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    24

    Tasas de acierto

    0,00%10,00%20,00%30,00%40,00%50,00%60,00%70,00%80,00%90,00%

    100,00%

    Aleato

    rio

    Senc

    illo

    Aleato

    rio

    Modifi

    cado

    Bupa Ca

    r

    Diabe

    tes

    Ionos

    pher

    e Iris Wine

    KNNCLONALGCSCA

    Figura 4: Comparativa entre las tasas de acierto (KNN, CLONALG y CSCA)

    Tiempos de ejecucin (segundos)

    0,0020,0040,0060,0080,00

    100,00120,00140,00160,00180,00

    Aleato

    rio

    Senc

    illo

    Aleato

    rio

    Modifi

    cado

    Bupa Ca

    r

    Diabe

    tes

    Ionos

    pher

    e Iris Wine

    KNNCLONALGCSCA

    Figura 5: Comparativa entre los tiempos de ejecucin (KNN, CLONALG y CSCA)

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    25

    5. Conclusiones

    De todos los resultados extrados de los experimentos que se han realizado en el presente trabajo, 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 clasificacin muy diferentes sin modificacin de sus parmetros, obteniendo resultados similares a otros algoritmos de clasificacin ms clsicos, como se puede observar por los resultados obtenidos, ninguno de los dos algoritmos utilizados mejora sensiblemente las tasas de acierto de dichos algoritmos clsicos (KNN).

    El algoritmo CLONALG slo ha conseguido mejorar la tasa de acierto ofrecida por KNN en un dominio (Aleatorio Modificado), y se trata del dominio para el que KNN funcionaba peor de todos los que se han utilizado; adems, la mejora que ha conseguido CLONALG es nicamente de un 1%. Para el resto de los dominios, observamos que el uso de CLONALG no es recomendable, ya que no consigue mejorar las tasas de acierto ni los tiempos de ejecucin.

    El algoritmo CSCA mejora las tasas de acierto conseguidas por KNN en los dominios Aleatorio Modificado, Bupa, Diabetes e Ionosphere, consigue resultados ms o menos similares en Iris, y no consigue mejorar las tasas de acierto en Aleatorio Sencillo ni en Wine. Adems, en los casos en los que existe mejora, esta es muy pequea, de entre el 1% y el 2%, salvo en Aleatorio Modificado, en el que la mejora es del 6%, aunque como ya se ha dicho se trata del dominio para el que peor se comporta KNN. Adems, analizando los tiempos de ejecucin del algoritmo, se observa que CSCA tarda siempre ms que KNN en obtener la solucin, por lo que tampoco se recomendara especialmente la utilizacin de CSCA por encima de otros algoritmos clsicos de clasificacin.

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    26

    Los tiempos de ejecucin aumentan, para CLONALG y CSCA de forma proporcional al nmero de instancias del dominio y al nmero de atributos, aunque las mejoras obtenidas por los algoritmos (en los casos en que se producen) no tienen ninguna relacin con el tiempo de ejecucin del algoritmo.

    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, al final, la forma de extraer medidas de afinidad y de fitness en estos algoritmos de seleccin clonal es la comparacin y el clculo de distancias entre patrones, es decir, la misma tcnica que se utiliza en KNN, por lo que si la base de los algoritmos es similar, es lgico que stos arrojen resultados similares.

    Otro tipo de tcnicas, como por ejemplo la programacin automtica, la generacin de programas matemticos que obtienen una funcin para clasificar cada patrn del dominio, han demostrado funcionar bastante mejor que los algoritmos clsicos de clasificacin para estos mismos dominios, ya que abordan el problema desde un enfoque diferente, buscando relaciones matemticas entre los atributos de un dominio y no slo utilizando medidas de similitud entre los patrones de dicho dominio.

  • Aplicacin de algoritmos de seleccin clonal en problemas de clasificacin Computacin No Convencional. Curso 2009/2010

    27

    6. Referencias

    Valls, J.M. y Aler, R.: Optimizing Linear and Quadratic Data Transformations for Classification Tasks. ISDA 09. Ninth International Conference on Intelligent Systems Design and Applications, 2009.

    Cruz, N. y Coello, C.A.: Optimizacin Multiobjetivo Utilizando el Principio de Seleccin Clonal del Sistema Inmune. 9 Conferencia de Ingeniera Elctrica, Mxico, D.F., 2003.

    Brownlee, J.: Clonal Selection Theory & CLONALG. The Clonal Selection

    Classification Algorithm (CSCA). Technical Report. Swinburne University of Technology (SUT), 2005.

    De Castro, L.N. y Von Zuben, F.J.: The Clonal Selection Algorithm with Engineering Applications. GECCO 2000, Workshop on Artificial Immune Systems and Their Applications, Las Vegas, USA, 2000.

    De Castro, L.N. y Von Zuben, F.J.: Learning and Optimization Using the Clonal Selection Principle. IEEE Transactions on Evolutionary Computation, Special Issue on Artificial Immune Systems, 2002.