Aplicacion de inteligencia artificial

21
1 INTELIGENCIA ARTIFICIAL II DESARROLLO DE LA TAREA SOBRE REDES NEURONALES DE LA CLASE DEL 10/06/15 Profesor: Ing. Yuri Núñez Medrano Estudiante: Miguel Martin Correa Coronel Código: 08010099 1. DATOS DEL EJERCICIO 1

Transcript of Aplicacion de inteligencia artificial

1

INTELIGENCIA ARTIFICIAL II

DESARROLLO DE LA TAREA SOBRE REDES NEURONALES DE LA CLASE DEL

10/06/15

Profesor: Ing. Yuri Núñez Medrano

Estudiante: Miguel Martin Correa Coronel

Código: 08010099

1. DATOS DEL EJERCICIO 1

2

Tabla 1: Resumen histórico de las condiciones de salud de 17 pacientes para el ejercicio 1

Temp Interna

TempSuperficial Satura

Oxigeno Presión

Sanguínea StabTemp

Superf Sta Temp

Inter Stab Presi

Sang Decisión Alta

medio medio bueno medio estable estable estable Hospital-General

medio bajo bueno alto estable estable medio-estable Hospital-General

medio medio bueno medio no-estable estable no-estable A-Casa

medio medio bueno alto no-estable estable estable Hospital-General

bajo bajo bueno medio no-estable estable no-estable A-Casa

bajo bajo excelente medio estable estable estable Hospital-General

bajo medio bueno medio no-estable estable estable A-Casa

bajo medio bueno alto no-estable estable estable Cuidado-Intensivo

medio medio excelente medio no-estable estable estable Hospital-General

alto medio excelente medio no-estable no-estable no-estable Hospital-General

medio medio bueno alto estable estable estable A-Casa

alto bajo excelente alto estable estable medio-estable Hospital-General

medio bajo bueno alto estable no-estable medio-estable Hospital-General

alto medio excelente medio no-estable no-estable estable A-Casa

medio alto bueno medio estable estable estable A-Casa

medio bajo bueno medio estable estable no-estable Cuidado-Intensivo

medio medio excelente medio estable estable estable A-Casa

3

Tabla 2: Resumen histórico de las condiciones de salud de 17 pacientes interpretados con indicadores de 0 a 1

Temp Interna

TempSuperficial Satura Oxigeno Presión

Sanguínea Stab Temp

Superf Sta Temp

Inter

Stab PresiSa

ng Decisión Alta

0,5 0,5 0 0,5 1 1 1 0,5

0,5 0 0 1 1 1 0,5 0,5

0,5 0,5 0 0,5 0 1 0 1

0,5 0,5 0 1 0 1 1 0,5

0 0 0 0,5 0 1 0 1

0 0 1 0,5 1 1 1 0,5

0 0,5 0 0,5 0 1 1 1

0 0,5 0 1 0 1 1 0

0,5 0,5 1 0,5 0 1 1 0,5

1 0,5 1 0,5 0 0 0 0,5

0,5 0,5 0 1 1 1 1 1

1 0 1 1 1 1 0,5 0,5

0,5 0 0 1 1 0 0,5 0,5

1 0,5 1 0,5 0 0 1 1

0,5 1 0 0,5 1 1 1 1

0,5 0 0 0,5 1 1 0 0

0,5 0,5 1 0,5 1 1 1 1

4

Tabla 3: Cadena de datos histórico de las condiciones de salud de 17 pacientes

interpretados con indicadores de 0 a 1

ENTRADAS

SALIDAS

{0,0,1,0.5,1,1,1},

{0,0.5,0,0.5,0,1,1},

{0,0.5,0,1,0,1,1},

{0.5,0.5,1,0.5,0,1,1},

{1,0.5,1,0.5,0,0,0},

{0.5,0.5,0,1,1,1,1},

{1,0,1,1,1,1,0.5},

{0.5,0,0,1,1,0,0.5},

{1,0.5,1,0.5,0,0,1},

{0.5,1,0,0.5,1,1,1},

{0.5,0,0,0.5,1,1,0},

{0.5,0.5,1,0.5,1,1,1}

