Aplicacion de inteligencia artificial
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.
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