Universidad Nacional del Centro la Provincia de Buenos ...

104
Universidad Nacional del Centro la Provincia de Buenos Aires. Facultad de Ciencias Exactas An´ alisis de T´ ecnicas para predecir patrones de uso de los dispositivosm´oviles. Trabajo final de carrera presentado como requisito parcial para optar por el ıtulo de Ingeniero de Sistemas. Francisco Nicol´ asLeguizam´on Jos´ e Mart´ ın Lopez Director: Dr. Juan Manuel Rodriguez. Director: Prof. Dr. Alejandro Zunino

Transcript of Universidad Nacional del Centro la Provincia de Buenos ...

Page 1: Universidad Nacional del Centro la Provincia de Buenos ...

Universidad Nacional del Centro la Provincia de Buenos Aires.

Facultad de Ciencias Exactas

Analisis de Tecnicas para predecir patrones de uso de los

dispositivos moviles.

Trabajo final de carrera presentado como requisito parcial para optar por el

tıtulo de Ingeniero de Sistemas.

Francisco Nicolas Leguizamon

Jose Martın Lopez

Director: Dr. Juan Manuel Rodriguez.

Director: Prof. Dr. Alejandro Zunino

Page 2: Universidad Nacional del Centro la Provincia de Buenos ...

Resumen

La utilizacion de dispositivos moviles a lo largo de los anos esta creciendo

cada vez de forma mas sostenida por la constante demanda de sus usuarios de

realizar a traves de una pantalla cualquier actividad en cualquier momento.

Ası, el uso y las necesidades que se presentan hace que los fabricantes de estos

generen hardware cada vez mas potente para satisfacerlas. Es decir, camaras

con mas definicion, pantallas mas grandes, incremento de la velocidad tactil,

entre otras, asimilando cada vez mas a pequenas y potentes computadoras

de bolsillo.

Todo esto hace que caracterısticas de los dispositivos moviles. como la

baterıa, no avancen de la forma que lo hacen otros aspectos. En muchos

casos, las baterıas pasaron de durar semanas a solo un dıa. Se han planteado

gran cantidad de soluciones con respecto a los consumos excesivos a nivel

hardware, por ejemplo, apagando y prendiendo ciertos sensores de acuerdo a

su uso cotidiano. A raız de esto, nace la principal motivacion de este trabajo

que es lograr en base a sus estados pasados de datos proporcionados por

usuarios sobre el uso habitual del Movil, lograr predecir estados futuros y

brindar algun tipo de ayuda sobre como en el uso diario ciertos patrones de

comportamiento pueden reducir los consumos de baterıa.

Particularmente, el foco del trabajo es, a partir de la aplicacion de tecni-

cas de aprendizaje de maquina construir modelos predictivos para estimar

el desempeno futuro de un servicio en base a mediciones previas de las pro-

piedades del mismo. Se proponen dos herramientas para asistir la aplicacion

del enfoque. Una de ellas facilita el modelado de datos proporcionados por

sensores propios del Movil, como caracterısticas de wifi, porcentaje de brillo

1

Page 3: Universidad Nacional del Centro la Provincia de Buenos ...

2

de pantalla, uso de memoria, baterıa, entre otros. La segunda herramien-

ta permite utilizar diferentes Modelos de aprendizaje de Maquina sobre los

conjuntos de datos generados. Ası, se logra construir modelos predictivos y

obtener metricas sobre alguna propiedad de interes de alguna caracterıstica

especıfica.

Posterior al desarrollo de la misma se realizaron diversas pruebas bajo

diferentes conjuntos de datos como de diferentes configuraciones de los mo-

delos de aprendizaje propuestos para el analisis de la mejor opcion para los

datos. El objetivo de esto fue analizar los resultados obtenidos luego del en-

trenamiento de cada uno de los Modelos en cuestion, para luego tomar las

metricas generadas y exponer las comparaciones sobre otras configuraciones,

otro conjunto de datos, entre otros aspectos, para ayudar al usuario a tomar

decisiones en la eleccion. Tambien se mencionan las posibles futuras aplicacio-

nes y/o extensiones de este proyecto que generan un importante aporte a la

recomendacion de futuros posibles usos aprendidos de la tecnica presentada.

Page 4: Universidad Nacional del Centro la Provincia de Buenos ...

Agradecimientos

Agradecemos a nuestras familias por el apoyo recibido por parte de ellos

durante toda la carrera para que nosotros logremos nuestros objetivos, con la

finalizacion de este trabajo sentimos que devolvemos una parte de ese apoyo

y tenemos la oportunidad de hacerlos sentir orgullosos.

3

Page 5: Universidad Nacional del Centro la Provincia de Buenos ...

Indice general

1. Introduccion 10

1.1. Motivacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.2. Objetivos y solucion propuesta . . . . . . . . . . . . . . . . . . 11

1.3. Organizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2. Marco Teorico 14

2.1. Dispositivos Moviles . . . . . . . . . . . . . . . . . . . . . . . 14

2.1.1. Android . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2. Aprendizaje de Maquina . . . . . . . . . . . . . . . . . . . . . 17

2.2.1. Clasificacion de tecnicas de aprendizaje . . . . . . . . . 19

2.2.2. Tecnicas Contempladas . . . . . . . . . . . . . . . . . . 20

2.2.2.1. Regresion Lineal . . . . . . . . . . . . . . . . 21

2.2.2.2. Regresion Logıstica . . . . . . . . . . . . . . . 22

2.2.2.3. Clasificador Gaussian Naive Bayes . . . . . . 24

2.2.2.4. K-Nearest Neighbors (KNN) . . . . . . . . . . 25

2.2.2.5. Maquina de vector de soporte (SVM) . . . . . 26

2.2.2.6. Series de tiempo . . . . . . . . . . . . . . . . 29

2.2.2.7. Redes Neuronales Recurrentes (LSTM) . . . . 30

2.3. Evaluacion de Modelos . . . . . . . . . . . . . . . . . . . . . . 34

2.3.1. La validacion cruzada (cross-validation) . . . . . . . . . 34

2.3.2. Metricas . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2.3.3. Ajuste del modelo: Overfitting y Underfitting . . . . . 35

4

Page 6: Universidad Nacional del Centro la Provincia de Buenos ...

INDICE GENERAL 5

3. Trabajos Relacionados 37

3.1. Librerıas y Aplicaciones Utilizadas . . . . . . . . . . . . . . . 37

3.1.1. Device Analyzer . . . . . . . . . . . . . . . . . . . . . . 37

3.1.2. Scikit-learn . . . . . . . . . . . . . . . . . . . . . . . . 38

3.1.3. Keras . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.1.4. Trabajos Relacionados . . . . . . . . . . . . . . . . . . 39

3.1.4.1. Refactorizaciones para kernels computaciona-

les cientıficos en dispositivos moviles . . . . . 40

3.1.4.2. Usage Pattern Mining for Smartphone Use

Personalization . . . . . . . . . . . . . . . . . 41

3.1.4.3. Measuring mobile phone energy consumption

for 802.11 wireless networking . . . . . . . . . 42

3.1.4.4. Analysis of Dierential Synchronisation’s Energy

Consumption on Mobile Devices . . . . . . . 43

3.1.4.5. An Automatic Detector of Energy Leaks for

Smartphone Applications (ADEL) . . . . . . 44

3.1.4.6. An Investigation into Energy-Saving Program-

ming Practices for Android Smartphone App

Development . . . . . . . . . . . . . . . . . . 45

3.1.4.7. eDoctor: Automatically Diagnosing Abnormal

Battery Drain Issues on Smartphones . . . . . 46

3.1.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . 48

4. Enfoque e Implementacion 49

4.1. Modulo transformador de datos . . . . . . . . . . . . . . . . . 50

4.1.1. Estructura de los Logs . . . . . . . . . . . . . . . . . . 51

4.1.2. Datos Transformados . . . . . . . . . . . . . . . . . . . 52

4.1.3. Patron Decorator . . . . . . . . . . . . . . . . . . . . . 55

4.1.4. Patron Decotator aplicado al problema . . . . . . . . . 57

4.2. Modulo de prediccion de datos . . . . . . . . . . . . . . . . . . 60

4.2.1. Implementacion Regresion Lineal . . . . . . . . . . . . 63

4.2.2. Implementacion Clasificacion . . . . . . . . . . . . . . 65

Page 7: Universidad Nacional del Centro la Provincia de Buenos ...

INDICE GENERAL 6

4.2.3. Implementacion Red Neuronal Recurrente . . . . . . . 65

4.2.4. Hiperparametros de los modelos . . . . . . . . . . . . . 70

4.2.5. Funciones de la Herramienta . . . . . . . . . . . . . . . 70

71

5. Evaluacion 76

5.1. Correlacion de los indicadores . . . . . . . . . . . . . . . . . . 76

5.2. Archivos contemplados para la evaluacion . . . . . . . . . . . 78

5.3. Pruebas realizadas para los Algoritmos de Clasificacion . . . . 80

5.4. Resultados de los Algoritmos de Regresion . . . . . . . . . . . 86

5.5. Resultados sobre Algoritmos de Redes Neuronales . . . . . . . 89

5.5.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . 89

5.5.2. Configuracion con algoritmos de Regresion . . . . . . . 91

5.5.3. Configuracion con algoritmos de Clasificacion . . . . . 93

6. Conclusiones 96

6.1. Limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

6.2. Futuros trabajos . . . . . . . . . . . . . . . . . . . . . . . . . 99

Page 8: Universidad Nacional del Centro la Provincia de Buenos ...

Indice de figuras

2.1. Arquitectura sistema Android . . . . . . . . . . . . . . . . . . 16

2.2. Regresion lineal en dos dimensiones . . . . . . . . . . . . . . . 21

2.3. Curva Regresion Logıstica . . . . . . . . . . . . . . . . . . . . 23

2.4. Esquema conceptual del algoritmo KNN . . . . . . . . . . . . 25

2.5. Ejemplo de las funciones kernel . . . . . . . . . . . . . . . . . 28

2.6. Esquema del funcionamiento de SVM . . . . . . . . . . . . . . 28

2.7. Ejemplo basico de red neuronal recurrente . . . . . . . . . . . 31

2.8. Red neuronal recurrente desenrollada . . . . . . . . . . . . . . 31

2.9. Estructura del modulo repetidor . . . . . . . . . . . . . . . . . 32

2.10. Notacion del modulo repetidor . . . . . . . . . . . . . . . . . . 32

2.11. Efectos del modelo sobre los datos de entrenamiento. . . . . . 36

4.1. Diagrama de clases del patron Decorator . . . . . . . . . . . . 55

4.2. Estructura de los objetos en memoria del patron Decorator . . 56

4.3. Diagrama de clases. Parte 1 . . . . . . . . . . . . . . . . . . . 58

4.4. Diagrama de clases. Parte 2 . . . . . . . . . . . . . . . . . . . 58

4.5. Diagrama de clases. Parte 3 . . . . . . . . . . . . . . . . . . . 58

4.6. Ejemplo de interaccion . . . . . . . . . . . . . . . . . . . . . . 63

4.7. Diagrama de Clases implementacion de Algoritmos . . . . . . 64

4.8. Carga y visualizacion de datos . . . . . . . . . . . . . . . . . . 71

4.9. Grafico sobre disposicion de los datos . . . . . . . . . . . . . . 72

4.10. Seleccion de Modelo . . . . . . . . . . . . . . . . . . . . . . . 72

4.11. Grafico resultado . . . . . . . . . . . . . . . . . . . . . . . . . 73

4.12. Metricas resultantes del entrenamiento . . . . . . . . . . . . . 74

7

Page 9: Universidad Nacional del Centro la Provincia de Buenos ...

INDICE DE FIGURAS 8

4.13. Prediccion interactiva . . . . . . . . . . . . . . . . . . . . . . . 75

5.1. Graficos de correlacion de los archivos tratados . . . . . . . . . 77

5.2. Correlacion promedio entre el porcentaje de baterıa y demas

indicadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

5.3. Tabla y grafico de los resultados cross validation para el algo-

ritmo KNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

5.4. Tabla y grafico de los resultados cross validation para el algo-

ritmo Naıve Bayes . . . . . . . . . . . . . . . . . . . . . . . . 85

5.5. Tabla y grafico de los resultados cross validation para el algo-

ritmo SVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

5.6. Tabla y grafico de los resultados cross validation para el algo-

ritmo de regresion logıstica . . . . . . . . . . . . . . . . . . . . 86

5.7. Tabla y grafico de los promedios de todos los archivos por

algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

5.8. Tabla y grafico de los errores medios del algoritmo de regresion

logıstica para cada archivo . . . . . . . . . . . . . . . . . . . . 88

Page 10: Universidad Nacional del Centro la Provincia de Buenos ...

Indice de tablas

4.1. Tabla ejemplo de archivo CSV . . . . . . . . . . . . . . . . . . 50

4.2. Rutas de peticiones. . . . . . . . . . . . . . . . . . . . . . . . 61

4.3. Acciones sobre el modelo . . . . . . . . . . . . . . . . . . . . . 61

4.4. Funciones de perdidas . . . . . . . . . . . . . . . . . . . . . . 68

4.5. Algoritmos de optimizacion . . . . . . . . . . . . . . . . . . . 69

5.1. Correlacion entre el porcentaje de baterıa y demas indicadores.

Ordenados por correlacion promedio . . . . . . . . . . . . . . 79

5.2. Archivos utilizados . . . . . . . . . . . . . . . . . . . . . . . . 81

5.3. Tabla hiperparametros por defecto de los algoritmos . . . . . . 83

5.4. Tabla promedio de tiempos por algoritmos de Clasificacion . . 86

5.5. Correlacion de los 7 atributos contemplados para los algorit-

mos de LSTM. . . . . . . . . . . . . . . . . . . . . . . . . . . 89

5.6. Tabla de configuraciones utilizadas en LSTM para algoritmos

de regresion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

5.7. Resultados para los algoritmos LSTM con configuraciones de

regrecion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

5.8. Tabla de configuraciones utilizadas en LSTM para algoritmos

de clasificacion . . . . . . . . . . . . . . . . . . . . . . . . . . 93

5.9. Resultados para los algoritmos LSTM con configuraciones de

clasificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

5.10. Configuraciones teniendo en cuenta el optimizador sgd orde-

nadas por promedio de exactitud . . . . . . . . . . . . . . . . 95

9

Page 11: Universidad Nacional del Centro la Provincia de Buenos ...

Capıtulo 1

Introduccion

1.1. Motivacion

Los dispositivos moviles han evolucionado a partir de simples aparatos

telefonicos a computadoras pequenas con grandes capacidades computacio-

nales. Llegando a la estimacion que hay mas de 2 mil millones de dispositivos

moviles en todo el mundo [1].

Los dispositivos moviles son artefactos electronicos pequenos que se ali-

mentan a traves de una baterıa de litio. En este contexto, un Smartphone o

telefono inteligente es un dispositivo portatil que, ademas de poseer capaci-

dad de utilizar las redes telefonicas moviles, posee capacidades de computo y

almacenamiento que le permiten llevar a cabo otras tareas, como edicion de

emails, captura y procesamiento de imagenes, utilizar videojuegos, etc. Esto

se da gracias a que poseen sistemas operativos sobre los cuales se permite

instalar aplicaciones para extender sus capacidades.

Mientras el telefono movil es un dispositivo inalambrico electronico uti-

lizado para acceder y utilizar los servicios de la red de telefonıa celular, el

termino inteligente hace referencia a la capacidad de usarlo tambien como

una computadora de bolsillo.

El uso de Smartphones crece cada vez de forma mas sostenida por la

constante demanda de sus usuarios de realizar todo tipo de actividades en

cualquier momento, como por ejemplo el chequeo de emails, notas, uso del

10

Page 12: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 1. INTRODUCCION 11

servicio de mensajerıa instantanea, redes sociales, navegacion en internet,

etc [2]. Ası, las necesidades que se presentan hace que las companıas que

producen estos dispositivos disenen hardware cada vez mas potente para

satisfacerlas. Ejemplo de esto son, camaras con mas definicion, pantallas

mas grandes, incremento de la velocidad tactil, procesadores mas potentes,

mas capacidad de almacenamiento y mejor conectividad, haciendolos cada

vez mas similares a pequenas computadoras de escritorio [3]. Todo esto hace

que algunas caracterısticas como lo es, por ejemplo, la baterıa, no avancen

de la forma que lo hacen otros aspectos.

En muchos casos, las baterıas pasaron de durar semanas a solo un dıa.

Se han planteado gran cantidad de soluciones con respecto a los consumos

excesivos a nivel hardware. A raız de esto, nace la principal motivacion de este

trabajo que es lograr encontrar patrones de uso que afecten significativamente

el consumo de baterıa con el fin de poder recomendar al usuario sobre esto,

por ejemplo, muchos usuarios cargan el telefono de acuerdo a su conveniencia

y otros desactivan el Bluetooth o el WiFi para salvar la vida de la baterıa y

otros no saben que mas hacer para extender su duracion.

Desde la creacion del smartphone la duracion de la baterıa ha sido uno

de los principales problemas para sus usuarios. En su mayorıa, dependiendo

el uso, la baterıa de un smartphone dura aproximadamente un dıa, siendo

un tiempo de autonomıa demasiado corto la cual presenta una oportunidad

de estudio y una muy enfatica motivacion para atacar esta problematica. A

su vez estos dispositivos tienen la capacidad de capturar logs, es decir, un

seguimiento de registros de todas las actividades que se estan generando en el

mismo, proporcionando una enorme cantidad de datos para poder procesar

y que posteriormente seran de utilidad en el estudio.

1.2. Objetivos y solucion propuesta

El objetivo de este trabajo es analizar como se pueden utilizar distintas

tecnicas de Machine Learning para predecir el consumo de baterıa a partir

de un conjunto de dataset que se le brindaran como datos historicos.

Page 13: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 1. INTRODUCCION 12

Como primer paso se creara un modulo en donde se puedan formatear los

datos brindados para realizar este proyecto, los mismos estan creados en un

formato establecido por la Universidad de Cambridge [4] los cuales deberan

ser procesador y formateados a un conjunto de logs que sirvan como entrada

a los algoritmos provistos por la librerıa sk-learn1 de Python.

Para facilitar la tarea de evaluacion se creara un modulo como aplica-

cion Web, el cual presentara una interface que permitira elegir el conjunto

de datos que se quieran estudiar ası como tambien los atributos implicados

al mismo estudio, esta aplicacion se conectara con un servidor que sera el

encargado de procesar toda esta informacion y aplicar los algoritmos con sus

diferentes variantes de ajustes para optimizar su rendimiento, ası como tam-

bien, devolver todo el informe relacionado con metricas teniendo en cuenta

diferentes tecnicas de calculos.

Todo esto nos permitira realizar el estudio que nos motivo desde un prin-

cipio, poder comparar modelos de aprendizaje y ver cual de todos se adapta

mejor a la problematica establecida, para esto se estudiaran diferentes metri-

cas entre ellas el porcentaje de acierto con datos futuros.

1.3. Organizacion

El resto del trabajo se organiza en 5 capıtulos. A continuacion se da un

breve resumen de los temas que se abordan en cada uno de ellos.

En el capıtulo 2 se presenta el marco teorico, donde se definen los concep-

tos utilizados a lo largo de todo el informe, tales como: Android, aprendizaje

de maquina, regresion, clasificacion, modelos, componentes, entre otros.

En el capıtulo 3 se presentan algunos trabajos relacionados desde dife-

rentes perspectivas: herramientas utilizadas para el estudio, y trabajos que

involucran problematicas en la duracion de la baterıa.

En el capıtulo 4 se describe el enfoque y las herramientas propuestas

para satisfacerlos. Se detalla la arquitectura, diseno e implementacion de las

1http://scikit-learn.org

Page 14: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 1. INTRODUCCION 13

mismas, como las diferentes decisiones que se consideraron mas importantes.

En el capıtulo 5 se presenta la evaluacion del enfoque sobre los casos

de estudio. Se presentan las propiedades consideradas en los escenarios eva-