{0.5},

{1},

{0},

{0.5},

{0.5},

{1},

{0.5},

{0.5},

{1},

{1},

{0},

{1}

5

Tabla 4: Datos a evaluar de 4 pacientes según lo indicado por el ejercicio 1

Tabla 5: Datos a evaluar de 4 pacientes interpretados con indicadores de 0 a 1

0,5 0,5 1 0,5 1 1 1 ?

0,5 0,5 1 0,5 0 1 1 ?

0,5 0 1 0,5 0 1 1 ?

0,5 0,5 0 0,5 0 1 1 ?

EVALUAR DECISIÓN ALTA

medio medio excelente medio estable estable estable ?

medio medio excelente medio no-estable estable estable ?

medio bajo excelente medio no-estable estable estable ?

medio medio bueno medio no-estable estable estable ?

6

2. SOLUCIÓN DEL EJERCICIO 1

A continuación se mostrará un código hecho en Java que simulará una neurona artificial

simple que contendrá la información detallada en el ejercicio 1, cuya arquitectura es de 7

entradas, 300 intermedios y 1 salida. Además se le indicará que realice un aprendizaje de

1000 repeticiones:

package ejercicio1;

import rnnn01.*;

public class Ejercicio1 {

public static void main(String[] args) {

double ingreso [][]={

{0,0,1,0.5,1,1,1}, {0,0.5,0,0.5,0,1,1}, {0,0.5,0,1,0,1,1}, {0.5,0.5,1,0.5,0,1,1},

{1,0.5,1,0.5,0,0,0}, {0.5,0.5,0,1,1,1,1}, {1,0,1,1,1,1,0.5}, {0.5,0,0,1,1,0,0.5},

{1,0.5,1,0.5,0,0,1}, {0.5,1,0,0.5,1,1,1}, {0.5,0,0,0.5,1,1,0}, {0.5,0.5,1,0.5,1,1,1}

};

double salida [][]={{0.5},

{1}, {0}, {0.5}, {0.5}, {1}, {0.5}, {0.5}, {1}, {1}, {0}, {1}

};

double evaluar [][]={

{0.5,0.5, 1,0.5,1,1,1}, {0.5, 0.5,1,0.5,0,1,1}, {0.5,0,1,0.5,0,1,1}, {0.5,0.5,0,0.5,0,1,1}

};

rna01 rn= new rna01(7,300,1);

rn.entrenamiento(ingreso, salida, 1000);

rn.prueba(evaluar);

}

}

7

Luego de correr el algoritmo en tienen los siguientes resultados:

CORRIDA 1

-----------****Inicio Test****----------

prueba[0.5] [0.5] [1.0] [0.5] [1.0] [1.0] [1.0]

salida[0.9942615880409647]

-----------****Inicio Test****----------

prueba[0.5] [0.5] [1.0] [0.5] [0.0] [1.0] [1.0]

salida[0.5017596293149386]

-----------****Inicio Test****----------

prueba[0.5] [0.0] [1.0] [0.5] [0.0] [1.0] [1.0]

salida[0.08605552180493466]

-----------****Inicio Test****----------

prueba[0.5] [0.5] [0.0] [0.5] [0.0] [1.0] [1.0]

salida[0.997422741118767]

BUILD SUCCESSFUL (total time: 0 seconds)

8

CORRIDA 2

-----------****Inicio Test****----------

prueba[0.5] [0.5] [1.0] [0.5] [1.0] [1.0] [1.0]

salida[0.987912577348078]

-----------****Inicio Test****----------

prueba[0.5] [0.5] [1.0] [0.5] [0.0] [1.0] [1.0]

salida[0.5019792424711447]

-----------****Inicio Test****----------

prueba[0.5] [0.0] [1.0] [0.5] [0.0] [1.0] [1.0]

salida[0.13384373137474384]

-----------****Inicio Test****----------

prueba[0.5] [0.5] [0.0] [0.5] [0.0] [1.0] [1.0]

salida[0.9962974898299278]

BUILD SUCCESSFUL (total time: 0 seconds)

9

CORRIDA 3

-----------****Inicio Test****----------

