La programación genética es una técnica de computación evolutiva que evoluciona programas de computadora para resolver problemas. El documento describe los pasos de la programación genética, incluyendo la generación de una población inicial aleatoria de programas, la evaluación de su aptitud, y la evolución a través de la selección, el cruzamiento y la mutación. También presenta un estudio que usó programación genética para evolucionar un modelo de clasificación más preciso para diagnosticar una enfermedad cardíaca en comparación con los árboles de
Programación Genética: Introducción y Aspectos GeneralesJohn Diaz
La programación genética es una herramienta de la computación evolutiva que ha tenido un desarrollo relativamente reciente, principalmente con base en los trabajos de Koza a finales de los años 80’s e inicios de los 90’s. A diferencia de las otras técnicas se fundamenta en la evolución de programas, un concepto llamado inducción de programación o programación automática. Su implementación consta de cinco pasos: 1) selección de terminales, 2) selección de las funciones, 3) identificación de la función de evaluación, 4) selección de los parámetros del sistema y 5) selección de la condición de terminación. La estructura subyacente a la evolución es estructurada jerárquicamente. La población inicial está compuesta de árboles de programas construidos aleatoriamente que son llevados al proceso de evolución: evaluación, selección, reproducción, entrecruzamiento y mutación hasta llegar a la condición de terminación.
Probability for Machine Learning
Here is a scant introduction to an important subject in Machine Learning. However, we are looking to work with our Probability Professor, Ofelia Begovich to write a series of notes in basic probability for something else, to improve this introduction. Nevertheless, there are still several things like:
1.- Linear Algebra
2.- Topology
3.- Mathematical Analysis
4.- Optimization
That need to be addressed, thus I am working in a class for intelligent systems for that.
A Deep Dive into Classification with Naive Bayes. Along the way we take a look at some basics from Ian Witten's Data Mining book and dig into the algorithm.
Presented on Wed Apr 27 2011 at SeaHUG in Seattle, WA.
Programación Genética: Introducción y Aspectos GeneralesJohn Diaz
La programación genética es una herramienta de la computación evolutiva que ha tenido un desarrollo relativamente reciente, principalmente con base en los trabajos de Koza a finales de los años 80’s e inicios de los 90’s. A diferencia de las otras técnicas se fundamenta en la evolución de programas, un concepto llamado inducción de programación o programación automática. Su implementación consta de cinco pasos: 1) selección de terminales, 2) selección de las funciones, 3) identificación de la función de evaluación, 4) selección de los parámetros del sistema y 5) selección de la condición de terminación. La estructura subyacente a la evolución es estructurada jerárquicamente. La población inicial está compuesta de árboles de programas construidos aleatoriamente que son llevados al proceso de evolución: evaluación, selección, reproducción, entrecruzamiento y mutación hasta llegar a la condición de terminación.
Probability for Machine Learning
Here is a scant introduction to an important subject in Machine Learning. However, we are looking to work with our Probability Professor, Ofelia Begovich to write a series of notes in basic probability for something else, to improve this introduction. Nevertheless, there are still several things like:
1.- Linear Algebra
2.- Topology
3.- Mathematical Analysis
4.- Optimization
That need to be addressed, thus I am working in a class for intelligent systems for that.
A Deep Dive into Classification with Naive Bayes. Along the way we take a look at some basics from Ian Witten's Data Mining book and dig into the algorithm.
Presented on Wed Apr 27 2011 at SeaHUG in Seattle, WA.
This Logistic Regression Presentation will help you understand how a Logistic Regression algorithm works in Machine Learning. In this tutorial video, you will learn what is Supervised Learning, what is Classification problem and some associated algorithms, what is Logistic Regression, how it works with simple examples, the maths behind Logistic Regression, how it is different from Linear Regression and Logistic Regression applications. At the end, you will also see an interesting demo in Python on how to predict the number present in an image using Logistic Regression.
Below topics are covered in this Machine Learning Algorithms Presentation:
1. What is supervised learning?
2. What is classification? what are some of its solutions?
3. What is logistic regression?
4. Comparing linear and logistic regression
5. Logistic regression applications
6. Use case - Predicting the number in an image
What is Machine Learning: Machine Learning is an application of Artificial Intelligence (AI) that provides systems the ability to automatically learn and improve from experience without being explicitly programmed.
- - - - - - - -
About Simplilearn Machine Learning course:
A form of artificial intelligence, Machine Learning is revolutionizing the world of computing as well as all people’s digital interactions. Machine Learning powers such innovative automated technologies as recommendation engines, facial recognition, fraud protection and even self-driving cars.This Machine Learning course prepares engineers, data scientists and other professionals with knowledge and hands-on skills required for certification and job competency in Machine Learning.
- - - - - - -
Why learn Machine Learning?
Machine Learning is taking over the world- and with that, there is a growing need among companies for professionals to know the ins and outs of Machine Learning
The Machine Learning market size is expected to grow from USD 1.03 Billion in 2016 to USD 8.81 Billion by 2022, at a Compound Annual Growth Rate (CAGR) of 44.1% during the forecast period.
- - - - - -
What skills will you learn from this Machine Learning course?
By the end of this Machine Learning course, you will be able to:
1. Master the concepts of supervised, unsupervised and reinforcement learning concepts and modeling.
2. Gain practical mastery over principles, algorithms, and applications of Machine Learning through a hands-on approach which includes working on 28 projects and one capstone project.
3. Acquire thorough knowledge of the mathematical and heuristic aspects of Machine Learning.
4. Understand the concepts and operation of support vector machines, kernel SVM, naive bayes, decision tree classifier, random forest classifier, logistic regression, K-nearest neighbors, K-means clustering and more.
5. Be able to model a wide variety of robust Machine Learning algorithms including deep learning, clustering, and recommendation systems
- - - - - - -
Introduction
What is ML, DL, AL?
Decision Tree
Definition
Why Decision Tree?
Basic Terminology
Challenges
Random Forest
Definition
Why Random Forest
How does it work?
Advantages & Disadvantages
Definition: According to Arthur Samuel (1950) “Machine Learning is a field of study that gives computers the ability to learn without being explicitly programmed”.
Machine learning is the study and design of algorithms which can learn by processing input (learning samples) data.
The most widely used definition of machine learning is that of Carnegie Mellon University Professor Tom Mitchell: “A computer program is said to learn from experience ‘E’, with respect to some class of tasks ‘T’ and performance measure ‘P’ if its performance at tasks in ‘T’ as measured by ‘P’ improves with experience ‘E’”.
Decision Tree
Definition
Why Decision Tree?
Basic Terminology
Challenges
Random Forest
Definition
Why Random Forest
How does it work?
Decision tree induction \ Decision Tree Algorithm with Example| Data scienceMaryamRehman6
This Decision Tree Algorithm in Machine Learning Presentation will help you understand all the basics of Decision Tree along with what Machine Learning is, what Machine Learning is, what Decision Tree is, the advantages and disadvantages of Decision Tree, how Decision Tree algorithm works with resolved examples, and at the end of the decision Tree use case/demo in Python for loan payment. For both beginners and experts who want to learn Machine Learning Algorithms, this Decision Tree tutorial is perfect.
ensemble methods use multiple learning algorithms to obtain better predictive performance than could be obtained from any of the constituent learning algorithms alone.
An ensemble is itself a supervised learning algorithm, because it can be trained and then used to make predictions. The trained ensemble, therefore, represents a single hypothesis. This hypothesis, however, is not necessarily contained within the hypothesis space of the models from which it is built.
This Logistic Regression Presentation will help you understand how a Logistic Regression algorithm works in Machine Learning. In this tutorial video, you will learn what is Supervised Learning, what is Classification problem and some associated algorithms, what is Logistic Regression, how it works with simple examples, the maths behind Logistic Regression, how it is different from Linear Regression and Logistic Regression applications. At the end, you will also see an interesting demo in Python on how to predict the number present in an image using Logistic Regression.
Below topics are covered in this Machine Learning Algorithms Presentation:
1. What is supervised learning?
2. What is classification? what are some of its solutions?
3. What is logistic regression?
4. Comparing linear and logistic regression
5. Logistic regression applications
6. Use case - Predicting the number in an image
What is Machine Learning: Machine Learning is an application of Artificial Intelligence (AI) that provides systems the ability to automatically learn and improve from experience without being explicitly programmed.
- - - - - - - -
About Simplilearn Machine Learning course:
A form of artificial intelligence, Machine Learning is revolutionizing the world of computing as well as all people’s digital interactions. Machine Learning powers such innovative automated technologies as recommendation engines, facial recognition, fraud protection and even self-driving cars.This Machine Learning course prepares engineers, data scientists and other professionals with knowledge and hands-on skills required for certification and job competency in Machine Learning.
- - - - - - -
Why learn Machine Learning?
Machine Learning is taking over the world- and with that, there is a growing need among companies for professionals to know the ins and outs of Machine Learning
The Machine Learning market size is expected to grow from USD 1.03 Billion in 2016 to USD 8.81 Billion by 2022, at a Compound Annual Growth Rate (CAGR) of 44.1% during the forecast period.
- - - - - -
What skills will you learn from this Machine Learning course?
By the end of this Machine Learning course, you will be able to:
1. Master the concepts of supervised, unsupervised and reinforcement learning concepts and modeling.
2. Gain practical mastery over principles, algorithms, and applications of Machine Learning through a hands-on approach which includes working on 28 projects and one capstone project.
3. Acquire thorough knowledge of the mathematical and heuristic aspects of Machine Learning.
4. Understand the concepts and operation of support vector machines, kernel SVM, naive bayes, decision tree classifier, random forest classifier, logistic regression, K-nearest neighbors, K-means clustering and more.
5. Be able to model a wide variety of robust Machine Learning algorithms including deep learning, clustering, and recommendation systems
- - - - - - -
Introduction
What is ML, DL, AL?
Decision Tree
Definition
Why Decision Tree?
Basic Terminology
Challenges
Random Forest
Definition
Why Random Forest
How does it work?
Advantages & Disadvantages
Definition: According to Arthur Samuel (1950) “Machine Learning is a field of study that gives computers the ability to learn without being explicitly programmed”.
Machine learning is the study and design of algorithms which can learn by processing input (learning samples) data.
The most widely used definition of machine learning is that of Carnegie Mellon University Professor Tom Mitchell: “A computer program is said to learn from experience ‘E’, with respect to some class of tasks ‘T’ and performance measure ‘P’ if its performance at tasks in ‘T’ as measured by ‘P’ improves with experience ‘E’”.
Decision Tree
Definition
Why Decision Tree?
Basic Terminology
Challenges
Random Forest
Definition
Why Random Forest
How does it work?
Decision tree induction \ Decision Tree Algorithm with Example| Data scienceMaryamRehman6
This Decision Tree Algorithm in Machine Learning Presentation will help you understand all the basics of Decision Tree along with what Machine Learning is, what Machine Learning is, what Decision Tree is, the advantages and disadvantages of Decision Tree, how Decision Tree algorithm works with resolved examples, and at the end of the decision Tree use case/demo in Python for loan payment. For both beginners and experts who want to learn Machine Learning Algorithms, this Decision Tree tutorial is perfect.
ensemble methods use multiple learning algorithms to obtain better predictive performance than could be obtained from any of the constituent learning algorithms alone.
An ensemble is itself a supervised learning algorithm, because it can be trained and then used to make predictions. The trained ensemble, therefore, represents a single hypothesis. This hypothesis, however, is not necessarily contained within the hypothesis space of the models from which it is built.
Podemos visualizar los tipos de algoritmos, las caracteristicas,pseudocodigo y las estructuras de algoritmos
crdt. Tolentino Trujillo, Santiago Armando
Cordova zambrano,Roni Ahtur
Bullon Pacaya, Brayan Joseph
Rofner Vargas, Gladys Marina
Presentación del proyecto de la materia de IAA de la UTPL.
Tema: Comparación de resultados en la convergencia de una red neuronal utilizando 1 y 2 capas ocultas respectivamente en el modelo del perceptrón multicapa utilizando el algoritmo BackPropagation al realizar el reconocimiento de señales de tránsito
Similar a Programación Genética: Introducción y Aspectos Generales (20)
Sistemas Híbridos centrados en la Lógica Difusa para el Diagnóstico de la enf...John Diaz
Los sistemas híbridos basados en la lógica difusa representan una forma de solucionar las dificultades de aprendizaje y adaptabilidad de la lógica difusa mientras se preserva la participación de los expertos y la capacidad de explicar. En el presente artículo presentan tres publicaciones que sirven para ejemplificar el aporte de la combinación de estrategias en la solución del problema diagnóstico que representa el infarto agudo del miocardio.
Aproximación Organizacional para Programación Orientada a Agentes: Introducci...John Diaz
La Aproximación Organizacional para Programación Orientada a Agentes (AOPOA) es una metodología para lo construcción de sistemas multi-agentes (SMA) mediante una descomposición de un problema complejo de manera iterativa, recursiva, basado en el concepto de metas y el de identificación de tareas de manera estructurada con un enfoque organizacional. En el presente artículo se realiza una descripción de la definición, aspectos históricos, conceptos importantes, fases y por último la presentación de un artículo en el que se expone la puesta en práctica de la metodología.
Aproximación Organizacional para Programación Orientada a Agentes: Introducci...John Diaz
La Aproximación Organizacional para Programación Orientada a Agentes (AOPOA) es una metodología para lo construcción de sistemas multi-agentes (SMA) mediante una descomposición de un problema complejo de manera iterativa, recursiva, basado en el concepto de metas y el de identificación de tareas de manera estructurada con un enfoque organizacional. En la presentación se realiza una descripción de la definición, aspectos históricos, conceptos importantes, fases y por último la presentación de un artículo en el que se expone la puesta en práctica de la metodología.
Conflictos argumentación resumen john sprockelJohn Diaz
La argumentación es una rama de la lógica que se interesa por las lógicas no monótonas es decir, el razonamiento rebatible. Es el proceso de recolectar los argumentos para justificar las conclusiones. En el presente artículo se presenta la forma en que se aplica en el proceso de negociación para la solución de conflictos al interior de los sistemas multi-agentes.
negociación basada en la argumentación en sistemas multiagentesJohn Diaz
La argumentación es una rama de la lógica que se interesa por las lógicas no monótonas es decir, el razonamiento rebatible. Es el proceso de recolectar los argumentos para justificar las conclusiones. En el presente artículo se presenta la forma en que se aplica en el proceso de negociación para la solución de conflictos al interior de los sistemas multi-agentes.
Es un diagrama para La asistencia técnica o apoyo técnico es brindada por las compañías para que sus clientes puedan hacer uso de sus productos o servicios de la manera en que fueron puestos a la venta.
3Redu: Responsabilidad, Resiliencia y Respetocdraco
¡Hola! Somos 3Redu, conformados por Juan Camilo y Cristian. Entendemos las dificultades que enfrentan muchos estudiantes al tratar de comprender conceptos matemáticos. Nuestro objetivo es brindar una solución inclusiva y accesible para todos.
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Telefónica
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0xWord escrito por Ibón Reinoso ( https://mypublicinbox.com/IBhone ) con Prólogo de Chema Alonso ( https://mypublicinbox.com/ChemaAlonso ). Puedes comprarlo aquí: https://0xword.com/es/libros/233-big-data-tecnologias-para-arquitecturas-data-centric.html
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
Recopilación de los puntos más interesantes de diversas presentaciones, desde los visionarios conceptos de Alan Turing, pasando por la paradoja de Hans Moravec y la descripcion de Singularidad de Max Tegmark, hasta los innovadores avances de ChatGPT, y de cómo la IA está transformando la seguridad digital y protegiendo nuestras vidas.
Programación Genética: Introducción y Aspectos Generales
1. 1
Programación Genética:
Introducción y Aspectos Generales
John Sprockel
Maestría de Ingeniería de Sistemas y Computación, Universidad Javeriana
jsprockel@javeriana.edu.co
Resumen. La programación genética es una herramienta de la computación evolutiva que ha tenido un desarrollo
relativamente reciente, principalmente con base en los trabajos de Koza a finales de los años 80’s e inicios de los
90’s. A diferencia de las otras técnicas se fundamenta en la evolución de programas, un concepto llamado
inducción de programación o programación automática. Su implementación consta de cinco pasos: 1) selección
de terminales, 2) selección de las funciones, 3) identificación de la función de evaluación, 4) selección de los
parámetros del sistema y 5) selección de la condición de terminación. La estructura subyacente a la evolución es
estructurada jerárquicamente. La población inicial está compuesta de árboles de programas construidos
aleatoriamente que son llevados al proceso de evolución: evaluación, selección, reproducción, entrecruzamiento y
mutación hasta llegar a la condición de terminación.
Palabras Clave: inteligencia artificial, computación evolutiva, programación automática, inducción de
programación, árboles de decisiones.
1 Introducción
La Programación Genética es un método automático independiente del dominio para resolver problemas.
Comenzando con miles de programas de ordenador creados al azar, se aplica el principio darwiniano de la selección
natural, la recombinación (crossover), la mutación, la duplicación de genes, la supresión de genes, y ciertos
mecanismos de la biología del desarrollo. Por lo tanto, genera una población mejorada a lo largo de muchas
generaciones [1]. Tiene que ver principalmente con la programación automática. Las estructuras susceptibles de
evolución son como tal los mismos programas de computación. Puede considerarse una forma de descubrimiento de
programas o inducción de programas [2]. Comienza a partir de una declaración de alto nivel de los requisitos de un
problema y trata de producir un programa de computadora que resuelve el problema. El usuario se comunica el
problema humano de alto nivel de los estados en el sistema de programación genética mediante la realización de
ciertas medidas preparatorias.
2 Historia
Aunque se le atribuye a Koza [3] el desarrollo de la técnica, podemos observar que esta no hubiera sido posible sin
contar con los desarrollos conceptuales que lo antecedieron y son visibles en la figura 1.
2. 2
Figura 1. Evolución histórica de los conceptos de la programación genética
3 Componentes y Pasos
Los cinco principales pasos preparatorios para la versión básica de la programación genética requiere que el usuario
humano especifique [1]:
i. El conjunto de terminales (por ejemplo, las variables independientes del problema, las funciones de
argumento cero y constantes al azar) para cada rama del programa a ser evolucionado.
ii. El conjunto de funciones primitivas para cada rama del programa a ser evolucionar.
iii. La medida de la aptitud o Fitness (explícita o implícitamente para medir la aptitud de los individuos en la
población). En otras palabras, determinar la función de evaluación.
iv. Selección de los parámetros para el control de la ejecución.
v. El criterio de terminación y el criterio para designar el resultado.
Propiedad de Clausura (Cierre)
Es un requerimiento importante. Consiste en que cada función en el conjunto de funciones debe ser capaz de aceptar
como argumento cualquier otra salida de una función y algún terminal en el conjunto terminal. Todo el conjunto de
estructuras posibles debe ser formado recursivamente de los conjuntos de función y de terminales [2].
Turing (1950-
1953)
“búsqueda
genética o
evolucionaria”
Smith (1980)
sistema de
clasificación para
encontrar
estrategias en
poker
Cramer (1985)
representación de
programas con
arboles en un
genotipo
Hicklin (1986) y
Fujiki y Dickinson
(1987) consideraron
métodos para
evolucionar
programas en LIPS.
Y Dickmanns,
Schmidhuber y
Winkklohofer (1987)
en PROLOG.
Koza (1989, 1992)
importancia de la
programación
genética para
inducción de
programas en un
amplio rango de
campos.
3. 3
Figura 2. Procedimientos en la programación genética.
La medida de la aptitud o fitness es el mecanismo primario para la comunicación de la declaración de alto nivel de
los requisitos del problema para el sistema de programación genética. En él se especifica lo que se debe hacer.
Cuando se utiliza la programación genética para sintetizar automáticamente los programas de ordenador, los
programas suelen estar representados como raíces, los árboles de punto marcados con sucursales ordenados. El
conjunto de funciones puede consistir simplemente las funciones aritméticas ordinarias de suma, resta,
multiplicación y división, así como un operador de bifurcación condicional. Por otro lado, cuando se utiliza para
sintetizar automáticamente una estructura especializada tal como un controlador, el conjunto de funciones consta de
las funciones especializadas que forman los integradores de controladores, diferenciadores, ganancias, sumadores,
restadores, clientes potenciales, retrasos, etc. En el caso de utilizarse para sintetizar automáticamente circuitos
eléctricos, debe superar un obstáculo adicional representacional porque en los circuitos están etiquetados gráficos
cíclicos. Puede hacerlo mediante el establecimiento de una correspondencia entre los árboles del programa que
utiliza habitualmente la programación genética y los grafos etiquetados cíclicos afín a los circuitos. Se utiliza un
proceso de desarrollo para mapear los árboles en los circuitos. Este proceso de desarrollo comienza con un embrión
simple (a menudo compuesto por un único cable modificable). A continuación, desarrollar un circuito eléctrico
análogo de la aplicación progresiva de las funciones de construcción de circuitos en un árbol de alambre programa
inicial del embrión modificable (y para tener éxito modificable cables y componentes modificables).
Una revisión de Koza [1] expone que después de que el usuario ha realizado los pasos de preparación, la
programación genética ejecuta una serie de bien definidas e independientes de pasos. Específicamente, la ejecución
se inicia mediante la generación de una población inicial de composiciones (típicamente al azar) de funciones del
problema y terminales; existen varias técnicas para la inicialización de los árboles (ver figura 3). Entonces, la
programación genética iterativamente realiza los siguientes pasos secundarios (referido aquí como una generación)
en la población de los programas hasta satisfacer el criterio de terminación. En primer lugar, ejecutar cada programa
en la población y asignarle un valor de fitness.
4. 4
Figura 3. Métodos para la inicialización de los árboles de decisión.
En segundo lugar, se crea una nueva población mediante la aplicación de los programas de las siguientes
operaciones para los individuos seleccionados en la evolución de la población. Las operaciones se aplican a los
programas seleccionados de la población con una probabilidad basada en la aptitud (con reselección permitida):
Reproducción: Copia el programa seleccionado para la nueva población.
Crossover: Crea un programa nuevo descendiente de la nueva población mediante la recombinación de las
piezas elegidas al azar de dos programas seleccionados. En el caso de los árboles de decisiones se describen
dos técnicas para su realización: la tradicional (ver figura 3) y la recombinación de crías.
Figura 4. Operadores de recombinación en árboles de decisión.
Mutación: Crea un programa nuevo descendiente de la nueva población mutando aleatoriamente una parte
elegida al azar del programa seleccionado. En los árboles de decisiones se cuentan con técnicas de macro-
mutación (se selecciona un punto y se muta todo el sub-árbol a partir de esa instancia) y micro-mutación
Método de
Crecimiento
(“Grow”)
•Formas Irregulares
•Se especifica la
profundidad
máxima (Dmáx )
Método
Completo
(“full”)
• Árboles
Regulares
• Se especifíca la
misma Dmáx
Rampa
Mitad y
Mitad
•Introduce diversidad
en la pobl inicial
•Usando ambas
tecnicas
Escoger los padres
Seleccionar un sub-árbol
Intercambiar los sub-árboles
5. 5
(solo se altera un simple nodo). En la representación lineal se selecciona una instrucción la cual se muta
puntualmente, o bien, se cambia en bloque (ver figura 4).
Operaciones que Alteran la Arquitectura: Crea un programa nuevo descendiente de la nueva población
mediante la alteración de la arquitectura del programa, mediante la creación, duplicación o eliminación de
una subrutina, iteración del bucle, recursividad, o elemento.
A.
B.
C.
Figura 4. Representación de mutación en una representación lineal. A. Secuencia original. B. Mutación puntual en
una instrucción. C. Cambio en bloque de una secuencia de instrucciones a partir de un punto.
Finalmente, el individuo con la carrera de mejor aptitud es designado como el resultado de la ejecución. Este
resultado podría resolver (o aproximadamente solucionar) el problema.
Hay que tener en cuenta que la estructura con la cual se lleva a cabo la evolución es un programa de computador
jerárquicamente estructurado. El espacio de búsqueda son los programas válidos, los cuales pueden ser vistos como
espacios de árboles arraigados [4].
4 Presentación de un artículo de ejemplo
El trabajo de Podgorelec y Kokol [4], si bien es antiguo (publicado en 1999), se convierte en un excelente ejemplo
de la aplicación de la programación genética en la selección de la mejor herramienta, en este caso árbol de
decisiones, aplicada al diagnóstico de una enfermedad congénita cardiaca de alta prevalencia, el prolapso de la
válvula mitral.
Se tomó una población de 900 personas menores de 18 años representativas de la población de Maribor (Slovenia),
de los cuales 631 accedieron a la realización de un ecocardiograma. Se usó una población de 500 personas para el
conjunto de entrenamiento y los restantes 131 para el conjunto de pruebas. Previamente habían escogido 103
parámetros compuestos a partir de datos generales, características clínicas, de laboratorio, electrocardiograma,
imágenes y finalmente el ecocardiograma para generar con ellos el mejor árbol de decisiones de la forma tradicional
(figura 5), el cual fue comparado con un programa de decisiones automáticamente evolucionado.
X1 X2 X4 X5 X6
X1 X2 X4 X5* X6
X1 X2 X4 X8 X9
6. 6
Figura 5. Parte del árbol de decisiones para la clasificación del prolapso mitral.
Figura 6. Parte del programa de decisiones para la clasificación del prolapso mitral.
Figura 7. Partición del espacio de descripción i) ejes paralelos en el árbol de decisiones ii) líneas oblicuas en el
programa de decisiones.
Los resultados demostraron que el programa contaba con una mayor certeza, sensibilidad y especificidad que el
árbol tradicional (ver tabla 1).
7. 7
Tabla 1. Comparación de la complejidad entre el árbol y el programa
Si bien es insuficiente la información acerca del cómo se seleccionó la población y de cómo se diseñaron los árboles
de decisiones y los detalles de la metodología de la programación genética (terminales, funciones, fitness,
parámetros y criterios de terminación), demuestra que puede construirse y evolucionarse una estrategia para la toma
de decisiones en medicina que conlleva una mayor certeza en su ejecución.
Referencias
[1] Koza J, Keane M, Streeter M (2003). What's AI done for me lately? Genetic programming's human-competitive results.
IEEE Intelligent Systems. Vol: 18, nro 3, pp 25-31.
[2] Dumitrescu D. Evolutionary Computation, CRC Press, 2000.
[3] J.R. Koza, Genetic Programming: On the Programming of Computers by Means of Natural Selection, MIT Press, 1992
[4] Podgorelec, V., Kokol, P., & Zavrsnik, J. (1999). Medical diagnosis prediction using genetic programming (pp. 202–
207). Presented at the 12th IEEE Symposium on Computer-Based Medical Systems, 1999. Proceedings., IEEE
Comput. Soc. doi:10.1109/CBMS.1999.781271.
[5] Rusell N. Inteligencia Artificial: Un Enfoque Moderno, Prentice Hall, 2004.
[6] Jones MT. Artificial Intelligence: A Systems Approach, INFINITY SCIENCE PRESS LLC, 2008