luados, los modelos que han sido generados y analizados, y los resultados

alcanzados.

Finalmente, en el capıtulo 6 se exponen las conclusiones del trabajo rea-

lizado, las limitaciones encontradas del enfoque y las herramientas, y posibles

lıneas de trabajo futuro.

Page 15: Universidad Nacional del Centro la Provincia de Buenos ...

Capıtulo 2

Marco Teorico

En este capıtulo se presentan los conceptos fundamentales del dominio,

el cual esta centrado en torno a la prediccion de patrones en el uso de dispo-

sitivos moviles.

2.1. Dispositivos Moviles

Los dispositivos moviles son artefactos electronicos pequenos que se ali-

mentan a traves de una baterıa de litio. En este contexto, un smartphone o

telefono inteligente es un telefono movil con una mayor capacidad de computo

y conectividad que un telefono movil convencional. Mientras el telefono movil

es un dispositivo inalambrico electronico utilizado para acceder y utilizar los

servicios de la red de telefonıa celular, el termino inteligente hace referencia

a la capacidad de usarlo tambien como una computadora de bolsillo.

Una de las caracterısticas mas destacadas de los smartphones reside en la

posibilidad que brindan de instalar aplicaciones mediante las cuales el usuario

final logra ampliar las capacidades y funcionalidades del equipo, obteniendo

ası una personalizacion total del dispositivo. Otras caracterısticas importan-

tes son la capacidad multitarea, el acceso y conectividad a Internet vıa WiFi

o red movil, el soporte de clientes de email, la eficaz administracion de da-

tos y contactos, la posibilidad de lectura de archivos en diversos formatos,

como PDF o MS Office Docs, y la posibilidad de obtener datos del ambien-

14

Page 16: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 15

te a traves de sensores especializados como el acelerometro y el sistema de

posicionamiento global conocido como GPS por sus siglas en ingles, entre

otros.

Para poder ejecutar aplicaciones en los dispositivos moviles, los mismos

poseen, al igual que las computadoras, sistemas operativos. El sistema ope-

rativo es el software que administra los recursos de hardware y software del

dispositivo movil. En este sentido su objetivo es proveer un ambiente en el

cual el usuario pueda ejecutar programas en un manera conveniente y efi-

ciente.

2.1.1. Android

Android es un sistema operativo basado en el nucleo Linux. Fue disenado

principalmente para dispositivos moviles con pantalla tactil, como smartp-

hones, tabletas, aunque tambien se usa en otros dispositivos, como relojes

inteligentes, televisores y sistemas de entretenimiento de automoviles. Ini-

cialmente fue desarrollado por Android Inc., empresa que Google respaldo

economicamente y mas tarde, en 2005, compro [5]. Android fue presenta-

do en 2007 junto la fundacion del Open Handset Alliance (un consorcio de

companıas de hardware, software y telecomunicaciones) para avanzar en los

estandares abiertos de los dispositivos moviles. El primer movil con el sistema

operativo Android fue el HTC Dream y se vendio en octubre de 2008. An-

droid es el sistema operativo movil mas utilizado del mundo, con una cuota

de mercado superior al 80 % al ano 2017, muy por encima de IOS [6].

Los componentes principales del sistema operativo de Android (cada sec-

cion se describe en detalle):

Aplicaciones: las aplicaciones base incluyen un cliente de correo electroni-

co, programa de SMS, calendario, mapas, navegador, contactos y otros.

Todas las aplicaciones estan escritas en lenguaje de programacion Java.

Marco de trabajo de aplicaciones: los desarrolladores tienen acceso com-

pleto a los mismas API del entorno de trabajo usados por las aplicacio-

nes base. La arquitectura esta disenada para simplificar la reutilizacion

Page 17: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 16

de componentes; cualquier aplicacion puede publicar sus capacidades

y cualquier otra aplicacion puede luego hacer uso de esas capacidades

(sujeto a reglas de seguridad del framework). Este mismo mecanismo

permite que los componentes sean reemplazados por el usuario.

Figura 2.1: Arquitectura del sistema Android.1

Bibliotecas: Android incluye un conjunto de bibliotecas de C/C++ usa-

das por varios componentes del sistema. Estas caracterısticas se expo-

nen a los desarrolladores a traves del marco de trabajo de aplicaciones

de Android. Algunas son: System C library (implementacion biblioteca

C estandar), bibliotecas de medios, bibliotecas de graficos, 3D y SQLite,

entre otras.

Runtime de Android: Android incluye un conjunto de bibliotecas base

que proporcionan la mayor parte de las funciones disponibles en las

bibliotecas base del lenguaje Java. Cada aplicacion Android corre su

1https://es.wikipedia.org/wiki/Android

Page 18: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 17

propio proceso, con su propia instancia de la maquina virtual Dalvik.

Dalvik ha sido escrito de forma que un dispositivo puede correr multi-

ples maquinas virtuales de forma eficiente. Dalvik ejecutaba hasta la

version 5.0 archivos en el formato de ejecutable Dalvik (.dex), el cual

esta optimizado para memoria mınima. La Maquina Virtual esta ba-

sada en registros y corre clases compiladas por el compilador de Java

que han sido transformadas al formato.dex por la herramienta inclui-

da dx. Desde la version 5.0 utiliza el ART, que compila totalmente al

momento de instalacion de la aplicacion.

Nucleo Linux: Android depende de Linux para los servicios base del

sistema como seguridad, gestion de memoria, gestion de procesos, pila

de red y modelo de controladores. El nucleo tambien actua como una

capa de abstraccion entre el hardware y el resto de la pila de software.

2.2. Aprendizaje de Maquina

El aprendizaje de maquina o aprendizaje automatico es una rama de la

inteligencia artificial cuyo objetivo es desarrollar tecnicas que permitan a las

computadoras descubrir patrones a partir de datos suministrados [7]. En el

aprendizaje de maquina los programas no se codifican especıficamente para

resolver un problema, sino que los mismos extraen conocimiento de datos con

la esperanza de poder generalizarse cuando arriben nuevos datos. Los datos

son la unica herramienta de la que se dispone y conoce a ciencia cierta sobre

las caracterısticas de un dominio arbitrario sobre el cual se quiere generalizar

conocimiento. Puede entenderse haciendo una analogıa con el aprendizaje

humano basado en la experiencia, en donde el hombre basa su conocimiento

en tres partes:

1. Recuerdo, el hombre reconoce cuando ha sido la ultima vez que estuvo

en una determinada situacion (conjunto de datos de entrenamiento).

2. Adaptacion, reconoce la ultima vez que se probo una accion (salida

producida)

Page 19: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 18

3. Generalizacion, reconoce si ha funcionado o no esta accion (si fue co-

rrecta o no). generalizacion hace referencia a que algunos modelos puede

ajustarse muy bien a los datos de entrada, pero cuando vienen nuevos

datos fallan. Esto se debe a que se aprende particularidades del conjun-

to de datos de entrenamiento. Cuando se generaliza, el modelo puede

no ajustarse tan bien a los datos de entrada, pero fallara mucho menos

con datos nuevos [8].

El aprendizaje de maquina, entonces, es un proceso para que las compu-

tadoras modifiquen o adapten sus acciones (predictivas o de control) para

que sus resultados sean mas precisos. Reune ideas de neurociencia, biologıa,

estadıstica, matematica y fısica, para generar tecnicas y hacer que la compu-

tadora aprenda. Un area importante relacionada con el aprendizaje de maqui-

na es la minerıa de datos, el proceso de extraer informacion util de grandes

conjuntos de datos por medio de algoritmos eficientes.

Si se define el aprendizaje de maquina como la mejora de tareas a traves

de la experiencia, surge la duda de como la computadora puede saber si esta

aprendiendo mejor o de que forma podrıa mejorar ese aprendizaje. De esto,

surgen diferentes tipos de tecnicas o algoritmos de aprendizaje. Por ejemplo,

se le puede indicar a un algoritmo la respuesta correcta para un problema,

ası, la proxima vez que se aplique su desempeno sera mejor. Tambien se

deben aplicar diferentes tecnicas para la validacion de datos, esto permite

sacar conclusiones acerca del acierto que tienen estos algoritmos y poder

determinar que algoritmos se adapta mejor a la problematica a atacar.

Estas diferentes alternativas proveen una forma de clasificar las diferentes

metodos de aprendizaje que sera detallada en la siguiente seccion. Cabe des-

tacar que por mas que existan distintos tipos de aprendizaje, todos los meto-

dos comparten el mismo objetivo de generalizacion: la tecnica debe producir

salidas sensibles para datos de entrada que no fueron encontrados durante

el aprendizaje, teniendo en cuenta tambien que el algoritmo debe lidiar con

ruido en los datos, es decir, imprecision en los valores que pueden afectar al

flujo natural de estos algoritmos.

Page 20: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 19

2.2.1. Clasificacion de tecnicas de aprendizaje

El modo de aprendizaje que una tecnica particular puede realizar queda

determinado por la naturaleza de los datos de entrada, es decir, los datos de

entrenamiento (dataset). Basicamente las tecnicas de aprendizaje se clasifican

en dos grandes grupos: aprendizaje supervisado y no supervisado

Aprendizaje Supervisado

El aprendizaje supervisado utiliza un conjunto de datos basado en dos pares

de objetos: los datos de entrada o conjunto de ejemplos del dominio y las res-

puestas correctas (targets) para una propiedad determinada . A traves de las

respuestas correctas provistas y basado en el conjunto de datos la tecnica de

aprendizaje generaliza el comportamiento para responder a todas las posibles

entradas. Este modo de aprendizaje, entonces, es un proceso que se realiza

mediante un entrenamiento controlado por un agente externo que determina

la respuesta que deberıa generar la tecnica a partir de una entrada determi-

nada. Dentro del aprendizaje supervisado, las tecnicas pueden separarse en

dos grupos de acuerdo a la naturaleza de la propiedad o respuesta.

Clasificacion: Consiste en asignar a cada ejemplo una etiqueta o clase

a la que pertenece basado en el entrenamiento de ejemplares de cada clase.

Los datos de entrenamiento son instancias que pertenecen a una unica clase

y el conjunto de clases cubre todas las salidas posibles, por eso se considera

al proceso de clasificacion como un proceso discreto. El algoritmo de clasi-

ficacion tiene como objetivo encontrar umbrales de decision que sirvan para

identificar las diferentes clases.

Regresion: El proceso de regresion predice valores numericos de atribu-

tos a partir de funciones matematicas polinomiales que describan o se ajusten

lo mas posible a todos los puntos del dominio, es decir, todos los valores del

conjunto de entrenamiento correspondientes a la propiedad que se quiere pre-

decir. Generalmente, se considera un problema de aproximacion de funcion o

interpolacion al encontrar un valor numerico entre los valores conocidos. Por

lo tanto, el eje primordial del proceso de regresion es encontrar la funcion

Page 21: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 20

que mejor represente al conjunto de puntos, ya que funciones con distintos

grados de polinomios producen diferentes efectos.

Aprendizaje No Supervisado

En el aprendizaje no supervisado, la maquina simplemente recibe los datos de

entrada sin etiquetas o respuestas correctas como en el metodo supervisado,

ni valores de recompensa desde el ambiente. Aun ası, es posible desarrollar un

framework formal para llevar a cabo aprendizaje no supervisado basado en

la nocion de que el objetivo es construir una representacion de la entrada que

puede ser usada para tomar decisiones, predecir futuras entradas, comunicar

eficientemente entradas para otras maquinas, entre otras posibilidades.

El aprendizaje no supervisado puede entenderse como la busqueda de pa-

trones en los datos independientemente del ruido presente en los mismos. Por

ejemplo, las tecnicas de agrupamiento (clustering) son tecnicas de aprendi-

zaje no supervisado que agrupan un conjunto de objetos de modo tal que los

objetos pertenecientes a un mismo grupo (cluster) comparten algun tipo de

similitud entre ellos, de igual sentido que se diferencian con los objetos de

otro grupo. A diferencia del proceso de clasificacion, los grupos o clases no

son conocidos fehacientemente antes del entrenamiento, un claro metodo de

aprendizaje no supervisado.

2.2.2. Tecnicas Contempladas

A continuacion se presentaran los aspectos teoricos de los modelos pre-

sentados e implementados en este proyecto: Regresion lineal y logıstica [9],

Gaussian Naive Bayes, K Nearest Neighbours (K vecinos mas cercanos), Sup-

port Vector Machine(maquinas de vectores soporte) SVM y Red Neuronal

Recurrente de memoria de corto plazo (LSTM - Long short-term memory)

[10].

Page 22: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 21

2.2.2.1. Regresion Lineal

La regresion es la prediccion de un valor desconocido a traves del calculo

de una funcion matematica a partir de los valores conocidos. Si se considera

esta funcion como una funcion lineal, la salida sera la suma de cada valor

conocido multiplicado

Figura 2.2: Regresion lineal en dos dimensiones.2

por una constante, lo cual define una lınea recta (plano en 3D o hiper-

plano en dimensiones mayores) que circundan los puntos, como se puede ver

en la Figura 2.2. Para encontrar la recta (funcion lineal) que mejor se ajusta

a los datos, se busca minimizar la distancia entre cada punto y dicha rec-

ta. Luego, se intentara minimizar la funcion de error que se calcula como

la suma de las distancias. Si se minimiza la suma de los cuadrados de las

distancias, se obtiene la minimizacion mas comun llamada optimizacion de

mınimos cuadrados. Para minimizar este error en la funcion lineal, puede

utilizarse distintas tecnicas de regresion lineal, como ridge-regression y gra-

diente estocastico descendiente. La primera aplica una penalizacion (ridge) a

cada constante. La segunda, aplica un diferencial sobre la funcion obtenien-

do el gradiente el cual por definicion, es la direccion en la que incrementa o

disminuye en mayor medida. Dado que el objetivo es minimizar el error de

2https://es.wikipedia.org/wiki/Regresion lineal

Page 23: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 22

prediccion, se debe seguir la funcion en direccion del gradiente negativo en

la cual la funcion disminuye.

2.2.2.2. Regresion Logıstica

La regresion logıstica tiene ciertas similitudes en su planteamiento con la

regresion lineal, pero esta orientada a resolver problemas de clasificacion y no

de prediccion. La Regresion Logıstica no se utiliza para variables numericas,

sino que se emplea para predecir las clases categorica a las que pertenecen

las variables independientes. Debido a su sencillez y rapida aplicacion, es-

te algoritmo suele utilizarse con frecuencia para problemas de Clasificacion

Binaria y Clasificacion Multiclase con fronteras lineales.

Para ello se apoya en una funcion logıstica como la funcion “sigmoide” fi-

gura 2.3, que toma como entrada cualquier numero real y devuelve un numero

real comprendido entre 0 y 1 y que podemos interpretar como una probabi-

lidad.

f(t) =et

1 + et

Debido a que los modelos de clasificacion presentan cierta dificultad para

identificar a que categorıa pertenece una observacion dada, ya que como se

menciono, el valor devuelto por la regresion logıstica puede ser visto como

un valor probabilıstico entre 0 y 1, es donde se introducen las funciones de

perdidas. Por ejemplo Cross entropy loss (perdida de entropıa cruzada). La

entropıa cruzada se usa comunmente para cuantificar la diferencia entre dos

distribuciones de probabilidad. Por lo general, la distribucion “verdadera” (la

que el algoritmo de aprendizaje automatico intenta igualar) es la que indica

con un 100 % de probabilidad que una muestra pertenece a una clase. Por

ejemplo, si se supone que para una instancia de entrenamiento especıfica, la

clase es B (de las posibles A o B), la distribucion unica para esta sera:

Pr ( Clase A) Pr ( Clase B)

0 .0 1 .0

3https://es.wikipedia.org/wiki/Regresion logistica

Page 24: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 23

Figura 2.3: Curva Regresion Logıstica.3

Como los algoritmos de aprendizaje automatico pueden predecir valores entre

0-1 puede tomarse como ejemplo el los valores siguiente de prediccion:

Pr ( Clase A) Pr ( Clase B)

0 .345 0 .655

Lo que determina que tan cerca esta la distribucion predicha de la verdadera

es la perdida de entropıa cruzada, la cual hace uso de la formula:

H(p, q) = −∑x

p(x) ∗ logq(x)

Donde p(x) es la probabilidad deseada, q(x) la probabilidad real. En este

caso, la perdida es 0.423 :

H = −(0,0 ∗ ln(0,345) + 1,0 ∗ ln(0,655)) = 0,423

Ası de “equivocada” o “muy lejos” esta la prediccion de la verdadera

distribucion.

En este proyecto la aplicacion de la Regresion Logıstica se dio, por ejem-

plo, para predecir si un movil necesita carga de baterıa, o si en determina-

do momento se debe apagar un determinado sensor (division en dos clases:

Page 25: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 24

apagar sensor o no apagar sensor). Para ello, es necesario conocer el compor-

tamiento de dicho movil (sensores encendidos, si se encuentran escaneando,

estado de la baterıa, etc.). La deteccion de este tipo de cuestiones permite

ofrecerle al usuario una atencion personalizada a fin de recomendarle ajus-

tes determinados para disminuir el gasto innecesario de energıa y ahorrar

baterıa.

2.2.2.3. Clasificador Gaussian Naive Bayes

El clasificador Naive Bayes es un termino de estadıstica, que consiste

en un simple clasificador probabilıstico basado en el teorema de Bayes con

supuestos de independencia entre datos.

La siguiente ecuacion corresponde al teorema de Bayes. Definimos “Class”

como la clase que estamos analizando y “Data” como datos de entrada u

observacion.

P (Class|Data) =P (Class) ∗ P (Data|Class)

P (Data)

En terminos simples, Naive Bayes asume que no existe relacion entre las

caracteristicas utilizadas para el aprendizaje. Por ejemplo, se puede clasificar

como una manzana una fruta que sea roja, redonda y con diametro aproxima-

do de 10 cm4. Mas alla de que estas caracterısticas dependan o no de otras,

Naive Bayes asume que todas influyen independientemente a la probabilidad

de que realmente es una manzana.

Para otros modelos de probabilidad, los clasificadores de Bayes se pueden

entrenar de manera muy eficiente en un entorno de aprendizaje supervisa-

do. En muchas aplicaciones practicas, la estimacion de parametros para los

modelos Bayes utiliza el metodo de maxima verosimilitud, es decir, se pue-

de trabajar con el modelo de Bayes sin aceptar probabilidad bayesiana o

cualquiera de los metodos bayesianos.

Una ventaja del clasificador de Bayes es que solo se requiere una pequena

cantidad de datos de entrenamiento para estimar los parametros (las medias

4https://en.wikipedia.org/wiki/Naive Bayes classifier

Page 26: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 25

y las varianzas de las variables) necesarias para la clasificacion. Como se

asume que las variables son independientes, solamente es necesario calcular

las varianzas de las variables de cada clase y no toda la matriz de covarianza.

El clasificador de Bayes es rapido e incremental y puede trabajar con atri-

butos discretos y continuos. Tiene una performance excelente en problemas

de la vida real y puede explicar sus decisiones como la suma de las ganancias

de informacion. Por otra parte puede presentar un bajo rendimiento cuando

se presenten fuertes dependencias entre las caracterısticas.

2.2.2.4. K-Nearest Neighbors (KNN)

El metodo KNN (K vecinos mas cercanos) es usado para tareas de ta-

reas de clasificacion de datos. Mas especıficamente, KNN es un metodo de

vecindad basado en casos o instancias. Se asume que el conjunto completo de

entrenamiento incluye no solo los datos sino tambien la clasificacion deseada.

Los datos de entrenamiento son entonces el modelo [11].

Funcionamiento del Algoritmo Primero se definen los modelos presen-

tes en el espacio solucion del algoritmo y un valor resultado.

Figura 2.4: Esquema conceptual del algoritmo KNN5

En la figura 2.4 se puede observar un ejemplo de como quedarıa un espacio

de relacion dentro del algoritmo. Cada figura representa a un modelo y su

forma y color representa el tema principal. Para realizar una deduccion se

debe definir un K. Este K representa a la cantidad de vecinos que se tendran