prueba[0.5] [0.5] [1.0] [0.5] [1.0] [1.0] [1.0]

salida[0.999941283931653]

-----------****Inicio Test****----------

prueba[0.5] [0.5] [1.0] [0.5] [0.0] [1.0] [1.0]

salida[0.5013471025068103]

-----------****Inicio Test****----------

prueba[0.5] [0.0] [1.0] [0.5] [0.0] [1.0] [1.0]

salida[1.3323242367666163E-4]

-----------****Inicio Test****----------

prueba[0.5] [0.5] [0.0] [0.5] [0.0] [1.0] [1.0]

salida[0.9993634893900508]

BUILD SUCCESSFUL (total time: 0 seconds)

10

CONCLUSIONES:

Según los resultados expuestos en las corridas del algoritmo tenemos las siguientes

conclusiones:

Paciente 1:

salida[0.9942615880409647]

salida[0.987912577348078]

salida[0.999941283931653]

Se recomienda que el paciente sea dado de alta, es decir, su estado es A CASA.

Paciente 2:

salida[0.5017596293149386]

salida[0.5019792424711447]

salida[0.5018471025068103]

Se recomienda que el paciente sea hospitalizado, es decir, su estado es HOSPITAL

CENTRAL.

Paciente 3:

salida[0.08605552180493466]

salida[0.13384373137474384]

salida[1.3323242367666163E-4]

Se recomienda que el paciente sea hospitalizado, es decir, su estado es CUIDADOS

INTENSIVOS.

Paciente 4:

salida[0.997422741118767]

salida[0.9962974898299278]

salida[0.9993634893900508]

Se recomienda que el paciente sea dado de alta, es decir, su estado es A CASA.

11

3. DATOS DEL EJERCICIO 2

12

Tabla 6: Información histórica sobre los 4 trimestres de Ventas de una empresa según los datos del ejercicio 2

Trimestre Impacto

Temporada Impacto

Vacaciones Eventos en la

Ciudad No. Ofertas Especiales

Presupuesto en Publicidad

Número de Anuncios

Ventas Semanales

1 Alto Alto Si 0 53900 20 366133

1 Medio Medio No 2 46600 23 299850

2 Bajo Ninguno No 2 19100 8 215900

2 Bajo Ninguno No 0 17300 11 208700

2 Bajo Ninguno No 2 4200 2 142500

3 Alto Ninguno No 0 21600 12 248100

3 Alto Ninguno No 0 37700 17 221200

3 Muy Alto Ninguno No 3 39900 20 345367

4 Bajo Ninguno No 1 7100 2 139100

4 Bajo Ninguno No 0 4100 1 124100

4 Bajo Ninguno No 1 3400 2 134100

13

Tabla 7: Información histórica sobre los 4 trimestres de Ventas de una empresa según los datos del ejercicio 2,

expresados en indicadores de 0 a 1

Trimestre Impacto

Temporada Impacto

Vacaciones Eventos en la

Ciudad No. Ofertas Especiales

Presupuesto en Publicidad

Número de Anuncios

Ventas Semanales

0,000 0,667 1 1 0,000 1,000 0,870 1,000

0,000 0,333 0,5 0 0,667 0,865 1,000 0,819

0,333 0,000 0 0 0,667 0,354 0,348 0,590

0,333 0,000 0 0 0,000 0,321 0,478 0,570

0,333 0,000 0 0 0,667 0,078 0,087 0,389

0,667 0,667 0 0 0,000 0,401 0,522 0,678

0,667 0,667 0 0 0,000 0,699 0,739 0,604

0,667 1,000 0 0 1,000 0,740 0,870 0,943

1,000 0,000 0 0 0,333 0,132 0,087 0,380

1,000 0,000 0 0 0,000 0,076 0,043 0,339

1,000 0,000 0 0 0,333 0,063 0,087 0,366

14

Tabla 8: Información a evaluar sobre los 4 trimestres de Ventas de una empresa según los datos del ejercicio 2, para 5

opciones posibles en el mercado

EVALUAR SALIDA

2 Bajo Medio No 0 22000 7 ?

3 Alto Ninguno No 1 31800 18 ?

