El desarrollo de esta aplicación se inicia con la consulta de los diferentes grados de clasificación de actitud física y generando los respectivos predicados.
Modelo Conceptual:
El modelo conceptual indica la relación de variables o atributos predictivos que adopta el modelador. La figura No. 1, ilustra el modelo conceptual adoptado por los autores, con base en la literatura consultada:
Figura No. 1: Modelo Conceptual para la Clasificación de la Actividad Física
Este modelo indica que la hipótesis de relaciones de dependencia para el problema que los autores adoptaron es que los atributos que determinan la clase de actividad física son: Realización de actividad física, días a la semana en los que se practica esta actividad física y el Número Promedio de minutos que se dedican a esta actividad los días en los que se realiza.
A cada uno de estos atributos se han asociado categorías de respuestas y preguntas, a través de las cuales se interactuará con los usuarios para obtener la información necesaria para hacer la clasificación, tal como se presenta en la tabla No. 1
ATRIBUTO | PREGUNTA A LA QUE CORRESPONDE | CATEGORÍAS DE LAS RESPUESTAS | DESCRIPCIÓN |
Actividad Física | ¿Realiza Actividad Física de forma Regular? | Si | La persona realiza actividades físicas regularmente. |
No | La persona realiza actividades físicas regularmente. | ||
Dias/semana | ¿Cuántos Días por Semana realiza la actividad física? | 1 | Realiza actividades físicas 1 día a la semana |
2 | Realiza actividades físicas 2 día a la semana | ||
3 | Realiza actividades físicas 3 día a la semana | ||
4 | Realiza actividades físicas 4 día a la semana | ||
5 | Realiza actividades físicas 5 día a la semana | ||
6 | Realiza actividades físicas 6 día a la semana | ||
T | Realiza actividades físicas todos los días de la semana | ||
Minutos/día/día | ¿Los días que realiza actividad física cuántos minutos dedica en promedio? | Men10 | La persona practica menos de 10 minutos al día, las veces que lo hace |
Men30 | La persona practica mas de 10 y menos de 30 minutos al día, las veces que lo hace | ||
Mas30 | La persona practica mas de 30 minutos al día, las veces que lo hace | ||
Intensidad |
Tabla No. 1: Atributos, Preguntas y Respuestas para determinar la clasificación de la Actividad Física de una persona
La clasificación de la actividad física también se ha discretizado de acuerdo al nivel de actividad física que realice el individuo, de la siguiente forma:
Clase 1: Sedentario.
Clase 2: Suficientemente activo
Clase 3: Insuficientemente activo
También se investigó acerca de la clasificación del comportamiento de las personas frente a la actividad física, encontrándose los siguientes tipos de comportamiento:
TIPO DE COMPORTAMIENTO | DESCRIPCIÓN | EVIDENCIA |
Precomtemplación | No activo y no tiene intención de ser activo | La persona no hace actividad física, no le interesa y piensa que no lo necesita. |
Contemplación | No activo, pero intenta hacerlo | El individuo no hace actividad física, pero le interesa y quiere hacerla |
Preparación: | Tratando, pero todavía no activo regularmente | La persona hace actividad física y le interesa mantenerla. |
Acción: | Regularmente Activo | El individuo hace actividad física y le interesa aumentarla. |
Tabla No. 2: Clasificación del comportamiento o actitud de los individuos frente a la actividad física
La tabla No. 3 que se presenta a continuación, resume la información que se recabó acerca de la clasificación de la actividad física:
Actividad Física | Dias/semana | minutos/día | Intensidad de actividad física | clasificación |
no | sedentario | |||
si | 1 | men10 | moderada | sedentario |
si | 2 | men10 | moderada | sedentario |
si | 3 | men10 | moderada | sedentario |
si | 4 | men10 | moderada | sedentario |
si | 5 | men10 | moderada | sedentario |
si | 6 | men10 | moderada | sedentario |
si | T | men10 | moderada | sedentario |
si | 1 | men10 | vigorosa | sedentario |
si | 2 | men10 | vigorosa | sedentario |
si | 3 | men10 | vigorosa | sedentario |
si | 4 | men10 | vigorosa | sedentario |
si | 5 | men10 | vigorosa | sedentario |
si | 6 | men10 | vigorosa | sedentario |
si | T | men10 | vigorosa | sedentario |
si | 5 | men30 | moderada | Suficientemente Activo |
si | 6 | men30 | moderada | Suficientemente Activo |
si | T | men30 | moderada | Suficientemente Activo |
si | 3 | men30 | vigorosa | Suficientemente Activo |
si | 4 | men30 | vigorosa | Suficientemente Activo |
si | 5 | men30 | vigorosa | Suficientemente Activo |
si | 6 | men30 | vigorosa | Suficientemente Activo |
si | T | men30 | vigorosa | Suficientemente Activo |
si | 1 | mas30 | moderada | Suficientemente Activo |
si | 2 | mas30 | moderada | Suficientemente Activo |
si | 3 | mas30 | moderada | Suficientemente Activo |
si | 4 | mas30 | moderada | Suficientemente Activo |
si | 5 | mas30 | moderada | Suficientemente Activo |
si | 6 | mas30 | moderada | Suficientemente Activo |
si | T | mas30 | moderada | Suficientemente Activo |
si | 1 | mas30 | vigorosa | Suficientemente Activo |
si | 2 | mas30 | vigorosa | Suficientemente Activo |
si | 3 | mas30 | vigorosa | Suficientemente Activo |
si | 4 | mas30 | vigorosa | Suficientemente Activo |
si | 5 | mas30 | vigorosa | Suficientemente Activo |
si | 6 | mas30 | vigorosa | Suficientemente Activo |
si | T | mas30 | vigorosa | Suficientemente Activo |
si | 1 | men30 | moderada | Insuficientemente Activo |
si | 2 | men30 | moderada | Insuficientemente Activo |
si | 3 | men30 | moderada | Insuficientemente Activo |
si | 4 | men30 | moderada | Insuficientemente Activo |
si | 1 | men30 | vigorosa | Insuficientemente Activo |
si | 2 | men30 | vigorosa | Insuficientemente Activo |
Tabla No. 3: Información Acopiada sobre la clasificación de la actividad física
Los datos contenidos en las tablas No. 2 y 3, permiten definir de manera natural la base de conocimiento del sistema, la cual se implementó utilizando el lenguaje de programación lógica Prolog, específicamente, WinProlog Versión 4.2. La base de conocimiento se muestra a continuación.
Base de conocimiento relacionada con la clasificación de la actividad física:
clasificacion(sedentario):-p1(no).
clasificacion(sedentario):-p1(si),p2(1),p3(men10),p4(moderada).
clasificacion(sedentario):-p1(si),p2(2),p3(men10),p4(moderada).
clasificacion(sedentario):-p1(si),p2(3),p3(men10),p4(moderada).
clasificacion(sedentario):-p1(si),p2(4),p3(men10),p4(moderada).
clasificacion(sedentario):-p1(si),p2(5),p3(men10),p4(moderada).
clasificacion(sedentario):-p1(si),p2(6),p3(men10),p4(moderada).
clasificacion(sedentario):-p1(si),p2(t),p3(men10),p4(moderada).
clasificacion(sedentario):-p1(si),p2(1),p3(men10),p4(vigorosa).
clasificacion(sedentario):-p1(si),p2(2),p3(men10),p4(vigorosa).
clasificacion(sedentario):-p1(si),p2(3),p3(men10),p4(vigorosa).
clasificacion(sedentario):-p1(si),p2(4),p3(men10),p4(vigorosa).
clasificacion(sedentario):-p1(si),p2(5),p3(men10),p4(vigorosa).
clasificacion(sedentario):-p1(si),p2(6),p3(men10),p4(vigorosa).
clasificacion(sedentario):-p1(si),p2(t),p3(men10),p4(vigorosa).
clasificacion('Insuficientemente Activo'):-p1(si),p2(1),p3(men30),p4(moderada).
clasificacion('Insuficientemente Activo'):-p1(si),p2(2),p3(men30),p4(moderada).
clasificacion('Insuficientemente Activo'):-p1(si),p2(3),p3(men30),p4(moderada).
clasificacion('Insuficientemente Activo'):-p1(si),p2(4),p3(men30),p4(moderada).
clasificacion('Insuficientemente Activo'):-p1(si),p2(1),p3(men30),p4(vigorosa).
clasificacion('Insuficientemente Activo'):-p1(si),p2(2),p3(men30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(5),p3(men30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(6),p3(men30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(t),p3(men30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(3),p3(men30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(4),p3(men30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(5),p3(men30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(6),p3(men30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(t),p3(men30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(1),p3(mas30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(2),p3(mas30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(3),p3(mas30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(4),p3(mas30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(5),p3(mas30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(6),p3(mas30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(t),p3(mas30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(1),p3(mas30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(2),p3(mas30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(3),p3(mas30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(4),p3(mas30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(5),p3(mas30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(6),p3(mas30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(t),p3(mas30),p4(vigorosa).
Donde p1, p2, p3 y p4, son las preguntas asociadas a los atributos "Actividad Física", "Días/semana", "minutos/dia" y "tipo de actividad física" respectivamente.
Por ejemplo, la última regla se leería:
La clasificación es "Suficientemente Activo" si "Actividad Física" ="si", y Días/semana="t", y "minutos/dia"="mas30", e "intensidad"="vigorosa".
En lenguaje natural se diría: El tipo de actividad física es Suficientemente activo, si la persona practica actividad física y lo hace todos los días, más de 30 minutos y la intensidad de la actividad que realiza es vigorosa.
En total se tienen 40 reglas para la clasificación de la actividad física.
Base de conocimiento relacionada con la clasificación de la actitud o comportamiento frente a la actividad física:
comportamental('Precomtemplacion: No activo y no tiene intención de ser activo')-p5(1).
comportamental('Contemplacion: No activo, pero_intenta_hacerlo'):-p5(2).
comportamental('Preparacion: Tratando, pero todavía no activo regularmente'):-p5(3).
comportamental('Accion: Regularmente Activo'):-p5(4).
En total se tienen 4 reglas para clasificar el comportamiento o actitud de las personas frente a la actividad física.
Para realizar la captura de los datos el programa realizará una serie de preguntas y con base en las respuestas del usuario, buscará en la base de conocimiento y clasificará al individuo.
A continuación se describe la implementación de las preguntas en Prolog:
Se define un predicado que se encargue de presentar el programa.
presentacion:-write('EL SIGUIENTE PROGRAMA LE INDICARÁ SU ESTADO ACTUAL DE ACTIVIDAD FÍSICA, LUEGO DE QUE
USTED RESPONDA UNAS POCAS PREGUNTAS'),nl,nl.
El predicado siguiente se encarga que indagar si la persona realiza actividad física o no:
pregunta1:- write(' Realiza Actividad Fisica de forma Regular?:'),nl,nl,
write(' 1. SI.'),nl,
write(' 2. NO.'),nl,
read(N),
grupo(N).
grupo(1):-assert(p1(si)),!. %se escribe en la base de conocimiento p1(si)
grupo(2):-assert(p1(no)),!.
grupo(_):-pregunta1,!.
El predicado siguiente se encarga que indagar cuántos días a la semana, la persona realiza actividad física:
pregunta2:- write(' Cuantos Dias por Semana? :'),nl,nl,
write(' 1. Uno.'),nl,
write(' 2. Dos.'),nl,
write(' 3. Tres.'),nl,
write(' 4. Cuatro.'),nl,
write(' 5. Cinco.'),nl,
write(' 6. Seis.'),nl,
write(' 7. Todos.'),nl,
read(N2),
dias(N2).
dias(1):-assert(p2(1)),!.
dias(2):-assert(p2(2)),!.
dias(3):-assert(p2(3)),!.
dias(4):-assert(p2(4)),!.
dias(5):-assert(p2(5)),!.
dias(6):-assert(p2(6)),!.
dias(7):-assert(p2(t)),!.
dias(_):-pregunta2,!.
El conjunto de predicados siguientes se encargan de indagar cuántos minutos por día, la persona realiza actividad física, en los días en que practica:
pregunta3:- write(' Cuantos Minutos Cada Dia?:'),nl,nl,
write(' 1. Menos de 10 Minutos.'),nl,
write(' 2. Menos de 30 Minutos.'),nl,
write(' 3. Mas de 30 Minutos.'),nl,
read(N3),
minuto(N3).
minuto(1):-assert(p3(men10)),!.
minuto(2):-assert(p3(men30)),!.
minuto(3):-assert(p3(mas30)),!.
minuto(_):-pregunta3,!.
El conjunto de predicados siguientes se encargan de indagar la intensidad de la actividad física que realiza la persona:
pregunta4:- write(' De Que Tipo es la Actividad Fisica?:'),nl,nl,
write(' 1. Moderada.'),nl,
write(' 2. Vigorosa.'),nl,
read(N4),
tipoact(N4).
tipoact(1):-assert(p4(moderada)),!.
tipoact(2):-assert(p4(vigorosa)),!.
tipoact(_):-pregunta4,!.
El conjunto de predicados que sigue a continuación se encarga de determinar el tipo de actitud que tiene el individuo frente a las actividades físicas.
pregunta5:- write(' Cual de las siguientes frases identifica su estado actual con la Actividad Fisica?:'),nl,nl,
write(' 1. No hago actividad fisica, no me interesa, no necesito.'),nl,
write(' 2. No hago actividad fisica, pero me interesa y quiero hacerla.'),nl,
write(' 3. Hago actividad fisica y me interesa mantenerla.'),nl,
write(' 4. Hago actividad fisica y me interesa aumentarla.'),nl,
read(N5),
tipoacua(N5).
tipoacua(1):-assert(p5(1)),!.
tipoacua(2):-assert(p5(2)),!.
tipoacua(3):-assert(p5(3)),!.
tipoacua(4):-assert(p5(4)),!.
tipoacua(_):-pregunta5,!.
El siguiente predicado, tiene el propósito de limpiar de la base de conocimiento la información introducida por el usuario en tiempo de corrida a través del predicado assert()
purgar:-retract(p1(_)),
retract(p2(_)),
retract(p3(_)),
retract(p4(_)),
retract(p5(_)),!.
El siguiente predicado determina la clase de actividad física y el comportamiento frente a la actividad física, con base en la información ingresada por el usuario.
unir:- clasificacion(M),comportamental(C),
write('Su Clasificacion de Actitud Fisica puede ser : '),nl,
write(M),nl,nl,
write('Su estado comportamental puede ser : '),nl,
write(C),nl,nl,
purgar,
pregunta.
Los siguientes predicados permiten la posibilidad de volver a empezar de nuevo el programa:
continue('s'):-continue('S').
continue('S'):-start(2),!.
continue('n'):-continue('N').
continue('N'):-write(' FUE UN PLACER AYUDARTE'),nl,
write('…………HASTA PRONTO…………').
pregunta:-nl,nl,
write('Desea continuar s/n : '),
read(X),
continue(X).
Se define le predicado que inicia la corrida del programa:
inicio:-presentacion,start.
El programa completo quedaría, de la siguiente forma:
clasificacion(sedentario):-p1(no).
clasificacion(sedentario):-p1(si),p2(1),p3(men10),p4(moderada).
clasificacion(sedentario):-p1(si),p2(2),p3(men10),p4(moderada).
clasificacion(sedentario):-p1(si),p2(3),p3(men10),p4(moderada).
clasificacion(sedentario):-p1(si),p2(4),p3(men10),p4(moderada).
clasificacion(sedentario):-p1(si),p2(5),p3(men10),p4(moderada).
clasificacion(sedentario):-p1(si),p2(6),p3(men10),p4(moderada).
clasificacion(sedentario):-p1(si),p2(t),p3(men10),p4(moderada).
clasificacion(sedentario):-p1(si),p2(1),p3(men10),p4(vigorosa).
clasificacion(sedentario):-p1(si),p2(2),p3(men10),p4(vigorosa).
clasificacion(sedentario):-p1(si),p2(3),p3(men10),p4(vigorosa).
clasificacion(sedentario):-p1(si),p2(4),p3(men10),p4(vigorosa).
clasificacion(sedentario):-p1(si),p2(5),p3(men10),p4(vigorosa).
clasificacion(sedentario):-p1(si),p2(6),p3(men10),p4(vigorosa).
clasificacion(sedentario):-p1(si),p2(t),p3(men10),p4(vigorosa).
clasificacion('Insuficientemente Activo'):-p1(si),p2(1),p3(men30),p4(moderada).
clasificacion('Insuficientemente Activo'):-p1(si),p2(2),p3(men30),p4(moderada).
clasificacion('Insuficientemente Activo'):-p1(si),p2(3),p3(men30),p4(moderada).
clasificacion('Insuficientemente Activo'):-p1(si),p2(4),p3(men30),p4(moderada).
clasificacion('Insuficientemente Activo'):-p1(si),p2(1),p3(men30),p4(vigorosa).
clasificacion('Insuficientemente Activo'):-p1(si),p2(2),p3(men30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(5),p3(men30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(6),p3(men30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(t),p3(men30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(3),p3(men30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(4),p3(men30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(5),p3(men30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(6),p3(men30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(t),p3(men30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(1),p3(mas30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(2),p3(mas30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(3),p3(mas30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(4),p3(mas30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(5),p3(mas30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(6),p3(mas30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(t),p3(mas30),p4(moderada).
clasificacion('Suficientemente Activo'):-p1(si),p2(1),p3(mas30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(2),p3(mas30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(3),p3(mas30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(4),p3(mas30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(5),p3(mas30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(6),p3(mas30),p4(vigorosa).
clasificacion('Suficientemente Activo'):-p1(si),p2(t),p3(mas30),p4(vigorosa).
comportamental('Precomtemplacion: No activo y no tiene intención de ser activo')-p5(1).
comportamental('Contemplacion: No activo, pero_intenta_hacerlo'):-p5(2).
comportamental('Preparacion: Tratando, pero todavía no activo regularmente'):-p5(3).
comportamental('Accion: Regularmente Activo'):-p5(4).
inicio:-presentacion,start.
start:- pregunta1,
pregunta2,
pregunta3,
pregunta4,
pregunta5,
unir,!.
presentacion:-write('EL SIGUIENTE PROGRAMA LE INDICARÁ SU ESTADO ACTUAL DE ACTIVIDAD FÍSICA, LUEGO DE QUE
USTED RESPONDA UNAS POCAS PREGUNTAS'),nl,nl.
pregunta1:- write(' Realiza Actividad Fisica de forma Regular?:'),nl,nl,
write(' 1. SI.'),nl,
write(' 2. NO.'),nl,
read(N),
grupo(N).
grupo(1):-assert(p1(si)),!.
grupo(2):-assert(p1(no)),!.
grupo(_):-pregunta1,!.
pregunta2:- write(' Cuantos Dias por Semana? :'),nl,nl,
write(' 1. Uno.'),nl,
write(' 2. Dos.'),nl,
write(' 3. Tres.'),nl,
write(' 4. Cuatro.'),nl,
write(' 5. Cinco.'),nl,
write(' 6. Seis.'),nl,
write(' 7. Todos.'),nl,
read(N2),
dias(N2).
dias(1):-assert(p2(1)),!.
dias(2):-assert(p2(2)),!.
dias(3):-assert(p2(3)),!.
dias(4):-assert(p2(4)),!.
dias(5):-assert(p2(5)),!.
dias(6):-assert(p2(6)),!.
dias(7):-assert(p2(t)),!.
dias(_):-pregunta2,!.
pregunta3:- write(' Cuantos Minutos Cada Dia?:'),nl,nl,
write(' 1. Menos de 10 Minutos.'),nl,
write(' 2. Menos de 30 Minutos.'),nl,
write(' 3. Mas de 30 Minutos.'),nl,
read(N3),
minuto(N3).
minuto(1):-assert(p3(men10)),!.
minuto(2):-assert(p3(men30)),!.
minuto(3):-assert(p3(mas30)),!.
minuto(_):-pregunta3,!.
pregunta4:- write(' De Que Tipo es la Actividad Fisica?:'),nl,nl,
write(' 1. Moderada.'),nl,
write(' 2. Vigoroza.'),nl,
read(N4),
tipoact(N4).
tipoact(1):-assert(p4(moderada)),!.
tipoact(2):-assert(p4(vigorosa)),!.
tipoact(_):-pregunta4,!.
pregunta5:- write(' Cual de las siguientes frases identifica su estado actual con la Actividad Fisica?:'),nl,nl,
write(' 1. No hago actividad fisica, no me interesa, no necesito.'),nl,
write(' 2. No hago actividad fisica, pero me interesa y quiero hacerla.'),nl,
write(' 3. Hago actividad fisica y me interesa mantenerla.'),nl,
write(' 4. Hago actividad fisica y me interesa aumentarla.'),nl,
read(N5),
tipoacua(N5).
tipoacua(1):-assert(p5(1)),!.
tipoacua(2):-assert(p5(2)),!.
tipoacua(3):-assert(p5(3)),!.
tipoacua(4):-assert(p5(4)),!.
tipoacua(_):-pregunta5,!.
purgar:-retract(p1(_)),
retract(p2(_)),
retract(p3(_)),
retract(p4(_)),
retract(p5(_)),!.
continue('s'):-continue('S').
continue('S'):-start,!.
continue('n'):-continue('N').
continue('N'):-write(' FUE UN PLACER AYUDARTE'),nl,
write('…………HASTA PRONTO…………').
unir:- clasificacion(M),comportamental(C),
write('Su Clasificacion de Actitud Fisica puede ser : '),nl,
write(M),nl,nl,
write('Su estado comportamental puede ser : '),nl,
write(C),nl,nl,
purgar,
pregunta.
pregunta:-nl,nl,
write('Desea continuar s/n : '),
read(X),
continue(X).
Para correr este programa abra WinProlog, presione en file->new. Luego se abrirá una ventana con un editor de texto, copie y pegue este código allí y en file->save, guarde el archivo con algún nombre, luego vaya a run->compile, esto compilará el programa, que ya estará listo para ser corrido. A continuación en la ventana de consola, luego del símbolo "| ?-", escriba el predicado principal, "inicio".
Figura No. 2 Vista principal del WinProlog 4.2 | Figura No. 3: File->New |
Figura No. 4: Apariencia luego de hacer clic en file-new. En esta ventana debe pegar el código del programa | Figura No. 5: Apariencia luego de pegar el código del programa |
Figura No. 6: Apariencia e la consola, luego de haber compilado. |
Figura No. 7: En la consola se escribe inicio.(toda instrucción en prolog, finaliza con punto) y se inicia la corrida del programa. | Figura No. 8: Sigue la segunda pregunta. |
Figura No. 9 : Sigue la tercera pregunta. | Figura No. 10: Sigue la cuarta pregunta. |
Figura No. 12: Se genera el resultado, con base en la información ingresada por el usuario. |
TRATAMIENTO DE LOS DATOS CON ÁRBOLES DE DECISIÓN.
Si se observa detenidamente los datos de la tabla No. 3, se puede apreciar que en ellos hay ciertas regularidades es decir patrones subyacentes que podrían permitir simplificar los datos. El proceso de hallar patrones relevantes y útiles en un conjunto de datos se denomina Minería de Datos, la cual comprende una gran cantidad de técnicas estadística y de inteligencia computacional, en particular del aprendizaje de máquina(Machine learning). Dentro de estas técnicas, resaltan las redes neuronales, los algoritmos inmunológicos, los algoritmos genéticos, la programación genética, la lógica difusa, los métodos para hallar reglas de asociación y los árboles de decisión entre muchísimas otras. Específicamente para datos discretos como los que se tienen para este trabajo son aconsejables sobre todo los árboles de decisión y las reglas de asociación, aunque podría optarse por una aproximación desde la lógica difusa. En cuanto a las reglas de asociación, existe muchas referencias a métodos como el algoritmo a priori y sus derivados que pueden ser consultados por el lector interesado en [ 2,3,5,8,14,16,17]
Los árboles de decisión se pueden considerar como un método para aproximar una función objetivo de valores discretos, que es resistente al ruido en los datos y que es capaz de hallar o aprender una disyunción de expresiones. El resultado puede, de esta manera, expresarse como un conjunto de reglas Si-entonces. Por otra parte, los árboles de decisión pueden entenderse como una representación de los procesos involucrados en las tareas de clasificación.
Están formados por:
- Nodos: nombres o identificadores de los atributos.
- Ramas: posibles valores del atributo asociado al nodo.
- Hojas: conjuntos ya clasificados de ejemplos y etiquetados con el nombre de una clase.
Desde el punto de vista del aprendizaje de máquina, se puede ver el proceso de creación de un árbol de decisión, como una búsqueda de un árbol que clasifique correctamente los datos del problema en cuestión. Visto de esta forma, en los árboles de decisión se pueden identificar los siguientes elementos:
- Espacio de hipótesis: Todos los posibles árboles de decisión.
- Método: Escalada (hill-climbing), empezando por el árbol vacío, aunque podrían ser un método, como por ejemplo, el basado en programación genética, en donde se hace la búsqueda sobre árboles completos, los cuales son transformados mediante operaciones evolutivos(cruce. Mutación, reproducción), y se evalúan a la luz de su desempeño en relación con los datos del problema, ver por ejemplo [7, 9]
- Heurística que guía la búsqueda: Ganancia de información.
La representación del conocimiento en forma de árbol resulta relativamente simple y es una de las causas por la que los procedimientos utilizados en su aprendizaje sean más sencillos que los sistemas que utilizan lenguajes de representación mas potentes, como redes semánticas, representaciones en lógica de predicados, etc. Sin embargo, esto deriva en que la potencia expresiva de los árboles de decisión sea menor que la de esos otros sistemas.
En 1979 Quinlan, desarrolla el sistema ID3[13], como una herramienta experimental, que es un método incremental en el cual, la expansión de los nodos se basa en una función que utiliza la medida de información de Shannon. La versión definitiva, presentada por su autor Quinlan como una método de aprendizaje, es el sistema C4.5 que expone con cierto detalle en la obra C4.5: Programs for machine learning[6]; incluye el código fuente que también está disponible por Internet en su versión mas actual. La evolución comercial de este sistema se denomina C5, del cual se puede obtener una versión de demostración restringida en cuanto a capacidades; por ejemplo, el número máximo de ejemplos de entrenamiento.
- ID3 UN SISTEMA BASICO EN EL APRENDIZAJE DE ÁRBOLES
- El esquema principal del algoritmo
En el proceso de construcción del árbol de decisión, además de etiquetar los arcos y las hojas como ya se indicó, se etiquetan los nodos con un subconjunto de ejemplos de entrenamiento. Las operaciones básicas del proceso esquematizado a muy bajo nivel serán:
- Todo nodo esta etiquetado con un subconjunto de ejemplos de los de entrenamiento.
- La raíz estará siempre etiquetada con el conjunto total de ejemplos de entrenamiento.
- Todo nodo que no constituya una hoja se expande.
- El proceso se detendrá cuando haya alcanzado hojas por todos los caminos.
El principio sobre el que se basa la expansión de los nodos del árbol que se trata de aprender o construir a partir del conjunto de entrenamiento es maquiavélico: divide y vencerás [12].
Todo algoritmo debe tener un sesgo que para el caso del ID3, éste se define, de manera general, como la mínima información adicional que hay que suministrar para que un algoritmo clasifique correctamente los nuevos ejemplos que se le presenten. En el caso del ID3, la necesidad del sesgo inductivo surge debido a que dado un conjunto de entrenamiento, en general, existen muchos árboles de decisión consistentes con los ejemplos. Este sesgo conlleva a que se prefieran los árboles cortos a los largos, es decir, si se buscara en anchura dentro del espacio de hipótesis, empezando por el árbol vacío, se iría recorriendo todos los árboles de profundidad 1, después los de profundidad 2, etc., hasta encontrar un árbol que fuera consistente con el conjunto de entrenamiento. La justificación para preferir hipótesis cortas, es en esencia simple y proviene de una meta heurística general de las ciencias, que se tiene su origen en la llamada "Ley de Parsimonia" o "Navaja de Occam" (enunciada por William de Occam en 1320, según parece mientras se afeitaba), según la cual se debe elegir siempre la hipótesis más simple o parsimoniosa de entre las que resuelvan el problema.(La hipótesis mas probable es la hipótesis mas corta consistente con los ejemplos de entrenamiento). Sin embargo, ID3 no siempre devuelve el árbol más corto, ya que el procedimiento utilizado es similar a una búsqueda primero el mejor, y además no se hace una búsqueda explícita sobre hipótesis completas del espacio de búsqueda.
Entropía y Ganancia de Información
La entropía es un concepto central en el algoritmo ID3 y está muy relacionado con la medida de la información introducida por Shannon en 1948. A continuación se desarrollan los elementos básicos de esta teoría de la medida de la información necesarios para una comprensión completa de ID3. Shannon definió una medida para la información basada en el concepto de probabilidad.
Sea T un suceso que pueda ocurrir con probabilidad p(T). Cuando T ocurre, se dice que se ha recibido I(T)=loga(1/p(T)) unidades de información. Conforme a sea el número e, 10 o 2, la unidad recibe, respectivamente, el nombre de Nat, Hartley( en honor a Hartley que fue el primero en sugerir una medida para la información en 1928) o bit.
Si se trabaja en base 2 y p(E)= 1/2 entonces I(E)=1 bit; lo que permite definir el bit como la cantidad de información proporcionada por la especificación de uno de los dos sucesos equiprobales, es decir la respuesta a una pregunta de tipo Si-No.
El concepto de información se generaliza para un mecanismo generador de información denominado fuente de información de memoria nula.
Sea S ={ s1, s2, s3, …, sn } un alfabeto finito y fijo que se utilizará para transmitir la información proporcionada por un dispositivo generador denominado fuente. Si los símbolos, o elementos de S, son transmitidos sucesivamente de acuerdo a una distribución de probabilidad fija: p(s1), p(s2),…, p(sn), entonces se denomina fuente de información de memoria nula. Por abuso del lenguaje se suele identificar la fuente con el propio alfabeto S.
En una fuente de información de memoria nula la emisión de un símbolo es independiente de los símbolos emitidos anteriormente; de ahí que se denomine de memoria nula.
Sea S={s1, s2, s3, … , sn } el alfabeto de una fuente de información de memoria nula. La cantidad media de información por símbolo del alfabeto S se denomina entropía de S, se representa por H(S), y tiene la siguiente expresión:
Otra forma de interpretar la entropía de una fuente de información de memoria nula es apelando al concepto intuitivo de incertidumbre. H(S) puede interpretarse como el valor medio de la incertidumbre de un observador antes de conocer una salida de la fuente. Cualquiera de las dos interpretaciones puede utilizarse según lo aconseje la situación.
El algoritmo ID3 adopta la entropía como concepto clave, en términos del cual se define el concepto de Ganancia de Información del sistema dado que se conoce el valor de un atributo, la cual es definida como la reducción promedio de la entropía del sistema o subsistema debido al conocimiento del valor del atributo.
Donde:
H(S)= entropía de S
: es el valor esperado de la entropía de S, luego de conocer el valor del atributo A
G(S,A): Es la ganancia de información en el sistema S por el conocimiento del valor del atributo A, es decir la reducción de la incertidumbre inicial o entropía en el sistema.
El algoritmo ID3, inicia el proceso de construcción del árbol de forma progresiva, iniciando con el nodo raíz, el cual corresponderá al atributo que más información provea sobre la clasificación de los ejemplos. Esto es, el atributo, cuyo conocimiento proporcione la mayor ganancia de información.
El atributo ganador ocupa el nodo raíz y las ramas del árbol corresponden a los valores del mismo. El proceso de construcción del árbol continua preguntándose, cuál es el atributo de los que quedan que proporciona mayor información para cada una de esas ramas. Este procedimiento se repite recursivamente hasta se hallan alcanzado hojas(decisiones o clasificaciones) en todos las ramas del árbol.
A continuación se muestra el esbozo del algoritmo general:
Algoritmo ID3 (X: Ejemplos, C: Clasificacion, A: Atributos)
Si todos los ejemplos son de la misma clase retorna árbol de la clase
si no
Calcular la función de cantidad de información de los ejemplos (I)
Para cada atributo en A
Calcular la función de entropía (E) y la ganancia de información (G)
Escoger el atributo que maximice G (sea a)
Eliminar a de la lista de atributos (A)
Para cada partición generada por los valores del atributo a
Arboli=ID3(ejemplos de X con a=vi , Clasificacion de los ejemplos,
Atributos restantes)
Generar arbol con a=vi y Arboli
Retornar la union de todos los arboles
fin Algoritmo
Aplicación de la técnica de árboles de decisión al problema de este trabajo.
Existen muchas herramientas computacionales apropiadas para la inducción o el aprendizaje de árboles de decisión a partir de un conjunto adecuado de datos, tales como WEKA, sin embargo para este trabajo se decidió utilizar un applet llamado "Decision Tree Version 4.1.3", elaborado por AIspace, que se encuentra disponible en línea o para descarga
Mediante este applet se ingresaron los datos de la tabla No. 3, y se obtuvo el siguiente árbol de decisión:
Figura No. 13: Arbol de Decisión para el problema de clasificación de la actividad física
El número de reglas implícitas en la estructura del árbol corresponde al número de hojas (cuadro de borde verde), es decir, que el árbol ha representado a los datos de la tabla utilizando 12 reglas, las cuales se listan a continuación:
- Si actividad física=no, entonces, clasificación=sedentario
- Si actividad física=si y minutos/dia=mas30, entonces clasificación=Suficientemente Activo
- Si actividad física=si y minutos/dia=men10, entonces clasificación=Sedentario
- Si actividad física=si y minutos/dia=men30 y días/semana=5, entonces clasificación= Suficientemente Activo
- Si actividad física=si y minutos/dia=men30 y días/semana=6 entonces clasificación= Suficientemente Activo
- Si actividad física=si y minutos/dia=men30 y días/semana=t, entonces clasificación= Suficientemente Activo
- Si actividad física=si y minutos/dia=men30 y días/semana=1, entonces clasificación= Insuficientemente Activo
- Si actividad física=si y minutos/dia=men30 y días/semana=2, entonces clasificación= Insuficientemente Activo
- Si actividad física=si y minutos/dia=men30 y días/semana=3 e Intensidad de actividad física=vigorosa, entonces clasificación= Suficientemente Activo
- Si actividad física=si y minutos/dia=men30 y días/semana=3 e Intensidad de actividad física=moderada, entonces clasificación= Insuficientemente Activo
- Si actividad física=si y minutos/dia=men30 y días/semana=4 e Intensidad de actividad física=vigorosa, entonces clasificación= Suficientemente Activo
- Si actividad física=si y minutos/dia=men30 y días/semana=4 e Intensidad de actividad física=moderada, entonces clasificación= Insuficientemente Activo
Esto indica que los 40 ejemplos o patrones (filas) contenidos en la tabla No. 3, se han representado con 12 reglas, lo cual indica una compresión en la representación de los datos de 40/12, es decir un factor de compresión de 3:1.
Observando los resultados se puede evidenciar que no el atributo que más proporciona información acerca de la clasificación de la actividad física es el "Actividad Física", luego seguiría "minutos/día". Note que el número de minutos al día, proporciona más información que el número de días a la semana. Adicionalmente, se puede ver que en muchos casos no es necesario conocer el valor de todos los atributos para determinar la clasificación de la actividad física. Con estas reglas se reduce ampliamente la base de conocimiento y se sintetiza y modela mejor el conocimiento contenido en los datos.
Con respecto a la clasificación de la actitud frente a la actividad física, no fue necesario aplicarle árboles de decisión, debido a que es muy simple y la clasificación es directa.
La implementación que se muestra a continuación corresponde a la estructura clásica de los programas en programación lógica, en la cual se presenta la base de conocimiento independiente de los predicados de control y manipulación de esa base, similar a lo que ocurre en un sistema de gestión de base de datos.
A continuación se presenta el código obtenido:
clasificacion(sedentario):-p1(no),!.
clasificacion('Suficientemente Activo'):-p1(si),p3(mas30),!.
clasificacion(sedentario):-p1(si),p3(men10),!.
clasificacion('Suficientemente Activo'):-p1(si),p3(men30),p2(5),!.
clasificacion('Suficientemente Activo'):-p1(si),p3(men30),p2(6),!.
clasificacion('Suficientemente Activo'):-p1(si),p3(men30),p2(t),!.
clasificacion('Insuficientemente Activo'):-p1(si),p3(men30),p2(1),!.
clasificacion('Insuficientemente Activo'):-p1(si),p3(men30),p2(2),!.
clasificacion('Suficientemente Activo'):-p1(si),p3(men30),p2(3),p4(vigorosa),!.
clasificacion('Insuficientemente Activo'):-p1(si),p3(men30),p2(3),p4(moderada),!.
clasificacion('Suficientemente Activo'):-p1(si),p3(men30),p2(4),p4(vigorosa),!.
clasificacion('Insuficientemente Activo'):-p1(si),p3(men30),p2(4),p4(moderada),!.
comportamental('Precomtemplacion: No activo y no tiene intención de ser activo')-p5(1).
comportamental('Contemplacion: No activo, pero_intenta_hacerlo'):-p5(2).
comportamental('Preparacion: Tratando, pero todavía no activo regularmente'):-p5(3).
comportamental('Accion: Regularmente Activo'):-p5(4).
inicio:-presentacion,start.
start :-pregunta1,
pregunta2,
pregunta3,
pregunta4,
pregunta5,
unir,!.
presentacion:-write('EL SIGUIENTE PROGRAMA LE INDICARÁ SU ESTADO ACTUAL DE ACTIVIDAD FÍSICA, LUEGO DE QUE
USTED RESPONDA UNAS POCAS PREGUNTAS'),nl,nl.
pregunta1:-write(' Realiza Actividad Fisica de forma Regular?:'),nl,nl,
write(' 1. SI.'),nl,
write(' 2. NO.'),nl,
read(N),
grupo(N).
grupo(1):-assert(p1(si)),!.
grupo(2):-assert(p1(no)),!.
grupo(_):-pregunta1,!.
pregunta2:-
write(' Cuantos Dias por Semana? :'),nl,nl,
write(' 1. Uno.'),nl,
write(' 2. Dos.'),nl,
write(' 3. Tres.'),nl,
write(' 4. Cuatro.'),nl,
write(' 5. Cinco.'),nl,
write(' 6. Seis.'),nl,
write(' 7. Todos.'),nl,
read(N2),
dias(N2).
dias(1):-assert(p2(1)),!.
dias(2):-assert(p2(2)),!.
dias(3):-assert(p2(3)),!.
dias(4):-assert(p2(4)),!.
dias(5):-assert(p2(5)),!.
dias(6):-assert(p2(6)),!.
dias(7):-assert(p2(t)),!.
dias(_):-pregunta2,!.
pregunta3:-
write(' Cuantos Minutos Cada Dia?:'),nl,nl,
write(' 1. Menos de 10 Minutos.'),nl,
write(' 2. Menos de 30 Minutos.'),nl,
write(' 3. Mas de 30 Minutos.'),nl,
read(N3),
minuto(N3).
minuto(1):-assert(p3(men10)),!.
minuto(2):-assert(p3(men30)),!.
minuto(3):-assert(p3(mas30)),!.
minuto(_):-pregunta3,!.
pregunta4:-
write(' De Que Tipo es la Actividad Fisica?:'),nl,nl,
write(' 1. Moderada.'),nl,
write(' 2. Vigorosa.'),nl,
read(N4),
tipoact(N4).
tipoact(1):-assert(p4(moderada)),!.
tipoact(2):-assert(p4(vigorosa)),!.
tipoact(_):-pregunta4,!.
pregunta5:-write(' Cual de las siguientes frases identifica su estado actual con la Actividad Fisica?:'),nl,nl,
write(' 1. No hago actividad fisica, no me interesa, no necesito.'),nl,
write(' 2. No hago actividad fisica, pero me interesa y quiero hacerla.'),nl,
write(' 3. Hago actividad fisica y me interesa mantenerla.'),nl,
write(' 4. Hago actividad fisica y me interesa aumentarla.'),nl,
read(N5),
tipoacua(N5).
tipoacua(1):-assert(p5(1)),!.
tipoacua(2):-assert(p5(2)),!.
tipoacua(3):-assert(p5(3)),!.
tipoacua(4):-assert(p5(4)),!.
tipoacua(_):-pregunta5,!.
purgar:-retract(p1(_)),
retract(p2(_)),
retract(p3(_)),
retract(p4(_)),
retract(p5(_)),!.
continue('s'):-continue('S').
continue('S'):-start,!.
continue('n'):-continue('N').
continue('N'):-write(' FUE UN PLACER AYUDARTE'),nl,
write('…………HASTA PRONTO…………').
unir:- clasificacion(M),comportamental(C),
write('Su Clasificacion de Actitud Fisica puede ser : '),nl,
write(M),nl,nl,
write('Su estado comportamental puede ser : '),nl,
write(C),nl,nl,
purgar,
pregunta.
pregunta:-nl,nl,
write('Desea continuar s/n : '),
read(X),
continue(X).
Sin embargo, la aproximación anterior no aprovecha toda la información contenida en el árbol, ya que hace todas las preguntas para todos los casos, sin tener en cuenta que, según el árbol de decisión, algunas clasificaciones se pueden determinar sin el conocimiento de todos los atributos, como es el caso en que se responda "no" a la pregunta 1.
A continuación se hace otra aproximación que tiene en cuenta, la observación anterior, sin embargo se desvía un poco del sentido de la programación lógica, y se acerca más a una programación procedimental:
pregunta(1, Respuesta):-write(' Realiza Actividad Fisica de forma Regular?:'),nl,nl,
write(' 1. SI.'),nl,
write(' 2. NO.'),nl,
read(Respuesta),!.
pregunta(2, Respuesta):-write(' Cuantos Dias por Semana? :'),nl,nl,
write(' 1. Uno.'),nl,
write('2. Dos.'),nl,
write('3. Tres.'),nl,
write('4. Cuatro.'),nl,
write('5. Cinco.'),nl,
write('6. Seis.'),nl,
write('7. Todos.'),nl,
read(Respuesta).
pregunta(3, Respuesta):-write(' Cuantos Minutos Cada Dia?:'),nl,nl,
write(' 1. Menos de 10 Minutos.'),nl,
write(' 2. Menos de 30 Minutos.'),nl,
write(' 3. Mas de 30 Minutos.'),nl,
read(Respuesta).
pregunta(4,Respuesta):-write(' De Que Tipo es la Actividad Fisica?:'),nl,nl,
write(' 1. Moderada.'),nl,
write(' 2. Vigorosa.'),nl,
read(Respuesta).
pregunta(5,Respuesta):- write(' Cual de las siguientes frases identifica su estado actual con la Actividad Fisica?:'),nl,nl,
write(' 1. No hago actividad fisica, no me interesa, no necesito.'),nl,
write(' 2. No hago actividad fisica, pero me interesa y quiero hacerla.'),nl,
write(' 3. Hago actividad fisica y me interesa mantenerla.'),nl,
write(' 4. Hago actividad fisica y me interesa aumentarla.'),nl,
read(Respuesta).
clasificacion(Clase):-write('Su Clasificacion de Actitud Fisica es : '),nl,
(Clase=1->write(sedentario);
Clase=2->write('Suficientemente Activo');
Clase=3->write('Insuficientemente Activo')),nl.
clasificacion_comportamiento(Clase):-write('Su Comportamiento frente a la actividad deportiva es:'),nl,
(Clase=1->write('Precomtemplacion: No activo y no tiene intención de ser activo');
Clase=2->write('Contemplacion: No activo, pero_intenta_hacerlo');
Clase=3->write('Preparacion: Tratando, pero todavía no activo regularmente');
Clase=4->write('Accion: Regularmente Activo')),nl.
presentacion:-write('EL SIGUIENTE PROGRAMA LE INDICARÁ SU ESTADO ACTUAL DE ACTIVIDAD FÍSICA, LUEGO DE QUE
USTED RESPONDA UNAS POCAS PREGUNTAS'),nl,nl.
empezar:-presentacion,inicio.
inicio:- pregunta(1, Respuesta ),
(Respuesta=1->proceso('1a');
Respuesta=2 ->proceso_final(1);inicio).
proceso('1a'):-pregunta(3, Respuesta ),
(Respuesta=1 ->proceso_final(1);
Respuesta= 2 ->proceso('2ab');
Respuesta= 3 ->proceso_final(2);proceso('1a')).
proceso('2ab'):-pregunta(2, Respuesta),
(Respuesta=1->proceso_final(3);
Respuesta=2->proceso_final(3);
Respuesta=3->proceso('3acc');
Respuesta=4->proceso('3acd');
Respuesta=5->proceso_final(2);
Respuesta=6->proceso_final(2);
Respuesta=7->proceso_final(2);proceso('2ab')).
proceso('3acc'):-pregunta(4, Respuesta ),
(Respuesta=1->proceso_final(3);
Respuesta=2->proceso_final(3);proceso('3acc')).
proceso('3acd'):-pregunta(4, Respuesta ),
(Respuesta=1->proceso_final(3);
Respuesta=2->proceso_final(3);proceso('3acd')).
proceso_final(Clase):-pregunta(5,Respuesta),
clasificacion(Clase),
clasificacion_comportamiento(Respuesta),
continuar.
continuar:-nl,nl,
write('Desea continuar s/n : '),
read(X),
continue(X).
continue('s'):-continue('S').
continue('S'):-inicio,!.
continue('n'):-continue('N').
continue('N'):-write(' FUE UN PLACER AYUDARTE'),nl,
write('…………HASTA PRONTO…………').
Para ejecutar este programa, ejecute el predicado "empezar" en la consola.
CONCLUSIONES
Con esta propuesta se pretendió generar un programa en Prolog que permita demostrar los conocimientos adquiridos en la clase de sistemas basados en el conocimiento por medio del módulo virtual de diagnóstico, que se basa en la información consultada en la exploración bibliográfica.
Este trabajo, aunque no es el único existente, permite de una manera básica, determinar un diagnóstico muy acertado acerca de la actividad física del usuario y su actitud frente a la misma.
- A. Freitas, Understanding the crucial differences between classification and discovery of association rules – A position paper, SIGKDD Explorations, 2, 1, 1-5, 2000.
- Agrawal, Rakesh & Psaila, Guiseppe. Active data mining. IBM Almaden research center, 1995, consultado en octubre de 2006 en
- Agrawal, Rakesh & Srikant, Ramakrishnan. Fast Algorithm for Mining association rules, IBM Almaden research center, 1994. Consultado en octubre de 2006 en http://citeseer.ist.psu.edu/rd/0%2C55671%2C1%2C0.25%2CDownload/http://citeseer.ist.psu.edu/cache/papers/cs/1451/http:zSzzSzwww.almaden.ibm.comzSzcszSzpeoplezSzragrawalzSzpaperszSzvldb94_rj.pdf/agrawal94fast.pdf
- American Heart Association. Risk factors for heart disease. Agosto. 1995.
- Cheung, David W. & Han, Jiawei & Ng, Vincent T. & Wong C.Y. Maintenance of Discovered Association Rules in Large Databases: An Incremental Updating Technique. Consultado el mes de octubre de 2006 en http://citeseer.ist.psu.edu/rd/0%2C574496%2C1%2C0.25%2CDownload/http://citeseer.ist.psu.edu/cache/papers/cs/27046/http:zSzzSzwww-faculty.cs.uiuc.eduzSz%7EhanjzSzpdfzSzicde96.pdf/cheung96maintenance.pdf
- Instituto Distrital Recreación y Deporte. Guía de actividad Física. 2004
- Jiménez, M. Leonardo. Un Modelo Conceptual para el Desarrollo de Árboles de Decisión con Programación Genética. Trabajo Presentado como prerrequisito para optar al título de Especialista en Informática y Ciencias de la Computación, Fundación Universitaria Konrad Lorenz, Bogotá, 2007.
- Kavsek, N.Lavrac, V. Jovanoski, Apriori-sd: Adapting association rule learning to subgroup discovery, Proceedings of the 5th International Symposium on Intelligent Data Analysis, Springer, 230 -241, 2003.
- Koza, John R. Genetic Programming: On the Programming of Computers by Means of Natural. NetLibrary Inc., 1992.
- Mitchel, T., Machine Learning , McGraw Hill, 1997
- OMS, 50 AÑO, No. 3 MAYO-JUNIO de 1997.
- Quinlan, J. R. C4.5: Programs for Machine Learning. Morgan Kaufmann Publishers, 1993.
- Quinlan, J.R. (1979). "Discovering rules by induction from large collections of examples", en Michie, D. (Ed.): Expert systems in the microelectronic age, Edimburgh University Press, Edimburgh.
- Reyes Saldaña, José Fernando & García Flores, Rodolfo. El proceso de descubrimiento de conocimiento en bases de datos, consultado el mes de octubre de 2006 en http://ingenierias.uanl.mx/26/pdfs/26_el_proceso.pdf
- Savasere, Ashok; Omiccinski, Edward & Navathe, Shamkant. An efficent Algorithm for mining Association Rules in Large dataBase, , College of computing, Giorgia Institute of technology, Technical report No. GIT-CC-95-04, 1995. Consultado en noviembre de 2006 en http://citeseer.ist.psu.edu/rd/0%2C53440%2C1%2C0.25%2CDownload/http://citeseer.ist.psu.edu/cache/papers/cs/5021/http:zSzzSzwww.neovista.comzSzResourceszSz..zSzKnowledgeDiscoveryzSzGIT-CC-95-04.pdf/sarasere95efficient.pdf
- Webb ,Geoffrey I., Efficient search for association rules, School of Computing and Mathematics Deakin University, Geelong, Vic. 3217, Australia,KDD-2000, Boston, MA, agosto 2000. Consultado en noviembre de 2006 en http://citeseer.ist.psu.edu/rd/0%2C388271%2C1%2C0.25%2CDownload/http://citeseer.ist.psu.edu/cache/papers/cs/18878/http:zSzzSzwww.cm.deakin.edu.auzSzwebbzSzPaperszSzassocrulesearch.pdf/webb00efficient.pdf
- Webb, Geoffrey I. Discovering associations with numeric variables. School of Computing and Mathematics Deakin University, Australia,KDD 2001, San Francisco CA agosto 200. Consultado en Octubre de 2006 en http://citeseer.ist.psu.edu/rd/0%2C599110%2C1%2C0.25%2CDownload/http://citeseer.ist.psu.edu/cache/papers/cs/28810/http:zSzzSzwww.cm.deakin.edu.auzSzwebbzSzPaperszSzImpactRules.pdf/rey01discovering.pdf
Autor:
Jeison Antonio Murillo Cruz
Jorge Ernesto Roa Torres
Estudiantes del curso de Sistemas Basados en el Conocimiento I, del programa de Ingeniería de Sistemas de la Fundación Universitaria Konrad Lorenz.
Director del Trabajo:
Ing. Pervys Rengifo Rengifo.
Docente e investigador en el área de Inteligencia Computacional, del programa de Ingeniería de Sistemas de la Fundación Universitaria Konrad Lorenz.
Ciudad y Fecha de Elaboración: Bogotá, noviembre de 2007.
Página anterior | Volver al principio del trabajo | Página siguiente |