en cuenta para realizar la clasificacion.

5https://en.wikipedia.org/wiki/K-nearest neighbors algorithm

Page 27: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 26

Tomando el ejemplo anterior, si se toma un K=2, la clasificacion dara que

es un triangulo ya que los dos vecinos mas cercanos son de este tipo. Con

un K=5 al distinguirse que los vecinos son 2 triangulos rojos y 3 cuadrados

azules toma la clase del mayor, osea el punto clasifica en cuadrado azul6.

Para la clasificacion con KNN, el punto desconocido es asignado a la clase

mas comun de los K vecinos mas cercanos. KNN pierde precision si se utilizan

datos ruidosos o con atributos que no aportan informacion. Si k es demasiado

pequeno, entonces el resultado es muy sensible a puntos ruidosos. Por otro

lado si k es demasiado grande, la vecindad del punto desconocido incluira

muchos puntos de otras clases lejanas. Es interesante valorar los vecinos con

la distancia que lo separa del punto desconocido. La formula que determina

el peso segun su distancia es la siguiente:

y =k∑

i=1

wi ∗ yi, con wi =1

d(xtest, xi)2

La eleccion de la metrica de la distancia es crıtica para el rendimiento

del algoritmo. La siguiente formula determina la distancia entre dos veci-

nos(distancia euclidiana):

D(X1, X2) =

√√√√ n∑i=1

(X1i −X2i)2

2.2.2.5. Maquina de vector de soporte (SVM)

Las maquinas de vectores soporte (SVM, del ingles Support Vector Ma-

chines) aunque originariamente fueron pensadas para resolver problemas de

clasificacion binaria, actualmente se utilizan para resolver otros tipos de pro-

blemas (regresion, agrupamiento, multiclasificacion).

Son diversos los campos en los que han sido utilizadas con exito, tales

como vision artificial, reconocimiento de caracteres, categorizacion de texto

e hipertexto, clasificacion de proteınas, procesamiento de lenguaje natural,

analisis de series temporales, etc. De hecho, desde su introduccion, han ido

6https://es.wikipedia.org/wiki/K vecinos mas proximos

Page 28: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 27

ganando un merecido reconocimiento gracias a sus solidos fundamentos teori-

cos [12].

Los SVM forman parte de los clasificadores lineales ya que utilizan se-

paradores lineales o hiperplanos en espacios de caracterısticas de muy alta

dimensionalidad (introducidos por funciones nucleo o kernel) con un sesgo

inductivo muy particular. Derivan de la Teorıa del aprendizaje estadıstico,

segun la cual un sistema con aprendizaje debe, a partir de un conjunto de

informacion acerca de un proceso computacional, construir un modelo que

permita predecir nuevos fenomenos asociados a el [13]. De manera general

para clasificacion, las Maquinas de Vectores de Soporte buscan un hiperplano

que separe de forma optima los puntos de una clase de la otra, osea buscan

el hiperplano en que la distancia con los puntos proximos sea maxima.

Analıticamente, se toma la distancia que existe entre la lınea y el primer

punto interceptado (en direccion perpendicular), si se ubica una “zona de-

sierta” alrededor de la lınea, ningun punto ubicado en dicha zona puede ser

clasificado ya que se encuentra demasiado cerca de la lınea. El radio maxi-

mo que puede tener esta region es llamado margen, senalado como M y los

puntos de cada clase mas cercanos a la lınea de clasificacion se denominan

vectores de soporte.

Desde un punto de vista practico, el hiperplano separador con este margen

ha demostrado tener una buena capacidad de generalizacion, evitando en

gran medida el problema del sobreajuste a los ejemplos de entrenamiento.

Las funciones kernel, tambien conocidas como nucleo, realizan la sepa-

racion y traslado de las muestras a un espacio de caracterısticas de mayor

dimension, el cual aumenta la capacidad computacional de la maquinas de

aprendizaje lineal, como se muestra en la figura 2.5.

En la figura 2.6 se puede ver un ejemplo del funcionamiento de SVM, en

el que se obtiene un buen comportamiento predictor de las diferentes clases

clasificadas.

Dentro de la clasificacion SVM multiclase, hay dos filosofıas para intentar

clasificar los datos en mas de dos categorıas:

Page 29: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 28

Figura 2.5: Ejemplo de las funciones kernel

Figura 2.6: Esquema del funcionamiento de SVM7

1. Oneagainstone (1A1). Se crean k(k1)/2 modelos donde k es el numero

de categorıas. En esta categorıa el clasificador es entrenado entre cada

par de clases.

2. Oneagainstall (1AA). Consiste en dividir cada categorıa en otras y com-

binarlas todas. En esta aproximacion se entrena un clasificador entre

una clase y las k1 otras clases (donde k es el numero total de clases).

Cada discriminante k representa la decision de que k pertenezca o no

a esa clase.

Funciones de perdida

7https://dimensionless.in/introduction-to-svm/

Page 30: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 29

En las clasificaciones mediante SVM el margen que separa las clases de

puntos, mientras mas grande sea mayor es la seguridad que el hiperplano de

separacion es bueno.

En la regresion se utiliza ε -insensible lineal: El similar de lo que serıa

para clasificacion, el margen es la formacion de una banda o tubo alrededor

de la verdadera funcion de regresion.

La funcion de perdida ignora los errores asociados con los puntos que

caen dentro de una banda que esta a una cierta distancia de la funcion de

regresion lineal. Es decir, si el punto verifica |y−f(x)| ≤ ε la funcion perdida

debera anularse.

La principal razon para elegir este tipo de funciones es la de permitir

cierta dispersion en la funcion solucion, de tal forma que todos los ejemplos

que caen en la region tubo definida por ±ε no seran considerados vectores

soporte.

2.2.2.6. Series de tiempo

Una serie temporal o cronologica es una secuencia observaciones o valores,

medidos en periodos regulares de tiempo. Los datos pueden estar espaciados

en periodos iguales (como la temperatura en de una ciudad cada hora) o

desiguales (como el peso de una persona en mediciones periodicas en consul-

torio o la farmacia). Los diferentes metodos que se utilizan para analizar las

series temporales ayudan a extraer las relaciones entre los datos, y ası poder

calcular uno o varios valores futuros y desconocidos, utilizando informacion

contenida en dicha senal y/o contenida en otras variables externas.

Componentes Uno de los usos mas habituales de las series de datos tem-

porales es su analisis para prediccion y pronostico (ası se hace por ejemplo con

los datos climaticos, las acciones de bolsa, o las series de datos demograficos).

Las series temporales se estudian en ingenierıa, economıa, finanzas y ciencias

sociales [14].

Los componentes de una serie de tiempo que determinan el resultado de

los valores medidos se distinguen en los cuatro siguientes:

Page 31: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 30

1. Tendencia. Indica el incremento o decremento a largo plazo de los datos

Por ejemplo, la tendencia creciente del ındice ventas de inmobiliario.

2. Estacionalidad. Indica los patrones repetitivos con un perıodo definido.

Ejemplo: en un ano(las estaciones), una semana(los fines de semana), o

en un dıa(horas picos o horario nocturno). Obteniendo las variaciones

que se producen en esos perıodos de repeticion.

3. Ciclicidad. Indica los cambios cıclicos sin un periodo definido, puede

ser superior a un ano. No se puede identificar un periodo claro para

esta variabilidad, usualmente es de plazo mas largo que las de estacio-

nalidad.

4. Residuo. Fluctuaciones irregulares e impredecibles. Debidos por ejem-

plo a crisis financieras, fenomenos como tormentas, terremotos, inun-

daciones, huelgas, guerras, avances tecnologicos, etc.

2.2.2.7. Redes Neuronales Recurrentes (LSTM)

Las Redes Neuronales son un campo muy importante dentro de la Inte-

ligencia Artificial. Inspirandose en el comportamiento conocido del cerebro

humano, principalmente el referido a las neuronas y sus conexiones, trata

de crear modelos artificiales que solucionen problemas difıciles de resolver

mediante tecnicas algorıtmicas convencionales.

Los seres humanos no empezamos a pensar desde cero a cada segundo.

Por ejemplo, mientras leemos, entendemos cada palabra basandonos en el

contexto que forman las palabras previas. No desperdiciamos las ideas ante-

riores, sino que estas tienen persistencia en la memoria.

Las redes neuronales tradicionales no cuentan con esta capacidad, y es su

mayor defecto. Por ejemplo, suponga el caso en el que queremos clasificar que

clase de evento esta pasando en un punto de una pelıcula. No esta muy claro

como una red neuronal tradicional podrıa usar razonablemente las escenas

anteriores para predecir las siguientes. Y aquı es donde entran en juego las

redes neuronales recurrentes, ya que estas sı resuelven este problema. Su

Page 32: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 31

principal caracterıstica es que son redes con bucles, que permiten que la

informacion persista.

Figura 2.7: Ejemplo basico de red neuronal recurrente8

En el diagrama 2.7, se observa como una parte de la red neuronal, “A”,

recibe una entrada “x” y devuelve una salida “h”. El bucle permite que la

informacion pase de un ciclo de la red al siguiente. Pese a que el concepto

de bucle parezca algo extrano, las redes neuronales que cuentan con ellos no

son tan distantes de la redes neuronales tradicionales.

Una red neuronal recurrente puede ser creada utilizando multiples copias

de la misma red, pasando el mensaje o salida al nodo sucesor. Si desenrolla-

mos el bucle, tendrıamos algo parecido a la figura 2.8.

Figura 2.8: Red neuronal recurrente desenrollada9

Esta forma de cadena hace prever que las redes neuronales recurrentes

estan ıntimamente relacionadas con secuencias y listas. En este proyecto,

dado sus propiedades, se aplico para la prediccion en series de tiempo, ya

que al poder mantener una memoria de estados anteriores es ideal para este

tipo de predicciones.

8http://colah.github.io/posts/2015-08-Understanding-LSTMs/9http://colah.github.io/posts/2015-08-Understanding-LSTMs/

Page 33: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 32

Long Short Term Memory (LSTM)

Son un tipo especial de redes neuronales recurrentes, capaces de aprender

una larga lista de dependencias en largos perıodos de tiempo.

Todas las redes neuronales recurrentes tienen forma de cadena al repetir

sus modulos. En las RNN estandar, el modulo repetidor tiene una estructura

muy simple, con una sola capa, como podrıa ser la de tipo “tanh”. Las redes

LSTM tambien tienen forma de cadena, pero el modulo repetidor en vez de

tener una sola capa, tiene cuatro (figura 2.9).

Figura 2.9: Estructura del modulo repetidor10

Figura 2.10: Notacion del modulo repetidor11

La clave de las redes LSTMs se encuentra en el estado de la celda, es decir,

en la linea horizontal que recorre la parte superior del diagrama 2.8, ya que

permite a la informacion fluir por toda la red con solo algunas pequenas

interacciones, sin ser a penas alterada. La red tambien tiene la habilidad

de borrar o anadir informacion al estado de la celda mediante estructuras

llamadas puertas. Estas puertas son una manera de permitir opcionalmente

a la informacion circular o no, y se componen de una capa “sigmoide” y una

10http://colah.github.io/posts/2015-08-Understanding-LSTMs/11http://colah.github.io/posts/2015-08-Understanding-LSTMs/

Page 34: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 33

operacion de multiplicacion. Las salidas de la capa “sigmoide” alternan entre

0 y 1, describiendo si la informacion fluye o no. Una red LSTM tiene 3 de

estas puertas, para proteger y controlar el estado de la celda.

Las redes neuronales LSTM siguen una serie de pasos para decidir que

informacion se va a ir almacenando o borrando. Podemos destacar los si-

guientes:

1. Decidir que informacion despreciar. Esta decision la toma la capa “sig-

moide”, que devuelve una salida igual a 1 si se busca mantener la

informacion, o 0 si queremos deshacernos de ella. Por ejemplo se tiene

un Lenguaje, donde se quiere predecir una palabra basandose en las

anteriores, el estado de la celda puede almacenar el genero del sujeto

para usar los pronombres adecuados. Cuando nos encontremos un nue-

vo sujeto, olvidaremos el genero del anterior ya que no sera de utilidad.

2. Decidir que informacion se va a almacenar. Consta de dos partes: prime-

ro, una capa “sigmoide” decide que valores son actualizados. Despues,

una capa “tanh” crea un vector con los nuevos valores candidatos que

pueden ser anadidos al estado. En el ejemplo anterior, se decidirıa que

queremos anadir el genero del nuevo sujeto al estado de la celda, para

reemplazar el viejo que queremos olvidar.

3. Actualizar el estado de la celda. En el paso anterior se decide que

hacer, y ahora toca hacerlo. Se multiplica el viejo estado por la salida

de la capa “sigmoide” del primer paso, olvidando ası las cosas que

se decidieron olvidar. A esto, se le suma el producto de la salida de

la capa “sigmoide” y de la capa “tanh” del segundo paso. Con ello,

se consiguen saber los nuevos valores candidatos, escalados segun la

decision de actualizar el estado de la celda. En el caso de modelado de

lenguaje, ahora es cuando se desecha la informacion sobre el genero del

viejo sujeto y se anade la nueva informacion, como se decidio en los

pasos anteriores.

4. Decidir la salida basandose en el estado de la celda, pero de manera

Page 35: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 34

filtrada. Primero, mediante una capa “sigmoide”, se decide que partes

del nuevo estado de la celda se van a sacar como salida. Despues, se

pasa el estado de la celda por una capa “tanh” para tener valores entre

-1 y 1, y se multiplica por la salida de la capa “sigmoide” para sacar

solo las partes que se decidan. En el ejemplo de modelado de lenguaje,

una vez que se encuentre el nuevo sujeto, se sacara informacion acerca

de el, como puede ser si este es singular o plural, para despues poder

conjugar correctamente el verbo que le sigue.

2.3. Evaluacion de Modelos

Una vez entrenado un modelo de prediccion, la evaluacion del mismo es

importante para medir el nivel de acierto de las predicciones. Esta evaluacion

consiste en probar el modelo con un conjunto de datos de prueba y medir el

error u otras metricas sobre los resultados. Estas metrica de evaluacion per-

mite comparar el desempeno de modelos entrenados con diferentes tecnicas,

y conjunto de datos.

Existen distintas formas para llevar a cabo esta evaluacion. La mas simple

consiste en usar como datos de prueba el mismo conjunto de datos utilizado

para el entrenamiento de los modelos. Otro metodo consiste en separar los

datos del problema entre datos de entrenamiento y datos de prueba. Por

ultimo, tambien se puede validar el modelo de forma cruzada.

2.3.1. La validacion cruzada (cross-validation)

La validacion cruzada (cross-validation) es una tecnica utilizada para eva-

luar los resultados de un analisis estadıstico y garantizar que son indepen-

dientes de la particion entre datos de entrenamiento y prueba. Consiste en

repetir y calcular la media aritmetica obtenida de las medidas de evaluacion

sobre diferentes particiones. Por ejemplo, si consideramos diez subconjuntos

para validacion, los datos de entrada se dividen en diez partes, donde una se

reserva para las pruebas y las otras nueve para el entrenamiento. Este proce-

Page 36: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 35

so se repite diez veces y se calcula el promedio de las metricas de evaluacion.

Esto ayuda a determinar el nivel al que un modelo se podrıa generalizar para

nuevos conjuntos de datos.

2.3.2. Metricas

El presente trabajo contempla las siguientes metricas de evaluacion para

los diferentes modelos:

CC (Coeficiente de correlacion de Pearson): el coeficiente de correlacion

de Pearson es un ındice que puede utilizarse para medir el grado de

relacion de dos variables siempre y cuando ambas sean cuantitativas.

En el presente trabajo se considera la correlacion entre las variables del

dataset con respecto a la propiedad a predecir.

RMSE (Root MeanAbsolute Error): el Root MeanAbsolute Error (RM-

SE) representa la raız cuadratica del promedio de la distancia euclıdea

entre el valor de la propiedad obtenida por la tecnica y el valor real.

2.3.3. Ajuste del modelo: Overfitting y Underfitting

Cuando se genera (o entrena) un modelo de prediccion, su desempeno

es incierto hasta su evaluacion o aplicacion. En algunos casos, la calidad

del modelo es pobre generando respuestas imprecisas, de modo tal que se le

deben aplicar acciones correctivas analizando como se comporta y ajusta el

modelo.

Los modelos pueden presentar dos problemas indeseables: overfitting y

underfitting. El overfitting describe una funcion que se ajusta estrechamen-

te a los datos de entrenamiento. Es decir el modelo aprendio los detalles y

el ruido en los datos impactando negativamente en el desempeno del mode-

lo. Este efecto es causado porque el ruido o las variaciones en los datos de

entrada fueron usados para el aprendizaje.

Por otro lado, los modelos pueden presentar problemas de underfitting,

cuando no interpretan bien los datos de entrenamiento, por lo que la gene-

Page 37: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 2. MARCO TEORICO 36

ralizacion de nuevos datos sera imprecisa. Este efecto es causado porque la

funcion o tecnica elegida no es el indicado para representar el comportamien-

to de los datos. El efecto underfitting se caracteriza por sobre-generalizar los

datos. Incorporar nuevos datos al conjunto de entrenamiento podrıa solucio-

nar o mitigar este efecto.

En conclusion el modelo que se busca serıa aquel que se encuentre en un

punto de equilibrio entre un problema y otro, aunque este equilibrio es muy

difıcil de alcanzar en la practica. La Figura 2.11 presenta tres modelos de re-

gresion para un mismo grupo de datos que permiten interpretar graficamente

los problemas de underfitting y overfitting.

Figura 2.11: Efectos del modelo sobre los datos de entrenamiento. 12

12https://www.slideshare.net/TalhaObaid1/machine-learning-101

Page 38: Universidad Nacional del Centro la Provincia de Buenos ...

Capıtulo 3

Trabajos Relacionados

3.1. Librerıas y Aplicaciones Utilizadas

El desarrollo de este trabajo se realizo sobre archivos Logs provistos por la

Universidad de Cambridge, generados a partir de un trabajo llamado Device

Analyzer1, realizado con el fin de recolectar datos acerca de lo que esta suce-

diendo en el telefono mediante su uso con el fin de obtener estadısticas sobre

los mismos. Estos Logs fueron generados por personas que se ofrecieron como

voluntario para este estudio. Ası mismo se utilizo las librerıas scikit-learn2 y

Keras3.

3.1.1. Device Analyzer

Device Analyzer recopila estadısticas de uso en segundo plano mientras

se usa el telefono.

Estos datos se eliminan de la informacion de identificacion personal de

la mejor manera posible al tiempo que se preserva la informacion util. Pe-

riodicamente, los datos grabados se cargan en el servidor de la Universidad

de Cambridge, donde se agregan a los datos de otras personas y se deducen

1http://deviceanalyzer.cl.cam.ac.uk/2http://scikit-learn.org3https://keras.io/

37

Page 39: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 3. TRABAJOS RELACIONADOS 38

inferencias de los patrones que surgen. Actualmente el proyecto cuenta con

31294 contribuidores, los cuales pueden recibir la informacion sobre los es-

tudios realizados sobre sus telefonos. Estos resultados pueden ayudar a los

usuarios a ver ciertas estadısticas de las cuales no se dan cuenta, como por

ejemplo, las llamadas perdidas que suelen tener, los mensajes que mandan

por dıa. Ademas captura datos como por ejemplo, cuando enciende el WiFi,

cuando utiliza los datos moviles, cuando enciende o apaga el bluetooth. Toda

esta informacion es totalmente necesaria para este estudio y es la principal

base para la realizacion del mismo. En proximos capıtulos se vera como se

transforman estos datos a un formato que sirva como entrada a las librerıas

utilizadas para procesar los mismos y analizar los resultados.

3.1.2. Scikit-learn

Scikit-learn es una biblioteca de aprendizaje de maquina de software libre

para el lenguaje de programacion de Python [9]. Cuenta con varios algoritmos

de clasificacion, regresion y agrupacion, incluyendo maquinas de vectores de

soporte, bosques aleatorios, aumento de gradiente, k-means y DBSCAN, y