4 Medio Ninguno No 5 14700 15 ?

4 Medio Alto No 1 36400 25 ?

1 Bajo Ninguno No 1 10500 4 ?

Tabla 9: Información a evaluar sobre los 4 trimestres de Ventas de una empresa según los datos del ejercicio 2, para 5

opciones posibles en el mercado interpretados con indicadores de 0 a 1

EVALUAR SALIDA

0,333 0,000 0,5 0 0,000 0,408 0,304 ?

0,667 0,667 0 0 0,333 0,590 0,783 ?

1,000 0,333 0 0 1,000 0,273 0,652 ?

1,000 0,333 1 0 0,333 0,675 1,087 ?

0,000 0,000 0 0 0,333 0,195 0,174 ?

15

4. SOLUCIÓN DEL EJERCICIO 2

A continuación se mostrará un código hecho en Java que simulará una neurona artificial

simple que contendrá la información detallada en el ejercicio 1, cuya arquitectura es de 7

entradas, 300 intermedios y 1 salida. Además se le indicará que realice un aprendizaje de

10000 repeticiones:

package ejercicio2;

import rnnn01.*;

public class Ejercicio2 {

public static void main(String[] args) {

double ingreso [][]={

{0.000,0.667,1,1,0.000,1.000, 0.870}, {0.000,0.333,0.5,0,0.667,0.865,1.000},

{0.333,0.000,0,0,0.667,0.354,0.348}, {0.333,0.000,0,0,0.000,0.321,0.478},

{0.333,0.000,0,0,0.667,0.078,0.087},{0.667,0.667,0,0,0.000,0.401,0.522},

{0.667,0.667,0,0,0.000,0.699,0.739},{0.667,1.000,0,0,1.000,0.740,0.870},

{1.000,0.000,0,0,0.333,0.132,0.087},{1.000,0.000,0,0,0.000,0.076,0.043},

{1.000,0.000,0,0,0.333,0.063,0.087}

};

double salida [][]={ {1.000}, {0.819}, {0.590},

{0.570},{0.389},{0.678},{0.604},{0.943},{0.380}, {0.339},{0.366}

};

double evaluar [][]={

{0.333,0.000,0.5,0,0.000,0.408,0.304},

{0.667,0.667,0.0,0,0.333,0.590,0.783},

{1.000,0.333,0.0,0,1.000,0.273,0.652},

{1.000,0.333,1.0,0,0.333,0.675,1.087},

{0.000,0.000,0.0,0,0.333,0.195,0.174}

};

rna01 rn= new rna01(7,300,1);

rn.entrenamiento(ingreso, salida, 10000);

rn.prueba(evaluar);

}

}

16

Luego de correr el algoritmo en tienen los siguientes resultados:

CORRIDA 1

-----------****Inicio Test****----------

prueba[0.333] [0.0] [0.5] [0.0] [0.0] [0.408] [0.304]

salida[0.5344518542113816]

-----------****Inicio Test****----------

prueba[0.667] [0.667] [0.0] [0.0] [0.333] [0.59] [0.783]

salida[0.7733649414139344]

-----------****Inicio Test****----------

prueba[1.0] [0.333] [0.0] [0.0] [1.0] [0.273] [0.652]

salida[0.8174506482014896]

-----------****Inicio Test****----------

prueba[1.0] [0.333] [1.0] [0.0] [0.333] [0.675] [1.087]

salida[0.5910649174072746]

-----------****Inicio Test****----------

prueba[0.0] [0.0] [0.0] [0.0] [0.333] [0.195] [0.174]

salida[0.5612090592737847]

BUILD SUCCESSFUL (total time: 7 seconds)

17

CORRIDA 2

-----------****Inicio Test****----------

prueba[0.333] [0.0] [0.5] [0.0] [0.0] [0.408] [0.304]

salida[0.523879456089838]

-----------****Inicio Test****----------

prueba[0.667] [0.667] [0.0] [0.0] [0.333] [0.59] [0.783]

salida[0.7857591664802661]

-----------****Inicio Test****----------

prueba[1.0] [0.333] [0.0] [0.0] [1.0] [0.273] [0.652]