esta disenado para interoperar con las bibliotecas numericas y cientıficas de

Python, NumPy y SciPy.

El proyecto scikit-learn comenzo como scikits.learn, un proyecto Google

Summer of Code de David Cournapeau. Su nombre proviene de la idea de

que es un ”SciKit”(SciPy Toolkit), una extension de terceros desarrollada

por separado y distribuida para SciPy. La base de codigo original fue pos-

teriormente reescrita por otros desarrolladores. En 2010, Fabian Pedregosa,

Gael Varoquaux, Alexandre Gramfort y Vincent Michel, todos de INRIA to-

maron el liderazgo del proyecto e hicieron su primer lanzamiento publico el

1 de febrero de 2010.

3.1.3. Keras

Keras es una biblioteca de red neuronal de codigo abierto escrita en Pyt-

hon. Es capaz de ejecutarse sobre TensorFlow, Microsoft Cognitive Toolkit,

Page 40: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 3. TRABAJOS RELACIONADOS 39

Theano o MXNet. Disenado para permitir una rapida experimentacion con

redes neuronales profundas, se enfoca en ser facil de usar, modular y exten-

sible. Fue desarrollado como parte del esfuerzo de investigacion del proyec-

to ONEIROS (Sistema Operativo de Robot Inteligente Neuroelectronico de

codigo abierto), y su principal autor y mantenedor es Francois Chollet.

En 2017, el equipo TensorFlow de Google decidio apoyar a Keras en la

biblioteca principal de TensorFlow. Chollet explico que Keras fue concebido

como una interfaz en lugar de un marco de aprendizaje automatico indepen-

diente [10]. Ofrece un conjunto de abstracciones de nivel mas alto e intuitivo

que facilita el desarrollo de modelos de aprendizaje profundo independiente-

mente del backend computacional utilizado.

Keras contiene numerosas implementaciones de capas de construccion de

redes neuronales de uso comun, como funciones de activacion, optimizadores

y un conjunto de herramientas para facilitar el trabajo con datos de imagenes

y de texto. Permite a los usuarios producir modelos profundos en telefonos

inteligentes (iOS y Android), en la web o en la maquina virtual Java.

Tambien permite el uso de capacitacion distribuida de modelos de apren-

dizaje profundo en grupos de unidades de procesamiento de graficos (GPU).

3.1.4. Trabajos Relacionados

En los ultimos anos se ha tratado de optimizar el consumo de baterıa

de las aplicaciones Android. Muchas investigaciones han surgido con el fin

de estudiar este tema desde diferentes puntos de vista, realizando numerosos

tipos de pruebas y obteniendo resultados importantes. El proposito de esta

seccion es hacer una breve descripcion de algunas de estas investigaciones y

trabajos realizados que sirvieron de guıa para el presente trabajo y que en

menor o mayor medida se relacionan con el mismo.

Page 41: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 3. TRABAJOS RELACIONADOS 40

3.1.4.1. Refactorizaciones para kernels computacionales cientıfi-

cos en dispositivos moviles

Ana Rodriguez [15] obtiene un conjunto de buenas practicas que mini-

mizan el consumo de baterıa. A su vez, se realizo una investigacion sobre el

problema en el contexto de kernels computacionales en aplicaciones cientıfi-

cas. A partir de una serie de micro-benchmarks se realizan evaluaciones so-

bre la baterıa para distintas propuestas de refactorizacion o mejoras en el

codigo Android y luego realizar el analisis en aplicaciones reales. Los micro-

benchmarks se centraron en creacion de objetos, obtencion de datos, copia de

arreglos, recorrido de matrices, manejo de Strings, operaciones aritmeticas,

manejo de excepciones, acceso a atributos y uso de tipo de datos primitivos.

Los resultados que se obtuvieron indican, que se produjo una mejora

de un 20 % para la copia de arreglos utilizando bibliotecas, un 116 % en el

recorrido de matrices por fila y no por columna, 78023 % aproximadamente

para el uso de la clase StringBuilder por sobre el uso de la clase String en la

concatenacion convencional, esto se debe a que la clase String es inmutable

y por lo tanto crea objetos cuando opera la concatenacion. Para los tipos

de datos primitivos, int favorece el consumo de energıa entre un 186 % y un

50 % por sobre otros tipos de datos con mayor precision.

Por otro lado, el uso de excepciones degrada el consumo un 9471 % so-

bre el no uso de las mismas. En cuanto al acceso de atributos, obtener una

variable de forma directa es 696 % mas eficiente que realizando un metodo

para obtener esta variable, esto propone romper la encapsulacion de los ob-

jetos. Finalmente para la creacion de objetos se obtuvo una mejora de 812 %

reutilizando los mismos, aunque esto tambien dependera del tipo de objeto

reutilizado.

De esta manera se pudo comprobar que los micro-benchmarks con peor

performance son los que consumen un mayor porcentaje de baterıa. Por lo

tanto prever un codigo con menor tiempo de ejecucion a la hora de desarrollar

una aplicacion es energicamente eficiente ya sea aplicando una o varias de

estas mejoras.

Page 42: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 3. TRABAJOS RELACIONADOS 41

3.1.4.2. Usage Pattern Mining for Smartphone Use Personaliza-

tion

Este trabajo fue destinado principalmente a predecir futuras operaciones

en el uso de los moviles con el fin de optimizar mejor los recursos con el fin de

salvar la energıa de la baterıa, para esto se capturo informacion de personas

que se ofrecieron como voluntarias para el estudio durante cuatro meses [16].

El estudio conllevo a que se tengan que aplicar diferentes datos tales como

aplicar algoritmos sobre el acelerometro del dispositivo y determinar si esta

persona se movilizaba a pie, en auto o en realidad no se estaba desplazando,

como ası tambien aplicar algoritmos sobre datos GPS y determinar diferentes

puntos frecuentes del usuario, como puede ser su hogar o el trabajo.

La solucion propuesta fue crear una aplicacion que capture los eventos del

dispositivo y aplicar reglas de minerıa para determinar los patrones de uso.

Esta aplicacion esta constituida principalmente por un servicio que almace-

na la informacion mediante la escuchando toda la actividad del dispositivo

mediante Intents, un Intent es un objeto java que tiene informacion sobre la

operacion que se va a ejecutar. Por otro lado ofrece una interfaz sencilla para

poder realizar una mınima configuracion a la aplicacion.

Para poder determinar el resultado de las tecnicas aplicadas se separo

el conjunto de datos en un 70 % de datos destinados como entrada de los

algoritmos y el 30 % restante para testing, utilizado para intentar predecir

estos datos reales.

La variable que se tomo como estudio fue el sensor Wifi, en este caso si

estaba activado o no. De cinco usuarios estudiados en tres se encontraron

algunos patrones de los cuales se pudieron establecer algunas reglas, con los

dos restantes no hubo un patron coherente del cual poder realizar un analisis,

lo cual no quiere decir los algoritmos no sea capaces de predecir algun patron

sino que para estos usuarios la activacion del sensor Wifi no fue un buen

indicador.

Page 43: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 3. TRABAJOS RELACIONADOS 42

3.1.4.3. Measuring mobile phone energy consumption for 802.11

wireless networking

Este estudio [17] hace hincapie en el costo de energıa de distintos smartp-

hones cuando estos se conectan a una red 802.11 y envıan mensajes a traves

de la misma.

Se provee la obtencion del consumo de energıa de las aplicaciones utilizan-

do una plataforma de medicion que permite ilustrar aspectos particulares del

desarrollo movil con una granularidad fina. Por ejemplo, el consumo energeti-

co del dispositivo movil mientras intenta conectarse a una red inalambrica

para obtener su direccion IP o el envıo de datos a traves de la red o el uso

de buffers para el envıo de dichos datos.

Un resultado importante obtenido en esta investigacion se resume en que

enviar un solo paquete con una gran cantidad de datos no favorece al consu-

mo de energıa para determinados smartphones seleccionados de las pruebas,

como ası tambien una consideracion secundaria como la eleccion del tamano

de los buffers de envıo puede tener un gran impacto en el consumo energeti-

co. Se obtuvo en los resultados de los tests que los criterios para minimizar

el consumo energetico varıan de acuerdo al dispositivo, sistema operativo y

escenario particular.

No todos los smartphones seleccionados obtuvieron la misma conclusion.

Por ejemplo, en el caso del tamano de los paquetes enviados, el smartphone

Nexus se ve favorecido a medida que el tamano del paquete se incrementa,

mientras que para el HTC G1 y otros, el resultado encontrado es exactamente

el inverso. En el caso de la obtencion de conexion de red, la mayorıa de los

dispositivos obtuvo una mejora estableciendo la direccion IP estatica del

dispositivo, aunque en el caso del Nexus esta fue mınima.

La conclusion general muestra que aparentemente pequenas decisiones

pueden tener un impacto muy significativo en el consumo energetico. A si

mismo, se puso en evidencia la gran heterogeneidad de los dispositivos y

como una optimizacion tiende a variar de acuerdo a los componentes que

integran el smartphone.

Page 44: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 3. TRABAJOS RELACIONADOS 43

3.1.4.4. Analysis of Dierential Synchronisation’s Energy Consum-

ption on Mobile Devices

En este trabajo se evalua el consumo de baterıa del algoritmo de sin-

cronizacion diferencial (disffync) en dispositivos moviles [18]. Las lecturas y

escrituras sobre elementos compartidos es la principal esencia de la funcio-

nalidad en software colaborativo como SVN o Google Docs. En consecuencia

a las nuevas velocidades de Internet, cada vez mas dispositivos moviles son

capaces acceder a este tipo de software. En consecuencia, las aplicaciones

en estos dispositivos deben tener en cuenta una caracterıstica esencial: el

consumo de energıa.

Este trabajo surge del uso real sobre la edicion de documentos PDF de

manera colaborativa, en donde el elemento compartido puede ser subraya-

do, permite agregar notas o comentarios, etc, entre un grupo de usuarios y

utiliza el algoritmo disffync funcionando en tiempo real. Bajo este esque-

ma se detectaron tres areas en donde se pudo incrementar la eficiencia de

energıa: ciclos vacıos en los cuales ningun cambio necesita ser procesado, la

energıa de la cola de envıo de datos (intervalos entre ciclos) y la complejidad

computacional.

En el caso de los ciclos vacıos, ocurren cuando el algoritmo disffync se

ejecuta en intervalos regulares en los cuales no se obtiene ningun dato ac-

tualizado, generando un desperdicio de energıa. La energıa de la cola hace

referencia al tiempo en que las distintas conexiones permanecen activas una

vez analizada una conexion a datos. Esto puede consumir cerca de un 60 % de

la energıa de una conexion a red haciendo que sea mas eficiente realizar una

transferencia inmediatamente cuando termina la anterior o que el tamano del

intervalo sea lo suficientemente mayor para no generar desperdicio de energıa

constantemente.

Por ultimo la complejidad computacional se relaciona directamente con el

consumo de energıa del CPU y el uso de la misma. Con estas consideraciones,

se llego a la conclusion de que hay que evitar los ciclos vacıos, los intervalos

de ciclos deben ser ajustados dependiendo de la conexion y, normalmente, el

Page 45: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 3. TRABAJOS RELACIONADOS 44

procesamiento de ıtem pequenos reduce la complejidad computacional, por

lo tanto reduce el consumo de energıa.

En las pruebas realizadas para mejorar los inconvenientes analizados se

obtuvo una mejora general. Para los ciclos vacıos, se encontro que en un 96 %

se producıa este inconveniente, por lo que se opto por realizar una solucion

Push la cual utiliza un promedio de 0.398 % de la baterıa contra 8.151 % en

7 minutos de la propuesta convencional y elimina los ciclos vacıos.

El impacto de la complejidad computacional se puede reducir con la co-

rrecta eleccion de la estructura de datos y para los problemas de energıa

desperdiciada luego del envıo de datos, se logro comprobar que para un ciclo

jo, un intervalo de 6 segundos es el mas optimo para todos los tipos de redes

(3G, GSM). De esta forma se logro detectar 3 tipos de inconvenientes en

los algoritmos de sincronizacion diferencial en tiempo real, como ası tambien

una solucion para cada uno de ellos y lograr una mejora en el consumo de

energıa en una futura implementacion del mismo.

3.1.4.5. An Automatic Detector of Energy Leaks for Smartphone

Applications (ADEL)

Este trabajo presenta una evaluacion sobre las fugas de energıa (Energy

Leaks). Las fugas de energıa se producen cuando bloques de codigo de una

aplicacion no realizan tareas productivas [19], en otras palabras, cualquier

consumo de energıa que no cambia el estado del dispositivo o no produce

un resultado directo o indirecto (es un resultado que no es percibido por el

usuario), es desperdicio de baterıa, entonces teoricamente se puede eliminar

estas secciones de codigo y no se alterara el funcionamiento de la aplicacion.

Esta investigacion propone una herramienta para detectar este inconve-

niente en las aplicaciones que se ejecutan en smartphones. ADEL es una

extension de la plataforma Android que rastrea el flujo de informacion de

la red a traves de aplicaciones, es decir, detecta los problemas de memory

leaks en las comunicaciones de red para aplicaciones. Lo que hace es agregar

automaticamente una etiqueta (tag) a cada objeto descargado y se realiza

Page 46: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 3. TRABAJOS RELACIONADOS 45

un seguimiento de cada tag y de su propagacion. De esta manera, la salida

del sistema arroja una asociacion de los datos descargados que influyeron en

el funcionamiento.

La herramienta proporciona a los desarrolladores el conocimiento de los

tiempos de llegada y el contenido de paquetes, lo que permite observar los

defectos de diseno que producen una perdida de energıa. ADEL es una herra-

mienta que detecta y aısla las fugas de energıa resultantes de comunicaciones

de red mediante el trazado directo o indirecto del uso efectivo de los datos

recibidos.

Para las pruebas se utilizaron 15 apps de las cuales se detectaron 4 causas

principales que generan las fugas de energıa: mala interpretacion de callbacks

en APIs, mal diseno en el esquema de descarga, descargas repetidas y fetching

agresivo. Con el uso de la herramienta se logro identificar fugas de energıa en 6

de las 15 aplicaciones y, la eliminacion de estas resultaron en una reduccion

media del 56,5 % en el consumo de energıa debido a la red. Este estudio

revela cuatro inconvenientes de fuga de energıa que normalmente se pueden

encontrar, ayudando a los desarrolladores a tener una mayor conciencia sobre

estos y a mejorar el diseno de las aplicaciones moviles para evitarlos.

3.1.4.6. An Investigation into Energy-Saving Programming Prac-

tices for Android Smartphone App Development

En este estudio [20] se considera el ahorro de baterıa del uso de las co-

dificaciones sugeridas en el sitio oficial de desarrolladores de Android. Estas

se presentan en tres categorıas: uso de la red, consumo de memoria y practi-

cas de programacion a bajo nivel. La primer categorıa hace referencia al uso

de HTTP request desdes los dispositivos moviles para la navegacion por In-

ternet. Estos request consumen un gran porcentaje de energıa, por eso el

objetivo de este papear es mostrar una guıa para el uso y diseno de estos.

La segunda categorıa se estudia especıficamente si el consumo de memoria

esta ligado fuertemente con el gasto de baterıa, es decir, cuento mas memoria

consume una aplicacion mayor sera su consumo de energıa. Sin embargo, el

Page 47: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 3. TRABAJOS RELACIONADOS 46

uso de memoria insuficiente puede causar un efecto no deseado y aumentar

el consumo de energıa, por lo que es necesario saber cual es la cantidad de

memoria ideal. La tercer categorıa considera si los tips propuestos por el si-

tio oficial de desarrolladores de Android mejoran los tiempos de ejecucion

tambien favorecen el consumo de energıa. Luego de realizar los test se logro

llegar a las siguientes conclusiones:

En cuanto el uso de los Request, el uso de peticiones pequenas puede

ayudar a mejorar el consumo de energıa. Un tamano de paquete que ronda

los 100 bytes consume 0.6 mAh, mientras que paquetes de mas de 2000 bytes

tienden a 1 mAh. Si es necesario hacer varias solicitudes HTTP pequenas,

los desarrolladores deben tratar de disenar sus aplicaciones o protocolos para

que estas puedan ser agrupadas en una solicitud mas grande para ahorrar

baterıa.

Los resultados del experimento de memoria determinan que a pesar de

que es un componente importante que se debe manejar con cuidado y que

los desarrolladores deben evitar la asignacion innecesaria memoria, no tiene

un gasto de energıa tan importante como se pensaba. Mayor uso de memoria

aumenta solo ligeramente la energıa media del consumo de cada acceso. Para

analizar la tercer categorıa, se analizo el acceso a campos, la invocacion de

metodos y acceso a el tamano de arreglos en ciclos. Para estas tres propuestas

se obtuvo una mejora entre un 30 % y 35 % para acceso a datos, un 15 %

para invocacion , y finalmente 10 % respectivamente. Demostrando de esta

forma que los desarrolladores pueden mejorar el consumo de sus aplicaciones

teniendo presente estas caracterısticas al desarrollar.

3.1.4.7. eDoctor: Automatically Diagnosing Abnormal Battery Drain

Issues on Smartphones

En este trabajo [21] se presenta la herramienta eDoctor que detecta la

descarga de la baterıa en forma anormal. Esta herramienta define el concepto

de Abnormal Battery Drain como consumo de energıa que no es causado por

el uso normal de una aplicacion. Desde el punto de vista de los usuarios esto

Page 48: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 3. TRABAJOS RELACIONADOS 47

se traduce en el uso normal del dispositivo pero, en un determinado punto

e inesperadamente, el dispositivo comienza a consumir mayor energıa de lo

usual y como resultado en un par de horas la baterıa puede verse agotada

por completo.

La herramienta utiliza el concepto de ejecucion por fases para capturar el

comportamiento de una aplicacion variable en el tiempo, que luego se pue-

de utilizar para identificar una aplicacion anormal. eDoctor tambien registra

eventos tales como la instalacion, las actualizaciones de aplicaciones, cambios

de configuracion, etc. Aquı es critico diferenciar el uso normal del anormal,

por lo que la ejecucion de una aplicacion se divide en intervalos de ejecucion

que luego se agrupan en fases. Cuando una aplicacion empieza a consumir

energıa de una manera anormal , su comportamiento por lo general se mani-

fiesta como una nueva o mayor cantidad de fases que no aparecen durante la

ejecucion normal. La combinacion de dicha informacion de fase junto con los

eventos relevante, tales como un cambio de configuracion, pueden identificar

la aplicacion culpable. Esta informacion es utilizada para determinar si la

aplicacion ha tenido o no un comportamiento inesperado y para sugerir la

mejor solucion posible. A su vez, en este trabajo, tambien se hizo una medi-

cion de cuanto es el costo de tener una herramienta como esta ejecutando en

el smartphone.

Para realizar las pruebas se utilizaron 26 smartphones diferentes con 11

versiones diferentes de Android, en los cuales la herramienta detecto 47 de 50

problemas que fueron inyectados en los dispositivos con menos de 1.5 % de

overhead. Tambien se realizaron pruebas en el mundo real con aplicaciones

verdaderas en donde se encontraron problemas como mal uso de un recurso

(Acelerometro, GPS, sensor de orientacion, Wakelock) como ası tambien pro-

blemas de configuracion (precision del GPS, frecuencia de actualizacion). En

estos casos se encontro una falencia para la herramienta. Si una aplicacion

posee ABD desde el principio no sera descartada por eDoctor debido a que

esta lo tomara como uso normal y no se descartara hasta que ocurra una

actualizacion de la aplicacion o un cambio de configuracion. Sin embargo,

esta herramienta posee un buen porcentaje para la deteccion de problemas

Page 49: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 3. TRABAJOS RELACIONADOS 48

en la mayorıa de los casos.

3.1.5. Conclusiones

Todos y cada uno de los trabajos citados anteriormente intentan obtener

una mejora en el consumo de energıa desde el lado del programador. Ma-

yormente estas mejoras se aplican a nivel de codigo de la aplicacion y de

tener conciencia a la hora de disenar la misma. Mas alla de las diferencias,

el proposito del presente trabajo tambien es la de estudiar el consumo de

baterıa y los patrones involucrados en el uso de los dispositivos.

En sus comienzos, sistemas operativos como Android posibilitaron la lle-

gada de un gran numero de aplicaciones para los Smartphones. En el mundo

de los dispositivo moviles, Android se convirtio en uno de los sistemas opera-

tivos mas populares por las prestaciones que posee y por la gran portabilidad

que le permite funcionar adecuadamente en distintos dispositivos telefonicos

ası como tambien en tablets y televisores. A su vez, ofrece mucha facilidad

a desarrolladores a la hora de disenar e implementar sus aplicaciones, y sin

duda se a convertido en uno de los sistemas mas utilizados por estos motivos.

Sin embargo, no siempre se logra una calidad adecuada en sus aplicaciones

y muchas veces es porque no tienen en cuenta el consumo de energıa como

una caracterıstica principal de este tipo de desarrollo. En este contexto, los

usuarios se ven inmensamente afectados en el uso de sus dispositivos donde

muchas veces el tiempo de vida del dispositivo no coincida con la jornada

diaria. Este panorama ha llevado a un gran numero de investigaciones por

parte de la comunidad cientıfica para mejorar y corregir el modelo de eficien-

cia de las aplicaciones moviles. La mayorıa de estos trabajos hacen referencia

a la concientizacion por parte de los desarrolladores sobre el diseno de apli-

caciones moviles, como ası tambien muestran las distintas alternativas que

se poseen en este campo.

Page 50: Universidad Nacional del Centro la Provincia de Buenos ...

Capıtulo 4

Enfoque e Implementacion

En este capıtulo se describe el enfoque propuesto para predecir patrones

de uso sobre dispositivos moviles. El enfoque plantea llevar a cabo la pre-

diccion mediante un proceso de aprendizaje de maquina que involucra dos

pasos: transformacion de datos y aprendizaje.

El primero implica la transformacion de informacion, esto significa, pro-

cesar todos los datos de entradas provistos por la Universidad de Cambridge

y transformarlos en archivos que sirvan como entrada a los algoritmos utili-

zados en este trabajo, para ellos se realizo un estudio sobre estas librerıas, y

se evaluo la forma mas eficiente y extensible de realizar este modulo.

El segundo modulo implica la construccion de modelos de prediccion con

tecnicas de regresion, clasificacion y redes neuronales. La construccion o en-

trenamiento de estos modelos se hace en un proceso interactivo con el usuario,

que involucra una configuracion inicial de los datos, la eleccion y ejecucion

de los diferentes algoritmos, los resultados arrojados por estos (metricas y

configuraciones iniciales) y la opcion de realizar pruebas particulares sobre

el modelo entrenado.

Para facilitar la interaccion con el usuario se implemento una herramienta

web, si bien esta excede el alcance del estudio de este trabajo ya que solo

provee una interfaz para que el usuario pueda configurar tanto los datos de

entrada como el algoritmo escogido para una prueba determinada, aporta

de forma visual las diferentes metricas arrojadas con graficos e informacion

49

Page 51: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 50

relevante con el objetivo de analizar los resultados y elaborar las conclusiones.

4.1. Modulo transformador de datos

Como se menciono anteriormente este modulo sera el encargado de tra-

ducir los logs ofrecidos por el trabajo de Device Analyzer a un formato de

entrada que pueda ser reconocido por los algoritmos de las librerıas utiliza-

da en el presente trabajo. El proyecto Device Analyzer genera un enorme

archivo en formato CSV (comma-separated values). Los archivos CSV son

un tipo de documento en formato abierto sencillo para representar datos en

forma de tabla, en las que las columnas se separan por comas o punto y coma

donde el separador decimal es una coma. El formato CSV es muy sencillo y

no indica un juego de caracteres concreto, ni como van situados los bytes, ni

el formato para el salto de lınea. Estos puntos deben indicarse muchas veces

al abrir el archivo, por ejemplo, con una hoja de calculo. Con el siguiente

ejemplo podemos ver como se representa la siguiente tabla con el archivo

en texto plano, separando sus valores por comas. En la tabla 4.1 podemos

ver un listado de telefonos celulares, en donde tenemos informacion sobre la

marca, el modelo, el tamano de la pantalla y el precio.

Marca Modelo Pantalla Precio

Motorola G4 5.5’ 3000.00

Motorola G4 Plus 5.5’ 4900.00

Motorola G5 5.0’ 5000.00

Samsung S6 5.5’ 4799.00

Tabla 4.1: Tabla ejemplo de archivo CSV

A continuacion podemos observar el equivalente de la tabla 4.1 en formato

CSV.

Marca , Modelo , Pantal la , Prec io

Motorola , G4, 5 . 5 ’ , 3 0 0 0 . 0 0

Page 52: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 51

Motorola ,G4 Plus , 5 . 5 ’ , 4 9 0 0 . 0 0

Motorola , G5, 5 . 5 ’ , 5 0 0 0 . 0 0

Samsung , S6 , 5 . 5 ’ , 4 7 9 9 . 0 0

Una vez ilustrado este ejemplo y entendido como es el formato de archi-

vos CSV vamos a describir brevemente como estan compuestos los archivos

entregados para la realizacion de este trabajo, con esto describiremos las

columnas y la informacion que va a tener cada una.

4.1.1. Estructura de los Logs

Los logs provistos para el trabajo son archivos de entre aproximadamente

12 a 27 gigabytes de texto plano en formato CSV, es decir como se menciono

anteriormente se puede leer como una tabla.

Las primeras dos columnas contienen datos sobre los IDs se los datos cap-

turados, de los cuales podemos prescindir ya que no aportan ningun dato util

para este trabajo, el segundo valor de la tabla es un timestamp del momento

que se capturo ese dato, un timestamp es una secuencia de caracteres que

denotan la hora y fecha (o alguna de ellas) en la que ocurrio determinado

evento. Esta informacion suele presentarse en un formato consistente, lo que

permite la facil comparacion entre dos diferentes registros y el seguimiento

de avances en el tiempo. Por ejemplo:

2015−04−08T02 :43 :41 .796+0100

El anterior timestamp denota que ese dato se capturo un 8 de abril de

2015 a las 2 horas 43 minutos y 41 segundos con 796 milesimos en una franja

horaria a mas una hora del meridiano de Greenwich, esta informacion si es

muy importante y posteriormente se describira como sera su transformacion

en los archivos que serviran como entrada para el modulo de prediccion de

datos.

Los primeras tres columnas mencionadas tienen los mismos datos en todo

momento, mientras que la cuarta y quinta columna cambia dependiendo del

registro, y estas dos columnas son las que mas interesan ya que brindan

informacion importante sobre el telefono, como por ejemplo, la configuracion

Page 53: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 52

del volumen, el porcentaje de la baterıa, el voltaje en el cual esta trabajando

el dispositivo, en el caso del Wifi brinda informacion sobre si esta activado,

si esta escaneando o si esta conectado a alguna red, tambien informa sobre

la potencia de senal de esa red. A continuacion se ilustran algunas lineas a

modo de ejemplo.

5;37917868;2013−04−24T21 :21 :37 .113 −0700 ;

system | manufacturer ; samsung

Por ejemplo, en el codigo mas arriba podemos ver que en la columna

cuatro el indicador del dato es system|manufacture esto dignifica que el valor

en la columna cinco brinda la informacion de fabricante del dispositivo, en

este caso, Samsung. Por supuesto esta informacion es totalmente irrelevante

para el proposito de este trabajo, es decir, saber que el telefono es fabricado

por Samsung no nos aporta ningun dato concreto acerca del comportamiento

del mismo.

106942;72412909;2013−04−25T06 :56 :32 .154 −0700 ;

w i f i | scan | c7e300f16e2032ed8493c1a6e2249e7cc31acc25 | l e v e l ;−82

En el ultimo ejemplo, se puede observar otra estructura en la cuarta

columna ya que se observan mas indicadores que en la linea anterior. En este

caso, tenemos primero el indicador wifi, el segundo indicador es scan, eso

significa que en este caso nos brinda la informacion de que esta escaneando

redes para conectarse, el tercer valor de este indicador es un valor encriptado

que corresponde al SSID (Service set identifier) de la red, siendo esto ultimo

el nombre de la red por el cual se la identifica, la razon por la que este dato

esta encriptado es para preservar la informacion sensibles de las personas que

se ofrecieron para el analisis, otro ejemplo de datos encriptados es el nombre

de las aplicaciones. El cuarto indicador de esta columna es level por lo que

el calor de la quinta columna representa el nivel de intensidad de esa red wifi.

4.1.2. Datos Transformados

El principal objetivo de este modulo es traducir los datos a partir del for-

mato que se ilustro anteriormente en datos que sean aceptados como entrada

Page 54: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 53

para los algoritmos que se explicaran en el modulo de prediccion de datos.

Para esto debemos generar un nuevo archivo con la misma informacion pero

de una forma mas completa, la forma actual son lineas en orden cronologi-

co con indicadores completamente diferentes entre si, es decir, mientras una

linea ofrece cierta informacion acerca del Wifi, por ejemplo si esta activado,

otra linea ofrece el voltaje con el cual esta trabajando el dispositivo en ese

momento, el nuevo archivo tendra toda la informacion acerca del dispositivo

que nos interese analizar posteriormente, para cada una de las lineas existen-

tes en el archivo original. Toda la informacion que nos interese se refiere a

que hay muchas lineas que no van a tener el interes de ser analizadas como

se aclaro en los anteriores ejemplos, hay lineas que no ofrecen datos relevante

para este estudio y por lo tanto no seran contempladas en el proceso.

Ejemplo A continuacion se ilustra un breve ejemplo de unas lineas en el

formato original y en el formato del archivo generado.

2013−04−24T21 :54 :14 .925 −0700 ; w i f i | s t a t e ; enabled

2013−04−24T21 :54 :34 .541 −0700 ; power | batte ry | l e v e l ; 84

2013−04−24T21 :54 :37 .117 −0700 ; system |memory | f r e e ;98828kB

2013−04−24T21 :55 :01 .623 −0700 ; w i f i | s t a t e ; d i s ab l ed

2013−04−24T21 :55 :23 .213 −0700 ; power | batte ry | l e v e l ; 83

Las lineas ilustradas anteriormente es una muy breve extraccion de los

archivos ofrecidos por la catedra, para fines practicos se han suprimido las

dos primeras columnas ya que son irrelevantes para el ejemplo.

La primer linea nos da informacion sobre el wifi, especıficamente indica

que la conexion esta activada dispuesta a escanear redes. La segunda linea

indica que el nivel de baterıa actual es de ochenta y cuatro por ciento. La

tercer linea nos indica cuanta memoria RAM se encuentra disponible. La

cuarta linea indica que el wifi se desactivo y finalmente, la ultima linea in-

dica que la baterıa ahora se encuentra en el ochenta y tres por ciento de su

capacidad. Como se menciono anteriormente las lineas no son uniformes, en

este caso tenemos tres tipos de indicadores diferentes, dos nos brindan infor-

macion acerca del porcentaje restante de baterıa, dos nos indican el estado

Page 55: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 54

del sensor wifi y el restante informacion sobre la memoria y ası pasa con el

resto de la informacion. El objetivo es generar un archivo uniforme como el

ejemplo a continuacion.

date ; w i f i o n o f f ; bat te ry ; memory free ;

2013−04−24T21 : 54 : 14 . 925 −0700 ; 1 ; 0 ; 0

2013−04−24T21 : 54 : 34 . 541 −0700 ; 1 ; 84 ; 0

2013−04−24T21 :54 :37 .117 −0700 ;1 ; 84 ; 98828

2013−04−24T21 :55 :01 .623 −0700 ;0 ; 84 ; 98828

2013−04−24T21 :55 :23 .213 −0700 ;0 ; 83 ; 98828

En el anterior codigo se observa el nuevo archivo, notese que el archivo

tiene una cabecera, esto es importante para el modulo de prediccion ya que

permite la seleccion de indicadores con la cual queremos que estoy algoritmos

procesen la informacion, tambien se observa que cada linea tiene toda la

infraccion sobre todos los indicadores en todo momento, en varias lineas se

observa que el porcentaje de baterıa es 84, esto se debe a que en todas esas

lineas ese valor no ha variado, lo mismo con la antena wifi, en las primeras

tres lineas se observa que esta activado y en las ultimas dos no.

En la primer linea, sin contar la cabecera del archivo, se nota que battery

y memory_free tienen como valor cero, eso sucede por que no llego a encon-

trar un valor valido para estos dos indicadores entonces como defecto propone

este valor, en la segunda linea se observa que el valor cambio a 84 eso para

porque en esa linea ya encontro el indicador battery con el valor 84 pa-

ra ingresar en esa columna, el valor de la baterıa permanecera en 84 hasta

encontrar otro indicador battery con un valor diferente, esto pasa en la li-

nea cinco y por eso el nuevo valor ahora es 83. Esto sucede para todos los

indicadores que se desean formatear.

La nueva estructura contiene toda la informacion en todo momento, tam-

bien se observa que tiene la misma cantidad de lineas que el archivo original,

esto no siempre va a ser ası ya que cada algoritmo necesita diferentes can-

tidad de datos, por ejemplo el algoritmo de sobre redes neuronales y series

de tiempo necesita una cantidad de datos por un cierto intervalo de tiempo,

por ejemplo, tres registros cada una hora. Para lograr esto se realizo otro

Page 56: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 55

Figura 4.1: Diagrama de clases del patron Decorator1

tratamiento en la formacion de estos archivos.

4.1.3. Patron Decorator

El patron Decorator permite anadir responsabilidades a objetos concretos

de forma dinamica. Los decoradores ofrecen una alternativa mas flexible que

la herencia para extender las funcionalidades.

A veces se desea adicionar responsabilidades a un objeto pero no a toda la

clase. Las responsabilidades se pueden adicionar por medio de los mecanismos

de Herencia, pero este mecanismo no es flexible porque la responsabilidad es

adicionada estaticamente. La solucion flexible es la de rodear el objeto con

otro objeto que es el que adiciona la nueva responsabilidad. Este nuevo objeto

es el Decorator.

Como podemos observar en la figura 4.1, la clase Decorator hereda de la

misma clase que el componente que se quiere decorar. Ası, cada decorador

es capaz de encapsular una instancia de cualquier otro objeto que herede del

Page 57: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 56

Figura 4.2: Estructura de los objetos en memoria del patron Decorator

componente comun, bien un componente concreto u otro decorador.

La encapsulacion puede ser iterativa, de modo que un componente con-

creto puede ser encapsulado por un decorador, que a su vez puede ser en-

capsulado por otro decorador y ası sucesivamente, un ejemplo ilustrado es la

figura 4.2 anadiendo nueva funcionalidad en cada uno de los pasos. El patron

Decorator sustituye la herencia por un proceso iterativo de composicion.

El objeto con el que el objeto cliente interactuara sera aquel que se en-

cuentre en la capa mas externa (en este caso, DecoratorC ), que se encargara

de acceder a los objetos contenidos e invocar su funcionalidad, que sera de-

vuelta a las capas exteriores.

Para comenzar, por tanto, debemos tener claros los siguientes conceptos

1https://danielggarcia.wordpress.com/2014/03/10/patrones-estructurales-iii-patron-

decorator/

Page 58: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 57

sobre este patron:

Un decorador hereda de la misma clase que los objetos que tendra que

decorar.

Es posible utilizar mas de un decorador para encapsular un mismo

objeto.

El objeto decorador anade su propia funcionalidad, bien antes, bien

despues, de delegar el resto del trabajo en el objeto que esta decorando.

Los objetos pueden decorarse en cualquier momento, por lo que es

posible decorar objetos de forma dinamica en tiempo de ejecucion.

La razon por la que la clase Decorator hereda de la misma clase que el

objeto que tendra que decorar no es la de anadir funcionalidad, sino la de

asegurarse de que ambos comparten el mismo tipo y puedan intercambiarse:

un decorador podra sustituir a un objeto decorado.

4.1.4. Patron Decotator aplicado al problema

A continuacion se explicara la implementacion de este modulo, el cual

como se comento en secciones previas predomina el patron decorator, se de-

talla el diagrama de clases y se explicara brevemente como se comporta este

diseno, finalmente se explicara alguno de los decorators implementados para

demostrar el comportamiento que tiene cada uno, comparando sus similitu-

des y diferencias.

En las figuras 4.3 4.4 4.5 esta detallado todo el diagrama de clases que

componen este modulo. Se realizo la separacion en tres imagenes debido a lo

amplio que es el mismo.

Como se observa el diseno es muy similar al detallado en el ejemplo donde

se explico el patron decorator, la clase ReaderConcret es la clase que se va a

decorar mientras que los decorators son todas las clases que estan en la parte

inferior del diagrama. La clase anteriormente nombrada es la clase encargada

de parsear en el archivo resultante los datos mınimos que contendran (como

Page 59: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 58

Figura 4.3: Diagrama de clases. Parte 1

Figura 4.4: Diagrama de clases. Parte 2

Figura 4.5: Diagrama de clases. Parte 3

Page 60: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 59

la hora y el dia), mientras que los decorator parsean datos adicionales que

uno desea agregar. El metodo a decorar es read(self,row).

Otras de las principales ventajas que ofrece el patron Decorator es que

la generacion de este segundo archivo debe ser totalmente configurable, por

ejemplo, tener la posibilidad de generar un archivo con datos como el wifi,

la baterıa y la memoria, y otro archivo en donde queremos tener los mismos

datos pero ademas agregar datos sobre el volumen del dispositivo, datos del

bluetooth, y de esta manera generar los archivos con innumerables configu-

raciones por lo cual se debe escoger un patron de diseno que contemple todas

estas caracterısticas. Y para esto se decidio escoger el patron Decorator.

A continuacion se detalla el codigo del decorator AirplaneDecorator. Este

decorator agrega al archivo un 1 si el dispositivo esta en modo avion, o un 0

si no lo esta.

class AirplaneDecorator ( ReaderDecoratorAbs ) :

def i n i t ( s e l f , r eader ) :

r eader . g e t f i r s tRow ( ) . append ( ” a i r p l a n e o n o f f ” )

s e l f . a irplaneOn = 0

ReaderDecoratorAbs . i n i t ( s e l f , r eader )

def read ( s e l f , row ) :

l i s t = s e l f . r eader . read ( row )

i f ” a i r p l a n e ” in row [ 3 ] :

i f ”on” in row [ 3 ] :

s e l f . a irplaneOn = 1

e l i f ” o f f ” in row [ 3 ] :

s e l f . a irplaneOn = 0

l i s t . append ( s e l f . a irplaneOn )

return l i s t

En el constructor se puede observar como se agrega el encabezado de este

decorator, para este caso se utiliza el String airplane_on_off de esta manera

esta columna sera reconocida en el modulo de prediccion de datos. Luego

vemos que reimplementa el metodo read(self,row) y precisamente en la

Page 61: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 60

linea 8(list = self.reader.read(row)) vemos como la variable list se

genera con la clase principal ReaderConcret ası como tambien con los demas

decorators que esten antes de este. A continuacion vemos como le agrega a la

lista el valor descrito anteriormente, para esto reconoce en el archivo original

csv la palabra airplane en la columna tres, y luego en la columna cuatro

compara que el valor sea on o off para agregar un 1 o 0 respectivamente. Por

ultimo retorna la lista.

Para culminar este modulo podemos decir que el comportamiento de los

demas decorator es muy similar al explicado anteriormente, la diferencia radi-

ca en las diferentes palabras a reconocer y los diferentes valores a almacenar,

en algunos casos se almacena un 1 o un 0 determinando si un sensor esta

encendido o no, como puede ser el bluetooth, wifi, modo avion, datos movi-

les, o en otros casos se puede almacenar un valor numerico, por ejemplo en

el caso de los decorators respecto al volumen o nivel de brillo de la pantalla,

estos almacenaran el valor de volumen o brillo que tenıa el dispositivo en ese