salida[0.838344143461179]

-----------****Inicio Test****----------

prueba[1.0] [0.333] [1.0] [0.0] [0.333] [0.675] [1.087]

salida[0.773597815374357]

-----------****Inicio Test****----------

prueba[0.0] [0.0] [0.0] [0.0] [0.333] [0.195] [0.174]

salida[0.4796777402345083]

BUILD SUCCESSFUL (total time: 8 seconds)

18

CORRIDA 3

-----------****Inicio Test****----------

prueba[0.333] [0.0] [0.5] [0.0] [0.0] [0.408] [0.304]

salida[0.5546697101192026]

-----------****Inicio Test****----------

prueba[0.667] [0.667] [0.0] [0.0] [0.333] [0.59] [0.783]

salida[0.7827618127881779]

-----------****Inicio Test****----------

prueba[1.0] [0.333] [0.0] [0.0] [1.0] [0.273] [0.652]

salida[0.8161754222186391]

-----------****Inicio Test****----------

prueba[1.0] [0.333] [1.0] [0.0] [0.333] [0.675] [1.087]

salida[0.7343477860857993]

-----------****Inicio Test****----------

prueba[0.0] [0.0] [0.0] [0.0] [0.333] [0.195] [0.174]

salida[0.523333496209708]

BUILD SUCCESSFUL (total time: 7 seconds)

19

CORRIDA 4

-----------****Inicio Test****----------

prueba[0.333] [0.0] [0.5] [0.0] [0.0] [0.408] [0.304]

salida[0.5430782114550174]

-----------****Inicio Test****----------

prueba[0.667] [0.667] [0.0] [0.0] [0.333] [0.59] [0.783]

salida[0.7800499350202784]

-----------****Inicio Test****----------

prueba[1.0] [0.333] [0.0] [0.0] [1.0] [0.273] [0.652]

salida[0.8501362644447757]

-----------****Inicio Test****----------

prueba[1.0] [0.333] [1.0] [0.0] [0.333] [0.675] [1.087]

salida[0.6688471637556289]

-----------****Inicio Test****----------

prueba[0.0] [0.0] [0.0] [0.0] [0.333] [0.195] [0.174]

salida[0.4880166668858884]

BUILD SUCCESSFUL (total time: 8 seconds)

20

CONCLUSIONES:

Para el primer caso:

salida[0.5344518542113816]

salida[0.523879456089838]

salida[0.5546697101192026]

salida[0.5430782114550174]

Promediando estos resultados y multiplicándolos por 366133(la mayor venta del histórico),

se puede afirmar que existirá una VENTA SEMANAL PROMEDIO de 195680,460

NUEVOS SOLES

Para el segundo caso:

salida[0.7733649414139344]

salida[0.7857591664802661]

salida[0.7827618127881779]

salida[0.7800499350202784]

Promediando estos resultados y multiplicándolos por 366133(la mayor venta del histórico),

se puede afirmar que existirá una VENTA SEMANAL PROMEDIO de 286594,930

NUEVOS SOLES

Para el tercer caso:

salida[0.8174506482014896]

salida[0.838344143461179]

salida[0.8161754222186391]

salida[0.8501362644447757]

Promediando estos resultados y multiplicándolos por 366133(la mayor venta del histórico),

se puede afirmar que existirá una VENTA SEMANAL PROMEDIO de 306945,456

NUEVOS SOLES

21

Para el cuarto caso:

salida[0.5910649174072746]

salida[0.773597815374357]

salida[0.7343477860857993]

salida[0.6688471637556289]

Promediando estos resultados y multiplicándolos por 366133(la mayor venta del histórico),

se puede afirmar que existirá una VENTA SEMANAL PROMEDIO de 44887,0186

NUEVOS SOLES

Para el quinto caso:

salida[0.5612090592737847]

salida[0.4796777402345083]

salida[0.523333496209708]

salida[0.4880166668858884]

Promediando estos resultados y multiplicándolos por 366133(la mayor venta del histórico),

se puede afirmar que existirá una VENTA SEMANAL PROMEDIO de 18581249,754

NUEVOS SOLES