momento.

4.2. Modulo de prediccion de datos

Este modulo implica la construccion de modelos de prediccion con tecnicas

de regresion, clasificacion y redes neuronales (prediccion en series de tiempo).

La seleccion, entrenamiento y prediccion de estos modelos se hace en un

proceso interactivo al usuario, que involucra desde la configuracion inicial de

los datos, teniendo la posibilidad de importarlo y seleccionar del conjunto

aquellas caracterısticas de su interes; la eleccion del modelo a entrenar hasta

la posibilidad de predecir un resultado dado.

El desarrollo comenzo por establecer una arquitectura Cliente-servidor

en donde se hizo uso del microframework Flask 2 de Python para dicha co-

municacion, el cual mediante el esquema de rutas permite realizar peticiones

RESTful3 con URLs sencillas. El mismo permite establecer una sesion de co-

2http://flask.pocoo.org/3Servicio web que implementa la arquitectura REST (Representational State Transfer)

Page 62: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 61

municacion interactiva entre la aplicacion de un usuario. Estas URLs tienen

asociados una funcion en Python que segun los parametros que se envıen,

trata y responde a las mismas.

El cliente puede realizar peticiones asignando las siguientes rutas:

Ruta Funcion

/ Inicia la pagina Html

/csvdata Alta y consultas de archivos CSV

/data/<dataname> Lectura de archivo CSV especifico

/ml/cls/<action> Acciones sobre algoritmos de Clasificacion

/ml/regression/<action> Acciones sobre algoritmos de Regresion

/ml/neuralnetwork/<action> Acciones sobre algoritmos de Redes Neuronales

/mlmodel/list/<type> Lista de modelos implementados

Tabla 4.2: Rutas de peticiones.

Por ejemplo en la Tabla 4.3 se muestra las acciones que se definieron sobre

modelos:

ejemplo: @app.route(’/ml/regression/<action>’)

<action> Descripcion

create Inicializa el modelo con los hiperparametros predefinidos

train Realiza el entrenamiento del modelo con los datos seleccionados

predict Predice con datos reales sobre el modelo entrenado

predictViz Consultas de datos pare renderizar graficos y tablas

Tabla 4.3: Acciones sobre el modelo

Los mensajes enviados dentro de la aplicacion utilizan el formato JavaS-

cript Object Notation (JSON) con la informacion del mensaje y la relevante

para la conexion e identificacion del remitente.

Una vez establecida la conexion al servidor, se provee de una interfaz al

usuario para modelar y administrar los algoritmos de Machine Learning que

Page 63: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 62

se desea entrenar y evaluar. Esta se ha implementado a traves de una apli-

cacion Web utilizando HTML, CSS y bibliotecas JavaScript. Las bibliotecas

basicas que se utilizaron fueron las siguientes:

1. Bootstrap4: Provee herramientas para el diseno de la interfaz grafica y

la visualizacion de componentes visuales de los sitios.

2. ReactJS5: Es una librerıa basada en componentes, disenado para crear

pantallas simples en cada estado de la herramienta, encargandose de

actualizar y renderizar de forma eficiente los componentes en cuestion

cuando cambian los datos. Un algoritmo detecta que parte se cambio

y la actualiza.

3. RequireJS6: Ofrece una manera de modularizar codigo JavaScript y

tambien de cargar asıncronamente esos modulos, de manera que solo

se tenga que cargar los modulos necesarios para la pagina en la que se

encuentre el usuario.

La figura 4.6 muestra un ejemplo de la interaccion de los diferentes com-

ponentes de la aplicacion en peticion del usuario. En donde se puede observar

a modo ilustrativo como es la interaccion cliente-servidor.

El modelado de las clases que tratan los diferentes algoritmos se realizo

siguiendo una implementacion orientada a objetos y basado en patrones de

diseno (Figura 4.7). Cada parte seran desglosadas en las subsecciones si-

guientes correspondientes a cada modelo. Como se observa, a nivel general

se definio la clase abstracta BaseModel la cual define los metodos comunes

a todos las clases, y que cada modelo la implementa de forma diferente y

acorde a los parametros y configuracion de cada una.

4https://github.com/twbs/bootstrap5https://reactjs.org/6http://requirejs.org/

Page 64: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 63

Figura 4.6: Ejemplo de interaccion

4.2.1. Implementacion Regresion Lineal

Las clases Regression y LinearRegression son las involucradas en la

implementacion de los metodos del modelo. La primera obtiene la definicion

de la clase LinearRegression7 del modulo sklearn.linear_model y la se-

gunda se encarga de implementar los metodos abstractos definidos en la clase

abstracta para entrenamiento y prediccion de los datos.

Metodo train: Primero toma el conjunto de datos y lo particiona en

datos de Test y Entrenamiento, el porcentaje de particion se puede ajustar

como configuracion del algoritmo, pero en la implementacion se opto por 70 %

para entrenamiento y 30 % para test. Paso siguiente, con los datos tomados

para el entrenamiento se entrena el modelo llamando a la funcion fit. Luego

se procede a tomar las metricas correspondientes del entrenamiento como

7http://scikit-learn.org/stable/modules/generated/sklearn.linear_model

Page 65: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 64

Figura 4.7: Diagrama de Clases implementacion de Algoritmos

medicion del mismo, devolviendo toda esta informacion al navegador, como

ası tambien a un archivo de texto.

Metodo Predict: Una vez entrenado el modelo, el usuario solicita me-

diante una peticion desde el navegador un resultado indicando datos carac-

terısticos que influyen en lo que desea predecir. Esto se da llamando al la

Page 66: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 65

funcion predict que toma las caracterısticas indicadas y retorna el valor pre-

dicho con el modelo entrenado previamente.

4.2.2. Implementacion Clasificacion

Muy similar al anterior, se desarrollo una clase por cada algoritmo de

clasificacion. Estas clases solo hacen la conexion con el modelo especıfico

que las representa: KNNClassifier8, LogisticRegression9, NBayesClassifier10,

SVMClassifier11

La clase Classifier es la encargada de implementar los metodos de en-

trenamiento y prediccion, haciendo uso de las funciones fit y predict aplicados

al conjunto de datos de cada uno de los modelos.

4.2.3. Implementacion Red Neuronal Recurrente

Para la implementacion del modelo Neural Network, se considero la va-

riante de LSTM [22], la cual es un tipo de red neuronal recurrente aplicado

en este caso a series de tiempo.

A continuacion se detalla para cada etapa del modelado, como se imple-

mento segun el punto de vista de los pasos a seguir desde la carga de datos

hasta el analisis de resultados.

Fases del modelado

Carga y formato de datos: Se toma el conjunto de datos que se

selecciono en la pantalla, si bien se diferencian entre el dato a predecir

y las caracterısticas a tomar en cuenta que afectarıan al consumo de la

baterıa, luego se unen en un solo dataset concatenando la caracterıstica

a predecir en la primera columna del mismo (para un mejor manejo de

los datos).

8http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html9http://scikit-learn.org/stable/modules/generated/sklearn.linear model.LogisticRegression.html

10http://scikit-learn.org/stable/modules/generated/sklearn.naive bayes.GaussianNB.html11http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html

Page 67: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 66

Adicionalmente y previo al entrenamiento se generan graficos de ca-

da una de las caracterısticas para analizar visualmente la sucesion de

valores para cada uno y a priori poder identificar si existe o no una

correlacion entre cada una de las caracterısticas con respecto a la Ba-

terıa. Dichos graficos muestran la curva que van tomando los valores a

traves de un intervalo fijo de tiempo (tomando el conjunto total de los

datos).

Para una mayor eficiencia en el procesamiento, se convirtio todos los

valores al tipo float32, seguido se normalizo el conjunto de datos uti-

lizando la funcion MinMaxScaler, para que cada valor se encuentre

formateado entre los valores 0 y 1, tomando como mınimo 0 y maximo

1, y valores intermedios como una funcion de estos.

Una vez normalizado se procede a transformar el conjunto de datos ha-

ciendo uso de la funcion series_to_supervised(), que toma una serie

temporal univariada o multivariada y la enmarca como un conjunto de

datos de aprendizaje supervisado12. Esta es una herramienta util ya

que permite explorar diferentes encuadres de un problema de series de

tiempo con algoritmos de aprendizaje automatico para ver cual podrıa

resultar en modelos de mejor rendimiento.

La funcion toma cuatro argumentos:

data: Secuencia de observaciones como una lista o matriz 2D NumPy.

n_in: Numero de observaciones como entrada (X). Los valores pueden

estar entre [1..len (data)] Opcional. El valor predeterminado es 1.

n_out: Numero de observaciones como salida (y). Los valores pueden

estar entre [0..len (data) -1]. Opcional. El valor predeterminado

es 1.

12https://machinelearningmastery.com/convert-time-series-supervised-learning-

problem-python/

Page 68: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 67

dropnan: Boolean si se deben eliminar o no las filas con valores NaN.

Opcional. El valor predeterminado es True.

La funcion devuelve un valor unico: El nuevo conjunto de da-

tos se construye como un DataFrame13 (Pandas), con cada columna

adecuadamente nombrada tanto por numero de variable como por pa-

so de tiempo. Esto le permite disenar una variedad de problemas de

pronostico de tipo de secuencia de paso de tiempo diferentes a partir

de una serie temporal univariada o multivariante determinada.

Una vez devuelto el nuevo conjunto de datos se puede decidir como

dividirlo en componentes X e Y para el aprendizaje supervisado. De

este, las variables transformadas que no se quieren predecir, se elimi-

nan, dejando solo la columna correspondiente al valor de la Baterıa,

definiendose como la variable Y al momento de separar y cortar los

datos, tanto para el train como para el test (la baterıa en secuencia

de tiempo tomando la ultima columna en funcion de la anterior, para

una cantidad de pasos de tiempo indicada).

Definicion el modelo: Paso siguiente es disenar la red. En este punto

se puede aplicar diferentes variantes en cuanto al ancho el largo de

la red, cantidad de neuronas de cada capa, funciones de activacion

como tambien las metricas que se utilizan para comparar entre cada

repeticion (epoch) la eficiencia del entrenamiento con el conjunto de

datos.

Ejemplo: Se define una capa LSTM con 50 neuronas en la primera capa

oculta y 1 neurona en la capa de salida, haciendo uso de la funcion de

activacion dependiendo el tipo de modelado sigmoid.

# des ign network

model = Sequent i a l ( )

model . add (LSTM(50 ) )

13https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html

Page 69: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 68

model . add ( Dense ( 1 ) )

model . add ( Act ivat ion ( ’ sigmoid ’ ) )

Compilacion el modelo: La compilacion requiere una serie de parame-

tros que se deben definir, especıficamente, el algoritmo de optimizacion

que se utiliza para capacitar a la red y la funcion de perdida utilizada

para evaluar la red que se minimiza mediante el algoritmo de optimi-

zacion. Por ejemplo, a continuacion se presenta un caso en el que se

compila un modelo definido y se especifica el algoritmo de optimiza-

cion del descenso de gradiente estocastico (sgd) y la funcion de perdida

cuadratica media mean squared error, destinado a un problema de re-

gresion.

model . compi le ( opt imize r =’sgd ’ ,

l o s s =’ mean squared error ’ ,

met r i c s =[ ’ accuracy ’ ] )

El tipo de problema de modelado predictivo impone restricciones en el

tipo de funcion de perdida que se puede usar. Por ejemplo, a continua-

cion se muestran algunas funciones de perdida estandar para diferentes

tipos de modelos predictivos14:

Regression mean_squared_error

Clasificacion binaria binary_crossentropy

Clasificacion Multiclase categorical_crossentropy

Tabla 4.4: Funciones de perdidas

Los algoritmos de optimizacion mas comunmente utilizados debido a

su rendimiento generalmente mejor son los que muestra la Tabla 4.5

Finalmente, tambien puede especificar metricas para recopilar al ajus-

tar el modelo ademas de la funcion de perdida. En general, la metrica

14https://machinelearningmastery.com/5-step-life-cycle-long-short-term-memory-

models-keras/

Page 70: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 69

Descenso de gradiente estocastico

ADAM

RMSprop

Tabla 4.5: Algoritmos de optimizacion

adicional mas util para recopilar es la precision (accuracy) para los

problemas de clasificacion.

Ajuste del modelo: Paso siguiente hacer el llamado fit()15 del modelo

secuencial de keras, el entrenamiento de la red dado los datos de train

X e Y, ademas de definir el conjunto de datos de test X e Y.

Ahora por ejemplo podemos definir y ajustar nuestro modelo LSTM.

# f i t network

h i s t o r y = model . f i t ( tra in X , t ra in y ,

epochs =50, b a t c h s i z e =72,

s h u f f l e=False )

La red se entrenara usando el algoritmo de backpropagation y se opti-

mizara con el algoritmo de optimizacion y la funcion de perdida espe-

cificadas al compilar el modelo.

Se requiere que la red este entrenada para un numero especıfico de

epocas (epochs) o exposiciones al conjunto de datos de capacitacion.

Cada epoca se puede dividir en grupos de pares de patrones de entrada-

salida llamados lotes (batch).

Al terminar el entrenamiento se devuelve un objeto de historial que

proporciona un resumen del rendimiento del modelo durante el entrena-

miento. Esto incluye tanto la perdida como cualquier metrica adicional

especificada al compilar el modelo, registrada para cada epoca.

Evaluacion del modelo: Por ultimo se procede a evaluar el modelo,

15https://keras.io/models/sequential/

Page 71: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 70

si es representativo con respecto al conjunto de datos de test y si la

correlacion indica que fue ası. Una vez que el modelo este en forma,

podemos pronosticar todo el conjunto de datos de prueba.

Se combina el pronostico con el conjunto de datos de prueba y se in-

vierte la escala. Tambien se invierten escalas en el conjunto de datos

de prueba con los numeros de prediccion esperados.

Con las previsiones y los valores reales en su escala original, se puede

calcular una puntuacion de error para el modelo. En este caso, se calcula

el error cuadratico medio de raız (RMSE ) que da error en las mismas

unidades que la variable misma.

4.2.4. Hiperparametros de los modelos

A traves del uso de metricas se adquiere una idea estimativa del desem-

peno del clasificador frente al conjunto de datos de entrenamiento, sin em-

bargo, podrıa resultar util conocer el comportamiento general del algoritmo,

contrastando cada uno de los valores reales del atributo clase con los valores

predichos por el clasificador, y obtener ası una vista exacta de la manera en

que el clasificador se ajusta a los datos.

Son muchas las formas de definir los hiperparametros de los modelos,

desde, por ejemplo en LTSM, la cantidad de neuronas, los algoritmos de

perdidas para eficiencia, hasta la cantidad de veces que se itera sobre el

conjunto de datos. Esto se vera con mayor claridad en la seccion resultados

de las pruebas donde se tomaron en cuenta estos aspectos, comparando los

resultados arrojados con las diferentes instancias de configuraciones.

4.2.5. Funciones de la Herramienta

Descripcion de la funcionalidad con algunas pantallas basicas de las dife-

rentes acciones que permite realizar la aplicacion.

La aplicacion cuenta con las siguientes funcionalidades indispensables pa-

ra su operacion:

Page 72: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 71

Carga de datos (formato CSV 16) y visualizacion de datos

El Usuario puede cargar diferentes archivos de datos a analizar, las unicas

restricciones son: Archivo en formato CSV, separando cada elemento por ‘,’

(coma) y se debe especificar la cabecera de las diferentes caracterısticas para

una facil lectura por medio de las bibliotecas para tratamiento de estos datos

de python(Numpy).

La pantalla de la Figura 4.8 permite la agregar, seleccionar y visualizar

el conjunto de datos seleccionado. Se puede previsualizar en todo momento

(antes y despues de la subida del archivo) los registros, el mismo se muestra

en forma de tabla, abarcando la totalidad de los datos, con la opcion de

busqueda sobre todo el conjunto.

Figura 4.8: Carga y visualizacion de datos

Adicionalmente se puede visualizar la distribucion de los datos del ar-

chivo, con tablas y graficos de barra, torta, linea, entre otros. Por ejemplo

en la Figura 4.9 se genero la serie de tiempo de porcentaje de baterıa y la

temperatura de la misma.

Eleccion de modelo de prediccion y caracterısticas

Esta seccion (Figura 4.10) le permite al usuario Seleccionar el Modelo de

16Comma Separated Value

Page 73: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 72

Figura 4.9: Grafico sobre disposicion de los datos

Figura 4.10: Seleccion de Modelo

prediccion de los datos. Siguiendo los siguientes pasos:

1. Seleccion de ıtem entre modelos: Clasificacion, Regression o Neu-

ralNetwork.

2. Seleccionar Algoritmos:

Clasificacion: KNN, Bayes, SVM

Regresion: Linear, Logistic

Page 74: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 73

NeuronalNetwork: LSTM

3. Seleccion de Datos: En la lista se muestra los dataset cargados por

el usuario con el cual se entrenara el modelo.

4. Seleccion de propiedades: En este apartado se selecciona la categorıa

del conjunto de datos que se quiere predecir (Target), y ademas las

caracterısticas que seran utilizadas como posibles influyentes en el dato

a predecir (Features).

Visualizacion del resultado del entrenamiento y la prediccion del

modelo

Una vez entrenado el modelo, se visualiza en Vista Prediccion el resultado

grafico de la funcion validacion (para cada caracterıstica seleccionada 4.11)

Figura 4.11: Grafico resultado

En la pestana Metricas (Figura 4.12) se guardan las metricas historicas

de cada entrenamiento, con las caracterısticas, metricas y ajustes de los al-

goritmos en cuestion para la valoracion y analisis individual por parte del

usuario.

Page 75: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 74

Estas metricas de evaluacion incluyen: el coeficiente de correlacion de

Pearson (CC) y la raız del error cuadratico medio (RMSE). Es conveniente

trasladar el analisis a la mayor cantidad de metricas posibles, ya que un

mismo indicador podrıa arrojar valores cercanos entre un algoritmo y otro

favoreciendo equivocadamente a uno de ellos, error que podrıa notarse al

compararlos simultaneamente con otras metricas.

Figura 4.12: Metricas resultantes del entrenamiento

Prediccion sobre modelo entrenado

En pestana Predecir 4.13 el usuario puede realizar una prediccion a partir del

modelo entrenado con datos de prueba para una evaluacion intuitiva. De esta

forma, de modo rapido se puede tener una visibilidad de que tan acertado

puede estar la prediccion con lo real.

Persistencia y analisis de resultados

Por ultimo la herramienta genera por cada entrenamiento de los modelos,

archivos con los resultados de las metricas, como ası tambien graficos de la

representacion de las distribuciones de los datos del conjunto. Esto ayuda a

Page 76: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 4. ENFOQUE E IMPLEMENTACION 75

Figura 4.13: Prediccion interactiva

la posterior comparacion de los modelos y el analisis que se llevara a cabo en

el capıtulo siguiente.

Page 77: Universidad Nacional del Centro la Provincia de Buenos ...

Capıtulo 5

Evaluacion

Este capıtulo esta dedicado a plasmar todas las evaluaciones realizadas de

todos los algoritmos que se explicaron en el capitulo 2. Para esto se ilustran

tablas y se realizaran comparaciones sobre los mismos. El objetivo es poder

realizar una evaluacion para posteriormente exponer una conclusion sobre el

trabajo y el estudio realizado.

Se han realizado numerosas pruebas teniendo en cuenta algoritmos de

clasificacion y regresion, ası como tambien analisis de series de tiempo con el

algoritmo de Red Neuronal LSTM.

Para los algoritmos de clasificacion y regresion, se han realizado pruebas

con todos los indicadores presentes en los archivos, posteriormente se calculo

la matriz de correlacion de Pearson y se volvieron a realizar las pruebas

seleccionando los 16 con correlacion mas alta con respecto al indicador de

la baterıa para luego comparar resultados. En cuanto al modelo de redes

neuronales, se realizaron numerosas pruebas con multiples configuraciones

en la red, en este caso tomando los 7 indicadores con mayor correlacion.

5.1. Correlacion de los indicadores

Para determinar los indicadores que tienen mas impacto, o que estan mas

relacionados con el indicador de la baterıa, se calcularon matrices de corre-

lacion de Pearson para cada uno de los archivos a analizar, cada archivo

76

Page 78: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 77

Figura 5.1: Graficos de correlacion de los archivos tratados

Page 79: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 78

Figura 5.2: Correlacion promedio entre el porcentaje de baterıa y demas

indicadores

contiene logs para un usuario distinto, en la seccion 5.2 se discutira con mas

detalle el formato y la informacion de estos archivos, tambien se aprecia en

la figura 5.1 en donde los valores en rojo son positivos y azul negativos. Una

vez creada estas matrices se analizaron todos los indicadores y se seleccio-

naron aquellos que al menos en uno de los archivos tenga una correlacion

dentro del intervalo [-0,05:0,05]. Luego se realizo un promedio de correlacion

entre los indicadores y se compararon con el intervalo mencionado anterior-

mente. Como resultado de esto se obtuvo 16 indicadores. En la tabla 5.1 se

puede observar esta matriz y en color verde los indicadores resultantes de

este analisis para realizar las pruebas. Ası mismo en la figura 5.2 se puede

apreciar el grafico de correlacion, tomando el modulo de los valores y de esta

manera tener de forma simple la relacion de los indicadores con el indicador

de baterıa.

5.2. Archivos contemplados para la evalua-

cion

En la tabla 5.2 se muestra la descripcion y la cantidad de lıneas que

contiene cada uno de los archivos que se contemplaron para el entrenamiento

y evaluacion de cada uno de los modelos, resultado de la ejecucion del modulo

Page 80: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 79

Atributos File1 File2 File3 File4 File5 Promedio

battery volt 0.89 0.94 0.93 0.85 0.92 0.906

disconected -0.32 -0.6 -0.3 -0.32 -0.4 0.388

ac 0.32 0.6 0.31 0.33 0.36 0.384

battery temp -0.31 -0.33 -0.29 -0.43 -0.34 0.34

hour 0.06 -0.21 0.56 -0.26 -0.45 0.308

wifi -0.16 0.3 0.014 0.081 0.16 0.143

wifi scanning 0.15 0.27 0.06 0.012 0.13 0.1244

screen brightness -0.17 0.19 -0.033 0.04 0.16 0.1186

data 0.014 -0.29 0.06 -0.15 -0.0076 0.10432

screen on -0.11 0.12 -0.097 0.11 -0.029 0.0932

system volumen 0.011 0.16 0.15 -0.026 0.029 0.0752

notificacion volumen -0.0024 0.16 0.06 -0.058 0.062 0.06848

music volumen -0.012 0.13 0.06 -0.078 0.048 0.0656

sunday -0.067 0.09 -0.022 0.026 0.061 0.0532

usb 0.016 0.038 -0.033 -0.045 0.12 0.0504

dtmf volumen 0.0044 0.15 0.06 0.019 0.015 0.04968

ringermode vibrate 0.0033 0.16 0.026 0.032 -0.026 0.04946

ringermode normal 0.00011 0.16 0 -0.046 0.033 0.047822

wifi connected -0.0095 0.06 0.05 0.025 -0.027 0.0343

bluetooth -0.029 0.06 0.036 -0.019 -0.027 0.0342

tuesday 0.0099 0.0061 -0.0019 0.013 0.1 0.02618

Tabla 5.1: Correlacion entre el porcentaje de baterıa y demas indicadores.

Ordenados por correlacion promedio

Page 81: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 80

transformador de datos.

Dado que los archivos originales provistos por la Universidad de Cambrid-

ge contenıa millones de lıneas, se procedio a reducir de forma uniforme cada

uno de ellos, teniendo en cuenta que la distribucion de los datos continue

constante en relacion al tiempo.

La generacion de archivos con un numero de filas uniformes para un

determinado intervalo de tiempo nace en la necesidad que tiene el modelo

de red neuronal LSTM aplicado a series de tiempo, en donde se requieren

intervalos de tiempos definidos entre registros.

La eleccion de realizar para cada archivo dos configuraciones (3 lıneas

cada 1 horas o 1 linea cada 1 hora) es justamente para tener diferentes op-

ciones, y determinar si esta configuracion es relevante a la hora de comparar

resultados, y analizar cual de ambas es mas recomendable, etc. No obstante

estos archivos se incluyeron en las pruebas de algoritmos de regresion y cla-

sificacion ya que esta configuracion no es excluyente para estos dos modelos,

tambien es una buena oportunidad al tener mas archivos y resultados que

comparar. Pero para el algoritmo LSTM solo se tuvieron en cuenta aque-

llos cuya configuracion tienen como condicion un numero de lıneas para un

determinado intervalo de tiempo.

5.3. Pruebas realizadas para los Algoritmos

de Clasificacion

Visto como un problema de clasificacion en el cual se trata de predecir un

numero discreto entre el intervalo [0:100] como las posibles clases a predecir,

esto representa el nivel de carga de la baterıa, la resolucion de este problema

para esta clase de algoritmos es clasificar las diferentes entradas entre tantas

clases existentes en el intervalo anteriormente mencionado.

Para los algoritmos de clasificacion se han realizado pruebas en todos

los archivos generados teniendo en cuenta todos los indicadores que posee

cada uno. Posteriormente se aplico el algoritmo que permite cuantificar la

Page 82: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 81

Archivo Tamano lıneas Caracteristicas

File1 3PerHour 4.43 MB 36,353 Datos de FILE1 pero formateados de manera

que se almancenan 3 registros cada una hora.

File1 24PerDay 1.46 MB 12,151 Datos de FILE1 pero formateados de manera

que se almancenan 24 registros por dia.

File1 25 10.6 MB 87,450 Datos de FILE1 pero tomando un registro

cada 1500 registros del archivo original.

File2 3PerHour 6.68 MB 54,637 Datos de FILE2 pero formateados de manera

que se almancenan 3 registros cada una hora.

File2 24PerDay 2.23 MB 18,445 Datos de FILE2 pero formateados de manera

que se almancenan 24 registros por dia.

File2 25 11.9 MB 97,261 Datos de FILE2 pero tomando un registro

cada 1500 registros del archivo original.

File3 3PerHour 6.39 MB 51,977 Datos de FILE3 pero formateados de manera

que se almancenan 3 registros cada una hora.

File3 24PerDay 2.11 MB 17,358 Datos de FILE3 pero formateados de manera

que se almancenan 24 registros por dia.

File3 25 17.9 MB 145,000 Datos de FILE3 pero tomando un registro

cada 1500registros del archivo original.

File4 3PerHour 4.24 MB 35,004 Datos de FILE4 pero formateados de manera

que se almancenan 3 registros cada una hora.

File4 24PerDay 1.45 MB 11,806 Datos de FILE4 pero formateados de manera

que se almancenan 24 registros por dia.

File4 25 18.6 MB 159,268 Datos de FILE4 pero tomando un registro

cada 1500 registros del archivo original.

File5 3PerHour 6.68 MB 53,114 Datos de FILE5 pero formateados de manera

que se almancenan 3 registros cada una hora.

File5 24perDay 2.23 MB 17,818 Datos de FILE5 pero formateados de manera

que se almancenan 24 registros por dia.

File5 25 25.2 MB 204,352 Datos de FILE5 pero tomando un registro

cada 1500 registros del archivo original.

Tabla 5.2: Archivos utilizados

Page 83: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 82

correlacion entre indicadores, y con esto generar una matriz de correlacion.

Entonces se volvieron a realizar las mismas pruebas pero esta vez con la

mitad de las caracterısticas, y estas fueron seleccionadas entre las que mas

correlacion tenıan con respecto al porcentaje de baterıa y ası comparar y

analizar los resultados obtenidos.

Dichas pruebas se llevaron a cabo tomando los 4 algoritmos de clasifi-

cacion indicados en el capıtulo 2 (Regresion Logıstica, Gaussian Naive

Bayes, K-Nearest Neighbors (KNN) y Maquina de vector de sopor-

te (SVM)) con la finalidad de identificar el nivel de exactitud (Accuracy)

definido, junto con el tiempo de entrenamiento de cada uno de ellos.

Las configuraciones que se tomaron para entrenar los diferentes algorit-

mos fueron las basicas por defecto indicadas en la tabla 5.3, como ası tambien

se puede observar todas los posibles hiperparametros a configurar en cada

uno, dichos hiperparametros son los documentados en Sklearn para la imple-

mentacion de dichos algoritmos.

La exactitud es la metrica utilizada para evaluar modelos de clasificacion,

es la fraccion de predicciones que el modelo realizo correctamente. Formal-

mente, la exactitud tiene la siguiente definicion.

Exactitud(Accuracy) =Numero de predicciones correctas

Numero total de predicciones

Los resultados se toman en base a la configuracion por defecto de cada

uno de los algoritmos en cuestion, aplicando el metodo de ajuste y valida-

cion Cross Validation con 5 repeticiones de entrenamiento y test distintos,

tomando la exactitud promedio resultantes de evaluar el modelo.

En las figuras 5.3 5.4 5.5 5.6 se pueden observar para cada uno de los

algoritmos utilizados, los valores de cada uno de los resultados para cada

archivo, teniendo en cuenta tanto todos los indicadores como los 16 con mayor

correlacion, adicionalmente se puede observar un grafico en donde se muestra

estos valores de una manera facil de comparar.

Para el algoritmo KNN resulto mas significativo el uso de los 16 indi-

cadores con mayor correlacion ya que, como puede apreciarse, la lınea que

dibuja los valores de la exactitud con los 16 indicadores esta por encima de

Page 84: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 83

SVC KNeighborsClassifier GaussianNB LogisticRegression

C=1.0 n neighbors=3 priors=None penalty=’l2’

kernel=’rbf’ weights=’uniform’ var smoothing=1e-09 dual=False

degree=3 algorithm=’auto’ tol=1e-4

gamma=’auto deprecated’ leaf size=30 C=1.0

coef0=0.0 p=2 fit intercept=True

shrinking=True metric=’minkowski’ intercept scaling=1

probability=False metric params=None class weight=None

tol=0.001 n jobs=None random state=None

cache size=200 solver=’liblinear’

class weight=None max iter=100

verbose=False multi class=’ovr’

max iter=-1 verbose=0

decision function shape=’ovr’ warm start=False

random state=None n jobs=1

Tabla 5.3: Tabla hiperparametros por defecto de los algoritmos

Page 85: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 84

Figura 5.3: Tabla y grafico de los resultados cross validation para el algoritmo

KNN

los valores tomando todos los indicadores (entre 0,2 y 0,6). Para los demas

algoritmos esta estrategia no dio resultado significativo, incluso para el al-

goritmo de Bayes se puede observar que los resultados mejoran levemente

teniendo en cuenta el entrenamiento con todos los indicadores.

En la figura 5.7 se visualiza el promedio de la exactitud contemplando los

15 archivos de cada uno de los algoritmos, en este se puede apreciar que KNN

fue el que obtuvo mejor acierto con un porcentaje de aproximadamente un

30 %.

Por otro lado, otra de las cuestiones que se tuvieron en cuenta a la ho-

ra de evaluar fue el tiempo de procesamiento para cada algoritmo, esto es

muy importante dado que no serıa ventajoso elegir un algoritmo solamente

por el acierto que haya obtenido, dado que para algunos el tiempo fue muy

elevado. Esto se ve ilustrado en la tabla 5.4 donde por ejemplo se puede ver

que el promedio para el algoritmo SVM fue aproximadamente entre 6 y 8

horas, en dicho caso la exactitud no fue la mejor pero de haberlo sido no se

podrıa sacar mucha ventaja de un modelo que tome demasiado tiempo de

entrenamiento. En cuanto a la metrica de tiempo se pudo observar que el

algoritmo KNN resulto tambien ser el mejor, con un promedio de aproxima-

damente de 1 minuto, teniendo en cuenta los archivos con los 16 indicadores

Page 86: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 85

Figura 5.4: Tabla y grafico de los resultados cross validation para el algoritmo

Naıve Bayes

Figura 5.5: Tabla y grafico de los resultados cross validation para el algoritmo

SVM

Page 87: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 86

Figura 5.6: Tabla y grafico de los resultados cross validation para el algoritmo

de regresion logıstica

Algoritmo Todos los atributos 16 Seleccionados

Regresion Logıstica 00:09:09 00:10:50

Gaussian Naive Bayes 00:01:48 00:03:25

K-Nearest Neighbors (KNN) 00:02:06 0:01:12

Maquina de vector de soporte (SVM) 07:57:51 06:31:36

Tabla 5.4: Tabla promedio de tiempos por algoritmos de Clasificacion

mas importantes.

5.4. Resultados de los Algoritmos de Regre-

sion

Los algoritmos de regresion predicen un valor numerico a partir de las

variables de entrada, a diferencia del algoritmo de clasificacion, predice un

valor aproximado, por lo tanto su evaluacion no se realiza mediante el acierto

sino mediante el error que tuvo en frente de los valores reales y para determi-

nar esto se evalua el RMSE (root mean square deviation). En realidad este

termino proviene del ECM (error cuadratico medio) que mide el promedio

Page 88: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 87

Figura 5.7: Tabla y grafico de los promedios de todos los archivos por algo-

ritmo

Page 89: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 88

Figura 5.8: Tabla y grafico de los errores medios del algoritmo de regresion

logıstica para cada archivo

de los errores al cuadrado, es decir, la diferencia entre el estimador y lo que

se estima. Esta metrica arroja sus resultados en las mismas unidades que la

cantidad que se estima, en este caso en porcentaje de baterıa.

RMSE =

√√√√ 1

n

n∑i=1

(Ai − Fi)2

Las pruebas sobre este algoritmos se llevaron a cabo teniendo en cuenta

todos los archivos explicados en la seccion 5.2 con la configuracion por defecto

del modelo.

La figura 5.8 muestra el resultado de la ejecucion teniendo en cuenta

todos los atributos mencionados en la seccion 5.1. En el mismo se puede

identificar que en promedio, seleccionando la configuracion de los dataset con

las 16 caracterısticas de mas correlacion con respecto a la baterıa, el error

cuadratico medio es menor que la configuracion con todas las caracterısticas,

mejorando tambien en el tiempo de entrenamiento de los mismos.

Page 90: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 89

Indicadores Correlacionados Correlacion promedio entre los archivos.

ac 0.384

disconected 0.388

battery volt 0.906

battery temp 0.34

data 0.104

wifi 0.143

hour 0.308

Tabla 5.5: Correlacion de los 7 atributos contemplados para los algoritmos

de LSTM.

5.5. Resultados sobre Algoritmos de Redes

Neuronales

5.5.1. Introduccion

El analisis de series de tiempo con LSTM en funcion de la variacion

de la baterıa en el tiempo, se llevo a cabo teniendo en cuenta tambien las

caracterısticas que mayor valor de correlacion (tabla 5.5) midieron, estas

caracterısticas influyen notablemente en el porcentaje de baterıa final (segun

se pudo medir en la seccion 5.1)

Se tomo esta decision ya que se pretende comparar diferentes configura-

ciones de parametrizacion de las series de tiempo, y debido a que los valores

de correlaciones de las demas caracterısticas no sobrepasaban el umbral de

10 % con relacion a la baterıa.

Al igual que las caracterısticas, para el analisis del entrenamiento de las

diferentes configuraciones de la red neuronal, los dataset utilizados se dividie-

ron en dos tipos segun las siguientes decisiones de modelado de los mismos.

Para el analisis de series de tiempo es recomendable que entre cada re-

gistro se presente el mismo intervalo de tiempo y debido a la cantidad sig-

nificativa de lıneas de los archivos originales, se tomaron aquellos registros

de forma que se minimice la perdida de informacion entre cada intervalo,

Page 91: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 90

teniendo en cuenta tambien los saltos significativos por falta de informacion

como en algunos casos que no se registraban datos por intervalos prolonga-

dos de tiempo. Es por esto que se formatearon los conjuntos de datos segun

intervalos de registros: Tomado 24 registros por dıa y 3 registros por hora.

En la configuracion 24 registros por dıa, se tomo de todo el conjunto 1

registro por hora, teniendo en cuenta que el resultado contiene un promedio

de todos los registros involucrados en esa hora para evitar la perdida de

informacion que podrıa ser relevante para el analisis.

De igual manera el caso de 3 registros por hora, se tuvo en cuenta que

de forma equilibrada se tomen 1 registro para cada intervalo aproximado de

20 minutos. Como en algunos casos los intervalos de falta de informacion era

mayor a este, se trato de tomar una fraccion de estos para que cumpla con

la condicion de tener 3 registros con datos en 1 hora.

Una vez realizado esto, paso siguiente abarcar la mayorıa de las posibles

configuraciones que se pueden aplicar sobre los parametros del modelo LTSM,

minimizando algunos aspectos importantes a configurar para el entrenamien-

to de la serie de tiempo. Estos aspectos fueron explicados en la seccion 4.2.3

donde se desarrollo las diferentes fases del modelado, desde la creacion de la

red, hasta el entrenamiento del mismo, pasando por la compilacion teniendo

en cuenta las diferentes funciones de perdida y metricas que seran aplicadas

internamente para evaluar la afectividad del entrenamiento.

Como se explico anteriormente, algunas configuraciones son propias para

modelos que siguen una lınea de clasificacion y otras para regresion, es por

esto que las pruebas se dividieron a partir de estos enfoques, ya que las

metricas utilizadas para evaluar los modelos son diferentes segun se trate

de uno u otro, como ası tambien los algoritmos de perdidas utilizados para

evaluar cada uno.

Teniendo en cuenta estas cuestiones se definieron configuraciones que se

explicaran en las siguientes secciones, con los resultados arrojados por los

mismos.

Page 92: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 91

Referencias: # neuronas epochs Batch Optimization

#Config 1 10 10 25 sgd

#Config 2 50 30 50 adam

#Config 3 100 50 100 rmsprop

#Config 4 10 50 25 sgd

#Config 5 50 30 100 adam

#Config 6 100 10 50 rmsprop

#Config 7 10 30 100 sgd

#Config 8 50 10 50 adam

#Config 9 100 50 25 rmsprop

#Config 10 50 50 50 sgd

Tabla 5.6: Tabla de configuraciones utilizadas en LSTM para algoritmos de

regresion

5.5.2. Configuracion con algoritmos de Regresion

En esta seccion se presenta las diferentes configuraciones que se utilizaron

para las pruebas, los resultados obtenidos y las conclusiones a las que se

llegaron. Cabe destacar que se tomaron estos valores aleatoriamente y debido

a las gran cantidad de combinaciones posibles de cada uno se opto por elegir

las siguientes de todo el conjunto.

Como se menciono en la seccion 4.2.3 en el enfoque de un problema de

regresion, se define la funcion de perdida (loss) mean squared error.

Para la definicion de numeros de neuronas se decidio experimentar con 10,

50 y 100 neuronas en una capa oculta. Los numeros de epochs se definieron

en 10, 30 o 50, con la variacion del tamano de batch tomado entre cada

iteracion de 20, 50 o 100.

En cuanto a los algoritmos de optimizacion se tomaron ‘sgd’, ‘adam’ y

‘rmsprop’, que son los algoritmos mas comunmente utilizados debido a su

rendimiento generalmente mejor. Todas estas configuraciones utilizadas se

pueden observar en la tabla 5.6.

Resultados:

Page 93: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 92

RMSE Configuraciones

Archivo #1 #2 #3 #4 #5 #6 #7 #8 #9 #10

File1 3PerHour 4.217 2.759 3.065 3.112 2.867 3.025 3.626 2.997 2.778 3.148

File1 24PerDay 17.473 9.599 9.704 9.148 9.354 9.819 13.504 9.34 9.789 10.059

File2 3PerHour 2.519 2.653 2.753 2.441 2.364 3.084 2.7 2.621 2.493 2.586

File2 24PerDay 6.573 5.662 5.678 5.951 5.635 6.007 8.31 5.638 5.486 6.148

File3 3PerHour 3.62 2.691 2.95 2.746 2.73 2.821 5.913 2.852 2.934 2.866

File3 24PerDay 11.91 7.186 7.828 7.211 7.14 7.15 10.993 7.086 7.178 8.177

File4 3PerHour 5.644 4.485 4.527 4.724 4.647 4.918 5.534 4.867 4.512 4.872

File4 24PerDay 14.3 12.985 12.876 12.867 12.672 12.837 14.706 13.074 12.452 12.786

File5 3PerHour 3.551 2.735 3.105 2.887 2.852 3.077 4.536 2.82 2.81 3.058

File5 24perDay 8.951 6.993 7.193 7.167 6.958 7.072 11.691 7.037 6.798 7.703

Promedio 7.8758 5.7748 5.9679 5.8254 5.7219 5.981 8.1513 5.8332 5.723 6.1403

Tabla 5.7: Resultados para los algoritmos LSTM con configuraciones de re-

grecion

La metrica que se tuvo en cuenta para medir el rendimiento de cada una

de las configuraciones para los diferentes DataSet fue “RMSE” (root mean

square desviation), que es utilizado para problemas tıpicos de regresion.

Conclusion:

Como se ve en la tabla 5.7, tomando el promedio de la metrica por cada

uno de las configuraciones sobre todos los archivos, las configuraciones que

mejores resultados aportaron, o sea aquellos cuyo RMSE sea menor, fueron

las siguientes: Config5, Config9 y Config2. En la misma figura mencio-

nada anteriormente se puede observar en diferentes tonos de verde ilustrando

mejor los resultados.

A grandes rasgos se puede deducir que las configuraciones que tienen

como algoritmos de optimizacion adam con un numero de neuronas medio de

50 resultaron tener una buena medida de la metrica.

En cambio se noto que para estas configuraciones utilizar el algoritmo de

optimizacion sgd, el valor del error medio resultan ser los mayores, mas alla

Page 94: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 93

Referencias: # neuronas epochs Batch Optimization

#Config 11 10 10 25 rmsprop

#Config 12 50 30 50 adam

#Config 13 100 50 100 sgd

#Config 14 10 50 50 sgd

#Config 15 50 30 25 adam

#Config 16 100 10 100 rmsprop

#Config 17 10 30 100 sgd

#Config 18 50 10 50 sgd

#Config 19 100 50 25 rmsprop

#Config 20 50 10 100 sgd

Tabla 5.8: Tabla de configuraciones utilizadas en LSTM para algoritmos de

clasificacion

de los valores que se especificaron en los demas parametros.

Otra cuestion, a medida que se aumenta la cantidad de neuronas los

resultados mejoraron, lo mismo que el numero de epochs.

En conclusion, en promedio, la mejor configuracion para el entrenamiento

con estos dataset fue Config5, con 50 neuronas, 30 como numero de epochs,

con un tamano de batch de 100, algoritmo de optimizacion ’adam’ y funcion

de perdida mean squared error, arrojo un RMSE de 5,7219 en porcentaje

de baterıa.

5.5.3. Configuracion con algoritmos de Clasificacion

Al igual que en las configuraciones de regresion, se tomaron combinaciones

aleatorias del los valores predefinidos para cada parametro. Pero la funcion

de perdida utilizada fue sparse categorical crossentropy que se mantuvo

para todas las configuraciones (tabla 5.8).

Resultados:

La metrica que se tuvo en cuenta para medir el rendimiento de cada una de

las configuraciones para los diferentes DataSet fue la exactitud “Accuracy”,

Page 95: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 94

Accuracy Configuraciones

Archivo #1 #2 #3 #4 #5 #6 #7 #8 #9 #10

File1 3PerHour 0.0009 0.0003 0.0003 0.0003 0.0003 0.0003 0.0003 0.0003 0.0003 0.0003

File1 24PerDay 0.0009 0.0009 0.0009 0.0009 0.0009 0.0009 0.0009 0.0009 0.0009 0.0009

File2 3PerHour 0.0000 0.0001 0.4352 0.4347 0.0001 0.0001 0.4353 0.4344 0.0001 0.4308

File2 24PerDay 0.0003 0.0003 0.4224 0.4266 0.0003 0.0003 0.4190 0.4266 0.0003 0.4190

File3 3PerHour 0.0000 0.0000 0.2063 0.2070 0.0000 0.0000 0.2065 0.2061 0.0000 0.1819

File3 24PerDay 0.0001 0.0001 0.1998 0.1953 0.0001 0.0001 0.1992 0.2009 0.0001 0.1811

File4 3PerHour 0.0006 0.0006 0.2575 0.2562 0.0006 0.0006 0.2575 0.2560 0.0006 0.2484

File4 24PerDay 0.0030 0.0030 0.2415 0.2346 0.0030 0.0030 0.2380 0.2403 0.0030 0.2436

File5 3PerHour 0.0000 0.0000 0.2225 0.2220 0.0000 0.2227 0.2226 0.2231 0.0000 0.2211

File5 24perDay 0.0000 0.0000 0.2124 0.2078 0.0000 0.2113 0.2101 0.2147 0.0000 0.2045

Promedio 0.0006 0.0005 0.2199 0.2185 0.0005 0.0439 0.2189 0.2203 0.0005 0.2132

Tabla 5.9: Resultados para los algoritmos LSTM con configuraciones de cla-

sificacion

que es utilizado para problemas tıpicos de clasificacion.

Conclusion:

Como se ve en la tabla 5.9, tomando el promedio de la exactitud por

cada uno de las configuraciones sobre todos los archivos, las configuraciones

que mejores resultados aportaron, o sea aquellos cuya exactitud sea mayor

fueron las siguientes: Config 8, Config 3, Config 7. En la misma figura

mencionada anteriormente se puede observar en diferentes tonos de verde

ilustrando mejor los resultados.

Notablemente los valores de la exactitud en estas configuraciones, sobre-

sale de las demas gracias al uso del algoritmo de optimizacion sgd que arrojo

valores entre 0,21 y 0,22. Todas las demas configuraciones no superaron el

umbral de 0,04 siendo en algunos casos inferior a 0,0006 como valor de Acu-

rracy.

En la tabla 5.10 se observa las mejores configuraciones, todas ellas con el

optimizador sgd en su definicion. Se observa que cuando se tiene en cuenta el

Page 96: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 5. EVALUACION 95

Configuraciones Neuronas Epochs Batch Accuracy Prom

#Config 18 50 10 50 0.2203

#Config 13 100 50 100 0.2198

#Config 17 10 30 100 0.2189

#Config 14 10 50 50 0.2185

#Config 20 50 10 100 0.2131

Tabla 5.10: Configuraciones teniendo en cuenta el optimizador sgd ordenadas

por promedio de exactitud

mismo numero entre neuronas utilizadas y tamano del batch se obtuvieron un

mejor resultado, ademas se puede observar que la utilizacion de un numero

mayor neuronas y tamano batch no mejora le exactitud. No obstante el valor

de exactitud es muy similar teniendo en cuenta que la diferencia entre el

mayor y el menor es de 0.0072.

Page 97: Universidad Nacional del Centro la Provincia de Buenos ...

Capıtulo 6

Conclusiones

En este trabajo se presento un enfoque de aprendizaje automatico para

la estimacion del uso de la baterıa en telefonos moviles. Para darle soporte

al enfoque, se implementaron dos herramientas especıficas. La primera es un

modulo transformador de datos en el cual se adaptaron los Logs brindados

por la catedra en un archivo de entrada que pueda ser entendido por los

algoritmos utilizados en la segunda herramienta. La segunda herramienta es

un servidor en Python que tiene todos los algoritmos implementados que se

nombraron en el presente trabajo, el cual nos permitio realizar las pruebas

correspondiente y analizar los resultados. Esta herramienta incluyo tecni-

cas de clasificacion, regresion y lo mismo con redes neuronales y series de

tiempo (LSTM). Su diseno permite incorporar facilmente nuevos algoritmos,

simplemente extendiendo de una clase e implementando los correspondientes

metodos.

En primer lugar, en este trabajo se presentaron las caracterısticas prin-

cipales de las tecnicas que aplican aprendizaje sobre datos y se analizaron

algunas caracterısticas no funcionales sobre los telefonos, como la tempera-

tura de la baterıa o el voltaje sobre la misma, caracterısticas que no son

controladas por el usuario ası como tener activado o no la conexion WiFi o

Bluetooth.

Como resultado del creciente desarrollo de aplicaciones, y la utilizacion

masiva de los telefonos inteligentes la demanda de valor de computo ha incre-

96

Page 98: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 6. CONCLUSIONES 97

mentado considerablemente haciendo que el uso de energıa incremente. Ası

mismo, el avance en diferentes especificaciones de los dispositivos moviles

ha crecido significativamente pero no ha sido tal en el caso de las baterıas,

produciendo que la carga de los telefonos en la mayorıa de los casos no lle-

gue al dıa de uso. La utilizacion de componentes y algoritmos de terceros en

dispositivos moviles presenta ciertos desafıos. Estos dispositivos tienen limi-

taciones en conflicto como la energıa, el acceso a la red y la capacidad de

calculo que determinan el contexto de ejecucion de estos componentes y que

afecta considerablemente desgaste de la baterıa.

Dentro de todos los algoritmos abarcados en este trabajo, podemos reali-

zar una division entre dos tipos, algoritmos de regresion y clasificacion. Los

algoritmos de regresion tienen como objetivo predecir valores continuos, es

decir, predecir valores numericos y acercarse los mas que se pueda al valor

real, por eso la metrica utilizada para medir su exactitud es el RMSE como se

explico anteriormente, en cambio los algoritmos de clasificacion tienen como

tarea asignar una clase, es decir, predecir a que clase pertenece un conjunto

de datos, y aquı es muy importante entender que en los problemas de clasi-

ficacion los valores son discretos y en este caso se clasifico entre valores de

0 a 100 en porcentaje de baterıa, por eso no podemos medir su exactitud

con una metrica de error medio, sino, con una metrica de exactitud, es decir,

cual es el porcentaje de acierto que tiene este algoritmo. Sin especial atencion

podemos determinar que claramente el problema presentado en este trabajo

es un problema de regresion, pero se realizaron pruebas de clasificacion para

determinar el comportamiento del mismo, y tambien como objetivo perso-

nal, poder entender mas sobre estos algoritmos ademas de tener la evidencia

suficiente para determinar cual de todos los modelos fue el mas correcto para

esta problematica.

Entre los algoritmos de regresion que se seleccionaron, haciendo una com-

parativa, se pueden observar que con la utilizacion de los modelos LSTM se

mejora significativamente el error medio obtenido reduciendo este valor de

7.42 a 5.72, aunque tambien hay que tener en cuenta que para estos ultimos

se tuvieron en cuenta los siete atributos con mas correlacion. De estos 16

Page 99: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 6. CONCLUSIONES 98

atributos (tabla 5.1) se pueden observar que son indicadores que varıan el

valor de la baterıa tanto negativa como positivamente, por ejemplo, el ac

(Conectado a corriente al terna) es un valor que va a incrementar el valor,

en cambio otros como screen on (pantalla encendida) screen brightness

(nivel de brillo de la pantalla), wifi (sensor WiFi encendido) o data (datos

del telefono encanecido) son valores que impactan significativamente en el

consumo de la baterıa.

Por ultimo, se llevo a cabo una serie de experimentos sobre 5 casos de

estudio para validar cual de los modelos presentados es el mas eficiente pa-

ra resolver esta problematica. Los mismos fueron evaluados con las metricas

presentadas en secciones anteriores, senalando al modelo de LSTM con con-

figuraciones para regresion como el mejor a nivel de predicciones bajas en

error. Las estimaciones permiten predecir que el error en las predicciones a

traves de la metrica Root Mean Absolute Error (RMSE), tendran valores

cercanos a cero.

6.1. Limitaciones

La principal limitacion que presento este estudio fue el gran tamano de

los archivos, un varios modelos esto presento una gran problematica ya que

el tiempo de los algoritmos fue demasiado elevado, totalmente inviable para

calcular predicciones, para solucionar esto se procedio a utilizar tecnicas para

achicar estos archivos, para eso se fueron acumulando lineas y almacenando

el promedio de las mismas, esto puede haber ocasionado que los resultados

pueden haber variado un poco que si se hubieran utilizado la misma cantidad

de lineas del archivo original. Otras de las limitaciones es que los equipos en

donde se corrieron las pruebas no cuentan con optimas prestaciones a la hora

de poder tener una buena velocidad de computo lo que hizo que los tiempos

de pruebas sean bastante elevados.

Por ultima, otra limitacion que se presenta responde a la ausencia de un

metodo automatizado para configurar dinamicamente los parametros de las

tecnicas de LSTM, estos se modificaron directamente en el codigo, adicio-

Page 100: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 6. CONCLUSIONES 99

nalmente la cantidad de configuraciones que se pueden utilizar en esta clase

de algoritmos es infinita, con lo cual, en el presente trabajo se tomaron con-

figuraciones aleatorias, pero esto se podrıa analizar mas profundamente en

futuros trabajos.

6.2. Futuros trabajos

Cabe mencionar que existen algunas posibilidades de extension interesan-

tes para este trabajo. Como primer objetivo se pretende mejorar el tiempo

de procesamiento requerido para la optimizacion y generacion de los modelos

predictivos. Para poder lograr esto, se puede otorgar a la aplicacion la capa-

cidad de ejecucion paralela de los procesos de optimizacion y construccion

de los diferentes modelos. Por otro lado, se podrıa crear una aplicacion para

el telefono que capture todos los datos analizados, ya que para este trabajo

los datos se brindaron desde un principio, es decir otra aplicacion ya habıa

realizado este trabajo por nosotros1. Con este fin, se puede recurrir a algun

proveedor de dispositivos en la nube (Device-as-a-Service), como Amazon

WS, estos servicios brindan acceso remoto a dispositivos moviles reales dis-

tribuidos geograficamente, lo que permite capturar datos sobre un grupo mas

amplio de dispositivos con caracterısticas variadas. Como en este trabajo el

modulo de prediccion de datos se realizo en un servidor local que contie-

ne todos los algoritmos utilizados, este trabajo podrıa expandirse creando

una API que pueda ser consumida por un dispositivo en cualquier momento

dando la posibilidad de consultar el estado futuro de la baterıa, esto podrıa

ser desplegado en algun host como puede ser AWS (Amazon web services),

ası mismo, se deberıa agregar una API a la cual se puedan enviar datos del

dispositivos, utilizando la aplicacion anteriormente mencionada para retro

alimentar el aprendizaje de maquina, se podrıan establecer periodos en los

cuales, por ejemplo, cada tres meses, esto es un tiempo configurable por el

usuario, el servidor ejecutarıa el entrenamiento para tener los modelos lo mas

1http://deviceanalyzer.cl.cam.ac.uk/

Page 101: Universidad Nacional del Centro la Provincia de Buenos ...

CAPITULO 6. CONCLUSIONES 100

actualizado posible.

Adicionalmente se pueden incorporar nuevos aspectos para mejorar y

comparar las tecnicas y modelos en la herramienta de aprendizaje:

Independizar al modulo de optimizacion de tecnicas, de diferentes ran-

gos de configuracion para cada uno de los parametros que incluya la

tecnica. De esta forma, lograr mas enfasis en los valores de cada parame-

tro y explotar al maximo el desempeno de las tecnicas. Incluso, el usua-

rio podrıa disponer de la posibilidad de personalizar estos valores.

Informar y registrar el tiempo real consumido por cada operacion de

construccion de un modelo. Operacion que incluye la configuracion,

optimizacion, entrenamiento y finalmente la evaluacion del modelo con

las metricas correspondientes.

Extender el analisis comparativo a nivel de librerıas, aprovechando la

capacidad de la herramienta de integrar librerıas de terceros. De esta

manera, se logra comparar el desempeno de una tecnica conocida en di-

ferentes implementaciones, y seleccionar la mejor tecnica independiente

de la librerıa que la implemente.

Page 102: Universidad Nacional del Centro la Provincia de Buenos ...

Bibliografıa

[1] Cristian Mateos Rodriguez, Juan Manuel and Alejandro Zunino.

Energy-efficient job stealing for CPU-intensive processing in mobile de-

vices. Computing 96.2, pages 87–117, 2014.

[2] Jose Luis Moreno. http://www.josemorenojimenez.com Comscore:

Estudio del uso de dispositivos moviles y mensajerıa instantanea, 2017.

[3] J. A. Paradiso and T. Starner. Energy scavenging for mobile and wireless

electronics. IEEE Pervasive Computing, vol. 4, no. 1, pages 18–27, 2005.

[4] Daniel T Wagner, Andrew Rice, and Alastair R Beresford. Device analy-

zer. In HOTMOBILE 2011 12th Workshop on Mobile Computing Sys-

tems and Applications, 2011.

[5] Ben Elgin. Google Buys Android for Its Mobile Arsenal, 2005.

[6] Lisa Mahapatra. Android vs. ios: What’s the most popular mobile ope-

rating system in your country?, 2013.

[7] Aaron Courville Ian Goodfellow, Yoshua Bengio. Deep learning.

Goodfellow-et-al-2016 MIT Press, 2016.

[8] Yoshua; Fitzgibbon Andrew Le Roux, Nicolas; Bengio. Improving first

and second-order methods by modeling uncertainty. In Sra, Suvrit; No-

wozin, Sebastian; Wright, Stephen J. Optimization for Machine Lear-

ning. MIT Press, page 404, 2012.

101

Page 103: Universidad Nacional del Centro la Provincia de Buenos ...

BIBLIOGRAFIA 102

[9] Fabian Pedregosa; Gael Varoquaux; Alexandre Gramfort; Vincent Mi-

chel; Bertrand Thirion; Olivier Grisel; Mathieu Blondel; Peter Pretten-

hofer; Ron Weiss; Vincent Dubourg; Jake Vanderplas; Alexandre Passos;

David Cournapeau; Matthieu Perrot; Edouard Duchesnay. Scikit-learn:

Machine Learning in Python. Journal of Machine Learning Research,

2011.

[10] Francois Chollet et al. Keras. https://keras.io, 2015.

[11] Hart P.E. Cover, T.M. Nearest neighbor pattern classification. IEEE

Trans. Inform. Theory IT13( 1), page 21–27, 1967.

[12] O. L. Mangasarian Glenn M. Fung. Multicategory Proximal Support

Vector Machine Classifiers. 2004.

[13] Enrique J. Carmona Suarez. Tutorial sobre maquinas de vectores soporte

(svm). 2013.

[14] Ajoy K Palit and Dobrivoje Popovic. Computational intelligence in time

series forecasting: theory and engineering applications. Springer Science

& Business Media, 2006.

[15] Ana Rodriguez. Refactorizaciones para kernels computacionales cientıfi-

cos en dispositivos moviles. Marzo 2013.

[16] Alejandro Zunino Daniela Godoy Silvia Schiaffino Carlos Rios, Juan

Manuel Rodriguez. Usage pattern mining for smartphone use persona-

lization. 2013.

[17] Rice and S. Hay. Measuring mobile phone energy consumption for 802.11

wireless networking. pervasive and mobile computing,. pages 593–606,

2010.

[18] P. Schmidt J. Simon and V. Pammer-Schindler. Analysis of dierential

synchronisation’s energy consumption on mobile devices. 2016.

Page 104: Universidad Nacional del Centro la Provincia de Buenos ...

BIBLIOGRAFIA 103

[19] R. P. Dick Z. M. Mao P. Dinda L. Zhang, M. S. Gordon and L. Yang. An

automatic detector of energy leaks for smartphone applications. pages

363–372, 2012.

[20] D. Li and W. G. J. Halfond. An investigation into energy-saving pro-

gramming practices for android smartphone app development. 2014.

[21] X. Jin P. Wang S. Park D. Shen Y. Zhou L. K. Saul G. M. Voelker.

X. Ma, P. Huang. edoctor: Automatically diagnosing abnormal battery

drain issues on smartphones. 2013.

[22] Sepp Hochreiter and Jurgen Schmidhuber. Long short-term memory.

Neural computation, 9(8):1735–1780, 1997.