Full text
GENERACIÓN DE UNA HERRAMIENTA DE MACHINE
LEARNING QUE SIRVA COMO APOYO A DEPORTISTAS.
GENERATION OF A MACHINE LEARNING TOOL TO
SUPPORT ATHLETES.
TRABAJO FIN DE GRADO
CURSO 2023-2024
AUTORES
JUAN ISRAEL BAROFFI GONZÁLEZ
JAVIER MARÍA PARRA GONZÁLEZ
DIRECTOR
ISMAEL SAGREDO OLIVENZA
GRADO EN INGENIERÍA DE COMPUTADORES
FACULTAD DE INFORMÁTICA
UNIVERSIDAD COMPLUTENSE DE MADRID
GENERACIÓN DE UNA HERRAMIENTA DE
MACHINE LEARNING PARA APOYAR A
DEPORTISTAS.
GENERATION OF A MACHINE LEARNING TOOL
TO SUPPORT ATHLETES.
TRABAJO DE FIN DE GRADO EN INGENIERÍA DE COMPUTADORES
AUTORES
JUAN ISRAEL BAROFFI GONZÁLEZ
JAVIER MARÍA PARRA GONZÁLEZ
DIRECTOR
ISMAEL SAGREDO OLIVENZA
CONVOCATORIA: SEPTIEMBRE 2024
GRADO EN INGENIERÍA DE COMPUTADORES
FACULTAD DE INFORMÁTICA
UNIVERSIDAD COMPLUTENSE DE MADRID
12 DE SEPTIEMBRE DE 2024
2
DEDICATORIA
A mi amilia y amigos, po su cons an e apoyo y alien o. Y, sob e odo, a
aquellas pe sonas que buscan mejo a con inuamen e; es e abajo es á
dedicado a oso os.
- Juan Is ael Ba o i González
A mi amilia po con ia y apoya me du an e odo el desa ollo del p oyec o, os
lo decido.
- Ja ie Ma ía Pa a González
3
AGRADECIMIENTOS
JUAN ISRAEL BAROFFI GONZÁLEZ
En p ime luga , quie o ag adece a nues o u o , Ismael Sag edo Oli enza, po su
cons an e apoyo y sus aliosos consejos du an e es e p oyec o de in de g ado.
G acias a él y a su mane a de enseña , me sen í ealmen e mo i ado a ealiza es e
abajo elacionado con la in eligencia a i icial. T abaja con él ha sido una
expe iencia ealmen e g a i ican e.
También quie o ag adece a mis amigos y a mi amilia, quienes me han b indado su
apoyo incondicional a lo la go de odo es e p oceso. Sin ellos, sin duda, no es a ía
donde es oy hoy. G acias de co azón.
Po úl imo y no menos impo an e, quie o ag adece a Ja ie Ma ía Pa a González, mi
compañe o en es e a duo abajo. Hemos pasado po muchas cosas jun os du an e
es e p oceso, y ha sido un e dade o place abaja a su lado.
JAVIER MARÍA PARRA GONZÁLEZ
Quie o ap o echa es a opo unidad pa a ag adece a odas las pe sonas que, de
o ma di ec a o indi ec a, han sido pa e de es e p oceso. En pa icula a nues o u o
Ismael Sag edo Oli enza, po el con an e apoyo y es ue zo pa a que es e abajo de
in de g ado pudie a sali adelan e.
Del mismo modo, quie o ag adece a mi amilia po con ia en mí, y especialmen e a
mi abuelo Pepe, po su aliosos consejos e ideas du an e el desa ollo del p oyec o.
Finalmen e, ag adece a mi compañe o Juan Is ael Ba o i González, po con ia en mi
pa a desa olla jun os el p oyec o, así como po sus impo an es con ibuciones al
mismo.
4
RESUMEN
GENERACIÓN DE UNA HERRAMIENTA DE MACHINE LEARNING PARA APOYAR A
DEPORTISTAS
En es e abajo inal de g ado hemos c eado una aplicación ú il diseñada pa a los
depo is as. Se a a de una aplicación en la que el uso de Machine Lea ning es á
p esen e con el que nos ayuda á a p edeci en el u u o dis in os alo es que el usua io
desee, ya sea i mo ca diaco, calo ías, pasos, en e o os. Con es o, el usua io puede
e y analiza los da os pa a su mejo endimien o depo i o.
La aplicación unciona g acias a la ecopilación de da os acili ada po la pla a o ma
Fi bi . Median e pe iciones ealizadas a la API de Fi bi , podemos ob ene los da os
necesa ios median e una pulse a pa a su u u o p ocesamien o. Se ecopilan odos los
da os necesa ios pa a p edeci alo es u u os según las p e e encias del usua io.
Una ez ecopilados los da os, la aplicación pe mi e ges iona es os da os, mos ando
g á icos y es adís icas, así como el es ado u u o del depo is a en un in e alo de
iempo. De es a mane a, se puede e alua si el depo is a es á log ando sus me as, si
debiese aumen a o disminui el i mo, y hace un seguimien o de allado del eje cicio
que es á ealizando.
Palab as cla e
Machine lea ning, depo e, aplicación, eg esión, esul ados, API, pulse a de ac i idad,
i mo ca diaco, p edicción, in eligencia a i icial.
5
ABSTRACT
CREATION OF A MACHINE LEARNING TOOL TO SUPPORT ATHLETES
In his inal deg ee p ojec , we ha e de eloped a use ul applica ion designed o
a hle es. This is an applica ion whe e he use o Machine Lea ning is in eg a ed o help
p edic a ious alues he use desi es in he u u e, such as hea a e, calo ies, s eps,
among o he s. Wi h his, he use can iew and analyse he da a o imp o e hei spo s
pe o mance.
The applica ion wo ks by collec ing da a p o ided by he Fi bi pla o m. Th ough
eques s made o he Fi bi API, we can ob ain he necessa y da a ia a w is band o
u u e p ocessing. All necessa y da a is collec ed o p edic u u e alues acco ding o
he use 's p e e ences.
Once he da a is collec ed, he applica ion allows use s o manage his da a by
displaying g aphs and s a is ics, as well as he a hle e's u u e s a us wi hin a speci ied
ime ame. This enables he use o assess whe he hey a e mee ing hei goals,
whe he hey need o inc ease o dec ease hei pace, and o ack he de ails o he
exe cises hey a e pe o ming.
Keywo ds
Machine lea ning, spo s, applica ion, eg ession, esul s, API, wea ables, hea a e,
p edic ion, a i icial in elligence.
6
ÍNDICE DE CONTENIDOS
Capí ulo 1 - In oducción .................................................................................................14
1.1 Mo i ación ...........................................................................................................14
1.2 Obje i os ..............................................................................................................15
1.3 Plan de abajo ....................................................................................................17
Capí ulo 2 - Es ado de la cues ión ..................................................................................20
2.1 Di e en es ipos de da os ....................................................................................20
2.2 Modelos de ML u ilizados ...................................................................................23
2.2.1 Modelos de p edicción pa a la base de da os de Kaggle ............................25
2.2.2 Modelos de p edicción con da os eales. ........................................................34
2.3 Elemen os de abajo ..........................................................................................35
2.3.1 Lenguaje de p og amación. ..............................................................................35
2.3.2 En o no de desa ollo. .........................................................................................37
2.3.3 Con ol de e siones. ..........................................................................................38
2.4 T abajos elacionados .........................................................................................38
Capí ulo 3 - In es igación, Manipulación de Da os y Desa ollo de la Aplicación ....43
3.1 In es igación Inicial del P oyec o ......................................................................43
3.1.1 Base de da os de Kaggle ...................................................................................43
3.1.2 Es udio de las a iables de los CSV de Kaggle .................................................47
3.2 Manipulación de da os y p ime os modelos p edic i os .................................49
3.2.1 Uni icación de da os pa a los modelos de ML .................................................49
3.2.2 Análisis de los modelos p edic i os de ML ........................................................51
3.2.3 Conclusión de los análisis de los modelos p edic i os .....................................57
7
3.3 In eg ación de la Pulse a Fi bi y uso de la API .................................................58
3.3.1 P ime as in es igaciones .....................................................................................58
3.3.2 P ime as llamadas a la API .................................................................................59
3.3.3 Adquisición de disposi i o ..................................................................................60
3.3.4 Recopilación de da os .......................................................................................61
3.3.5 Uni icación de los da os .....................................................................................68
3.4 Análisis de los modelos p edic i os de ML con da os ex aídos con la API ...69
3.5 Implemen ación y Desa ollo de la Aplicación Hea P ed’i ...........................75
3.5.1 Diseño de la aplicación ......................................................................................75
3.5.2 A qui ec u a de la aplicación ............................................................................83
3.5.3 Lógica de los p opósi os .....................................................................................87
Capí ulo 4 - Conclusiones y abajo u u o .....................................................................91
4.1 Conclusiones ........................................................................................................91
4.2 T abajos u u os ....................................................................................................92
In oduc ion .............................................................................................................................94
Mo i a ion ...........................................................................................................................94
Goals ....................................................................................................................................95
Wo k plan ............................................................................................................................96
Conclusions and u u e wo k .................................................................................................98
Conclusions .........................................................................................................................98
Fu u e Wo k .........................................................................................................................99
Bibliog a ía............................................................................................................................. 106
8
ÍNDICE DE FIGURAS
Figu a 1-1: Esquema p oceso SCRUM. ..................................................................................17
Figu a 2-1: Logo ipo de Kaggle. Fuen e: (Da abu , 2011) .................................................20
Figu a 2-2: Ejemplo de un a chi o CSV donde cada ila con iene da os es uc u ados
según los encabezados de inidos en la p ime a línea. ...............................................21
Figu a 2-3: Esquema donde se mues a el lujo desde la ecopilación de da os de la
pulse a has a la aplicación Hea P ed’i . .....................................................................22
Figu a 2-4: Ejemplo de la espues a en o ma o JSON a una solici ud de da os de
ecuencia ca díaca. .....................................................................................................23
Figu a 2-5: Logo ipo de pandas. Fuen e: (Ga cia, 2019) ....................................................24
Figu a 2-6: Esquema ep esen a i o del modelo p edic i o MLP Reg esso . Fuen e:
(Spo i e, s. .) ....................................................................................................................26
Figu a 2-7: Esquema ep esen a i o del modelo p edic i o XGBoos . Fuen e:
(ma iajesusbigml, 2017) ..................................................................................................27
Figu a 2-8: Logo de Ligh GBM. Fuen e: (Mic oso , Ligh GBM, 2023) .................................27
Figu a 2-9: Esquema ep esen a i o del modelo p edic i o LSTM. Fuen e: (Shen ield &
Howa h, 2020) ................................................................................................................28
Figu a 2-10: Ejemplo de mé icas de dis ancia de un pun o Xa a un pun o Xb. Fuen e: (Fu
& Yang, 2021) ..................................................................................................................29
Figu a 2-11: Esquema ep esen a i o del modelo p edic i o KNN Reg esso . Fuen e:
(Bacallado & Taylo , 2022) .............................................................................................30
Figu a 2-12: Un ejemplo de un esquema ep esen a i o de un á bol de decisión de
eg esión. Fuen e: (Hui & Ming, 2023) ............................................................................31
Figu a 2-13: Un ejemplo de un esquema ep esen a i o de un SVR. Fuen e: (Maulana
Achsan, 2019) ..................................................................................................................32
15
1.2 Obje i os
Nues o p incipal obje i o en es e abajo es desa olla una aplicación que pe mi a a los
depo is as mejo a su endimien o depo i o a a és del análisis de da os ecopilados median e
la pulse a.
1. De ini y plani ica el p oyec o.
• Especi ica las p opues as y obje i os del abajo de in de g ado.
• Elabo a un plan de las ases del p oyec o y los esul ados espe ados en
cada una.
2. Analiza cómo p ocesa los da os pa a su pos e io uso Machine Lea ning.
• In es iga los dis in os ipos de da os que se pueden ob ene , u ilizando una
base de da os exis en e con in o mación como i mo ca díaco, calo ías
quemadas, in ensidad del eje cicio, e c.
• Es udia y abaja con la base de da os ob enida desde Kaggle,
desa ollando di e en es algo i mos p edic i os pa a encon a el modelo
más adecuado pa a los da os de nues o p opio disposi i o de
ecopilación.
3. Analiza la adquisición de disposi i o pa a la ecopilación de da os de los
depo is as.
• Basándonos en la base de da os de Kaggle, busca disposi i os capaces
de ecopila da os simila es.
• Busca disposi i os con los que se pueda ob ene los da os median e una
API abie a.
4. Es udia el uso de la API de Fi bi pa a ecopila da os median e disposi i os
wea ables, u ilizando lib e ías de Py hon.
• An es de adqui i el disposi i o, explo a cómo u iliza la API de Fi bi
median e la documen ación disponible, haciendo pe iciones sencillas
como la ob ención de da os de usua io.
• Adqui i un disposi i o Fi bi y ealiza las p ime as pe iciones API pa a
ob ene da os eales, como las pulsaciones po minu o del depo is a, las
calo ías, e c.
5. Analiza los di e en es algo i mos de p edicción con los da os eales ob enidos.
• Realiza la limpieza de los da os ob enidos.
16
• P oba di e en es modelos p edic i os y selecciona los que o ecen
mejo es esul ados.
6. C ea una aplicación pa a el p ocesamien o y isualización de da os pa a los
usua ios, pe mi iéndoles mejo a su endimien o depo i o.
• Desa olla una aplicación de esc i o io en Py hon capaz de isualiza y
p edeci los di e en es da os ecopilados.
17
1.3 Plan de abajo
En cuan o al plan de abajo, hemos seguido el modelo Sc um. Es e modelo iene un
en oque ágil que se u iliza mayo i a iamen e en el desa ollo de so wa e. Hemos op ado po es e
mé odo ágil debido a nues a amilia idad con él, adqui ida a lo la go de la ca e a. También
po que pe mi e e los esul ados al inaliza cada Sp in , es o ayuda a que se haga en egas
inc emen ales y seguimien o del p og eso del p oyec o.
Figu a 1-1: Esquema p oceso SCRUM.
An es de cada Sp in , plani icamos las a eas y los obje i os que que emos cumpli an es
de cada Sp in Re iew, donde en es e pun o se e isa odos los p og esos que se han hecho. Es os
son los pasos que hemos seguido pa a cada Sp in :
1. De ini las a eas y obje i os.
• Realizamos una eunión donde abo damos odas las a eas necesa ias
pa a cumpli a ios obje i os. Una ez e minada la lis a de obje i os,
ealizamos una eunión con el p o eso pa a alida y asegu a nos de que
los obje i os sean adecuados.
2. Weekly Sc um.
• Cada semana, ealizamos una eunión donde e isamos los p og esos
ealizados a lo la go del Sp in , ajus ando las a eas según las necesidades
del momen o.
3. Sp in Re iew.
18
• Al inaliza el Sp in (ap oximadamen e cada 3 semanas), e isamos el
abajo comple ado pa a e alua el p og eso y de e mina qué caminos
segui y qué cosas mejo a .
En elación con el apa ado an e io 1.2], cada obje i o ha sido plani icado po sp in ,
siguiendo el siguien e c onog ama:
• Sp in 1:
- Obje i o: De ini y plani ica el p oyec o.
• Sp in 2:
- Obje i o: Busca in o mación y da os ele an es pa a el es udio.
• Sp in 3:
- Obje i o: Analiza cómo p ocesa los da os ob enidos pa a su pos e io uso con Machine
Lea ning.
• Sp in 4:
- Obje i o: Analiza la adquisición de disposi i os pa a la ecopilación de da os de los
depo is as
• Sp in 5:
- Obje i o: Es udia el uso de la API de Fi bi pa a ecopila da os median e disposi i os
wea ables, u ilizando lib e ías de Py hon.
• Sp in 6:
- Obje i o: Analiza los di e en es modelos de p edicción con los da os ob enidos. Ob ene
los mejo es modelos en cuan o a esul ado de p edicción se e ie e.
• Sp in 7:
- Obje i o: C ea una aplicación de esc i o io pa a el p ocesamien o y isualización de
da os pa a los usua ios, pe mi iéndoles mejo a su endimien o depo i o.
19
20
Capí ulo 2 - Es ado de la cues ión
En es e capí ulo da emos paso a de ini y acla a algunos concep os que i emos
exponiendo a lo la go del abajo. Habla emos sob e los da os ob enidos y sus dis in os ipos.
También habla emos sob e los di e en es modelos de ap endizaje que se han ido u ilizando a lo
la go de la in es igación pa a su pos e io e aluación y pa a sabe el ni el de iabilidad de
es os.
2.1 Di e en es ipos de da os
En p ime luga , habla emos sob e los di e en es da os con los que abaja emos en es e
p oyec o.
Inicialmen e, abajamos con da os ob enidos de una base de da os pública en Kaggle
o ecido po un usua io con licencia pública.
Kaggle es una pla a o ma en línea cuya p incipal unción es acili a el acceso a di e sos
conjun os de da os públicos a pe sonas con conocimien os en ciencia de da os, pa a pode
consul a y expe imen a con los dis in os da os que o ece. Además de es a unción hay
di e en es cu sos pa a ap ende y o as ac i idades educa i as. Además, o ece ecu sos pa a el
análisis de da os y el desa ollo de modelos, con i iéndose en un espacio donde los usua ios
pueden compa i conocimien os y esol e p oblemas en el campo de la ciencia de da os.
Figu a 2-1: Logo ipo de Kaggle. Fuen e: (Da abu , 2011)
21
La base de da os, p o enien e de Kaggle, que u ilizamos inicialmen e, con enía
in o mación anónima de a ios usua ios ecopilada po disposi i os Fi bi
1
. Es os da os son
ecopilados en di e en es CSVs.
CSV es un o ma o de a chi o el cual es u ilizado pa a gua da da os de o ma abula ,
donde cada línea del a chi o co esponde a un egis o (o ila) y cada campo den o de un
egis o es á sepa ado po una coma (u o o delimi ado como pun o y coma o abulación). En
nues o caso, los da os del CSV es aban sepa ados po comas.
Figu a 2-2: Ejemplo de un a chi o CSV donde cada ila con iene da os es uc u ados según los
encabezados de inidos en la p ime a línea.
Median e su API, Fi bi ecoge di e sos da os del usua io, como po ejemplo las
pulsaciones po segundo o las calo ías quemadas po minu o. Los da os se han uni icado en
a chi os CSV sepa ados, donde cada uno con iene un ipo especí ico de in o mación ecogida
po la API. En cada CSV se ecopila la in o mación de odos los usua ios que han egis ado ese
ipo de da o.
Pos e io men e es os da os se han u ilizado pa a pode es udia los y abaja con los
dis in os modelos que se u iliza án en el ap endizaje au omá ico.
1
h ps://www. i bi .com/global/es/home
22
T as la adquisición de la pulse a de Fi bi , en conc e o el modelo Fi bi Inspi e 3, pudimos
ecopila nues os da os pe sonales g acias a la API. Una API acili a la comunicación en e
aplicaciones median e un ipo de mensaje ía que es en iado/ ecibido po los dis in os sis emas.
En nues o caso lo u ilizamos pa a pode conec a nos a los se ido es de Fi bi , donde con ienen
los da os de los usua ios ecopilados po la pulse a.
El lujo de ob ención de da os iene de la siguien e o ma:
Figu a 2-3: Esquema donde se mues a el lujo desde la ecopilación de da os de la pulse a has a
la aplicación Hea P ed’i .
Como podemos obse a en la Figu a 2-3, se puede e cómo se ob iene los da os
median e la API. El p ime paso pa a ob ene los da os de la pulse a es sinc oniza la pulse a con
la aplicación de Fi bi , el cual signi ica que los se ido es gua dan oda la in o mación
ecopilada de la pulse a en ellos. Una ez sinc onizados los da os, se pueden ob ene median e
solici udes URL. Con cada solici ud que se hace al se ido , es e nos de uel e una espues a
con los da os solici ados en la URL, es os da os ienen en o ma o JSON.
23
Figu a 2-4: Ejemplo de la espues a en o ma o JSON a una solici ud de da os de ecuencia
ca díaca.
T as es o, una ez ecopilado los da os es udiamos qué da os pod íamos ob ene pa a
su pos e io ans o mación a un ipo de da os en donde los modelos de ap endizaje
au omá ico puedan en ende lo. Es a ans o mación de da os se de alla á en el capí ulo 3.
2.2 Modelos de ML u ilizados
En es e apa ado desc ibi emos los di e en es ipos de modelos de p edicción que hemos
ido u ilizando a lo la go del abajo. De en e odos ellos, hemos elegido los mejo es según las
necesidades que hemos de ec ado a lo la go del p oyec o.
24
Un modelo de p edicción es una he amien a compu acional que se u iliza pa a p e e
esul ados u u os basados en da os his ó icos o ac uales (en nues o caso los da os ecopilados
po los usua ios, como las calo ías, las dis ancias, e c.). Es os modelos analizan pa ones y
elaciones den o de los da os pa a hace es imaciones o p onós icos sob e e en os o
compo amien os u u os.
Pa a pode simpli ica los da os y ene una mejo comp ensión de es os, se ha o ganizado
de al mane a que los da os se encuen en en un solo iche o. Po lo an o, an es del
p ep ocesamien o, seleccionamos y ans o mamos los da os más ele an es, uni icando la
in o mación en un único a chi o CSV que pe mi e ejecu a el algo i mo de p edicción más
ácilmen e. Es e p oceso implicó la combinación de a ios CSV, alineando los da os po iempo
pa a asegu a que cada ila co espondie a al mismo pun o empo al. Es e paso se ealizó
u ilizando la lib e ía pandas.
Pandas es una lib e ía de Py hon que es u ilizada ampliamen e en el análisis de da os.
P opo ciona es uc u as de da os ápidas, lexibles y exp esi as, p incipalmen e en o ma de
Da aF ames, que son ablas simila es a las hojas de cálculo. Con es a lib e ía se puede ealiza
ope aciones como la manipulación, limpieza, ans o mación y análisis de g andes conjun os de
da os, como es nues o caso, de mane a e icien e. Pandas acili a la lec u a y esc i u a de da os
desde y hacia o ma os como: CSV, Excel, SQL, e c. También o ece he amien as pa a el manejo
de da os al an es, il ado, ag upación y ag egación, lo que la con ie e en una he amien a
esencial en la ciencia de da os en Py hon. De alla emos más los usos de es a lib e ía en el
capí ulo 3.
Figu a 2-5: Logo ipo de pandas. Fuen e: (Ga cia, 2019)
Pa a que los modelos de machine lea ning uncionen co ec amen e, es necesa io
ans o ma los da os en un o ma o que los modelos puedan in e p e a y p ocesa de mane a
31
2.2.1.6 Decision T ee Reg esso : Reg eso de Á bol de Decisión.
El Decision T ee Reg esso es un modelo de p edicción basado en la cons ucción de un
á bol de decisiones, donde cada nodo in e no ep esen a una decisión sob e una ca ac e ís ica
especí ica de los da os, y cada hoja ep esen a una p edicción de alo con inuo.
El modelo se cons uye median e un p oceso ecu si o de pa ición de los da os de
en enamien o. En cada nodo del á bol, se selecciona la ca ac e ís ica y el pun o de co e que
minimiza una mé ica de e o , como la suma de los e o es cuad á icos (Mean Squa ed E o ,
MSE). Es e c i e io de pa ición busca educi la a iabilidad den o de los subconjun os
esul an es, asegu ando que cada di isión p oduzca g upos lo más homogéneos posible en
é minos de la a iable obje i o.
Una de las en ajas del á bol de decisión es que es un modelo ela i amen e simple y ácil
de in e p e a . Pe o su p incipal de ec o es que es p openso al sob eajus e (o e i ing),
especialmen e cuando se pe mi e que el á bol c ezca sin es icciones e in en a modela un
p oblema que no es linealmen e sepa able. En es e con ex o, el algo i mo in en a á ocea las
clases sob e-ajus ando con muli iples hipe planos. Pa a mi iga es e p oblema, se pueden aplica
écnicas como la poda (p uning), es ablece una p o undidad máxima del á bol (que e i a el
p oceso desc i o an e io men e), o limi a el núme o mínimo de mues as eque idas en cada
hoja.
Figu a 2-12: Un ejemplo de un esquema ep esen a i o de un á bol de decisión de eg esión. Fuen e: (Hui
& Ming, 2023)
32
En la Figu a 2-12, podemos obse a cómo el modelo oma decisiones secuenciales pa a
minimiza el e o en las p edicciones.
2.2.1.7 Suppo Vec o Machine Reg esso (SVR).
El Suppo Vec o Machine Reg esso (SVR) es un ipo de modelo de p edicción que se basa en
las máquinas de ec o es de sopo e (SVM) pa a ealiza a eas de eg esión.
Es e modelo se basa en el concep o de má genes y ec o es pa a hace p edicciones,
unciona encon ando una unción que mapea los da os de en ada a un espacio de
ca ac e ís icas de mayo dimensión y luego de e mina un ma gen o “ ubo” den o del cual se
espe a que la mayo ía de los da os de en enamien o caigan. El ma gen se de ine en o no a la
unción obje i o. El obje i o del modelo es encon a el ma gen más ancho posible que pueda
con ene la mayo can idad de pun os de da os, minimizando al mismo iempo el e o de
p edicción pa a los pun os que quedan ue a de es e ma gen.
Figu a 2-13: Un ejemplo de un esquema ep esen a i o de un SVR. Fuen e: (Maulana Achsan, 2019)
33
2.2.1.8 Random Fo es Reg esso .
El Random Fo es Reg esso es un modelo de p edicción que u iliza múl iples á boles de
decisión pa a mejo a la p ecisión y es abilidad de las p edicciones.
A di e encia de un solo á bol de decisión, que puede sob eajus a los da os, es e modelo
cons uye a ios á boles usando di e en es subconjun os del conjun o de da os o iginal. Luego,
p omedia las p edicciones de odos los á boles pa a ob ene el esul ado inal. Además,
selecciona alea o iamen e un subconjun o de ca ac e ís icas en cada di isión del á bol, lo que
educe la co elación en e los á boles y mejo a el endimien o del modelo.
Figu a 2-14: Esquema ep esen a i o del modelo p edic i o de Random Fo es Reg esso . Fuen e: (Rubino,
2023)
2.2.1.9 Reg esión Linea .
Pa a compa a los modelos y e alua si la eg esión lineal es adecuada pa a p edeci los
alo es, u ilizamos la eg esión lineal como un modelo baseline. Es un modelo sencillo pa a
comp oba si los modelos de machine lea ning o ecen una mejo a signi ica i a en compa ación
con un en oque más simple. La eg esión lineal busca es ablece una elación di ec a en e una
a iable dependien e (la que que emos p edeci ) y una o más a iables independien es (las que
usamos pa a hace la p edicción). El obje i o es ajus a una línea pa a minimiza la suma de las
di e encias al cuad ado en e los alo es obse ados y los p edichos, p opo cionando así una
es imación de cómo cambian los alo es de 𝑦 en unción de 𝑥.
34
Figu a 2-15: Un ejemplo de un esquema ep esen a i o de una eg esión linea . Fuen e: (Pimpale, 2023)
2.2.2 Modelos de p edicción con da os eales.
Una ez hecho los es udios con los da os de los usua ios de Kaggle, nos pusimos a
queda nos con los mejo es modelos. Y esos ue on:
• LGBM Reg esso (Ligh G adien Boos ing Machine).
U ilizado pa a a eas de eg esión, es deci , pa a p edeci alo es con inuos como es
nues o caso. U iliza una écnica que combina múl iples á boles de decisión, donde cada á bol
se cons uye sob e los e o es del á bol an e io , así op imizando la p edicción.
Figu a 2-16: Esquema de cómo se cons uye el á bol en Ligh GBM. Fuen e: (Rezazadeh, 2020)
35
A di e encia de o os algo i mos de boos ing que cons uyen á boles ni el po ni el
(desde la aíz has a las hojas), Ligh GBM c ece los á boles en unción de las hojas, lo que esul a
en una educción de pé dida más ápida.
• XGBoos Reg esso .
También u ilizado pa a a eas de eg esión. XGBoos es una implemen ación op imizada de
G adien Boos ing, que u iliza écnicas a anzadas como la egula ización L1 y L2 pa a mejo a el
endimien o y p e eni el sob eajus e. Su en oque se basa en la cons ucción de múl iples á boles
de decisión donde cada á bol co ige los e o es del an e io , de mane a e icien e y ápida.
Figu a 2-17: Esquema de cómo se cons uye el á bol en XGBoos . Fuen e: (Rezazadeh, 2020)
A di e encia de o os algo i mos de boos ing, XGBoos es conocido po su capacidad
de maneja da os al an es, su escalabilidad y su elocidad, log ando una p edicción p ecisa
con un uso op imizado de los ecu sos.
• KNN Reg esso .
• Random Fo es Reg esso .
• MLP Reg esso .
2.3 Elemen os de abajo
En es e apa ado, de alla emos odas las he amien as u ilizadas a lo la go del p oyec o,
desde el uso inicial de Jupy e No ebook pa a ealiza p uebas de u u as implemen aciones,
has a la in eg ación inal del lenguaje Py hon en la aplicación.
2.3.1 Lenguaje de p og amación.
Py hon es un lenguaje de p og amación de al o ni el, in e p e ado y de p opósi o gene al, que
se ha con e ido en una de las he amien as más popula es pa a el desa ollo de aplicaciones
36
en di e sas á eas, incluidas la ciencia de da os, el desa ollo web y, especialmen e, el machine
lea ning (ap endizaje au omá ico).
Figu a 2-18: Logo ipo de Py hon. Fuen e: (Founda ion, 2008)
Pa a es e p oyec o hemos decido usa el lenguaje de p og amación Py hon po di e sas azones:
• Simplicidad y legibilidad.
Sin axis de Py hon es sencilla y cla a, nos pe mi e concen a nos a esol e p oblemas en luga de
lidia con la complejidad del lenguaje.
• Biblio ecas y amewo ks obus os
Py hon iene una g an colección de biblio ecas y amewo ks especí icos pa a machine lea ning
que acili an la cons ucción, en enamien o y despliegue de modelos.
Algunas de la que u ilizamos son:
• Sciki -lea n: O ece he amien as simples y e icien es pa a análisis de da os
y modelado p edic i o.
• Pandas y NumPy: Pa a la manipulación de da os y cálculos numé icos.
• Ma plo lib y Seabo n: Pa a la isualización de da os.
• Tkin e : Pa a la ep esen ación de in e az al usua io.
• Amplia comunidad de usua ios
Tiene una de las comunidades más g andes y ac i as en el mundo de la p og amación, es o
hace que haya una g an can idad de ecu sos disponibles, como u o iales, documen ación,
o os y biblio ecas de código abie o.
• Sopo e pa a expe imen ación ápida
37
G acias a su na u aleza in e p e ada y a he amien as como Jupy e No ebook, Py hon nos
pe mi e ealiza p uebas y expe imen os ápidos. Es o es c ucial en machine lea ning, donde i e a
sob e modelos y ajus a hipe pa áme o equie e agilidad.
2.3.2 En o no de desa ollo.
Es e p oyec o lo hemos en ocado a desa olla lo en un en o no de esc i o io, más
especí icamen e en el en o no de Windows.
Pa a pode desa olla la aplicación y hace los espec i os es udios hemos u ilizado Visual S udio
Code.
Figu a 2-19: Logo ipo de Visual S udio Code. Fuen e: (Mic oso , Visual S udio Code, s. .)
Visual S udio Code (VS Code) es un edi o de código uen e g a ui o y de código abie o
desa ollado po Mic oso . Se ha con e ido en una de las he amien as más popula es en e
desa ollado es debido a su lexibilidad, endimien o y ca ac e ís icas a anzadas. Sopo a una
amplia gama de lenguajes de p og amación. Aunque es un edi o de ex o, o ece muchas
ca ac e ís icas de un en o no de desa ollo in eg ado (IDE), lo que lo con ie e en una pode osa
he amien a pa a el desa ollo de so wa e.
Una de las ex ensiones que más hemos u ilizado du an e el desa ollo y las p uebas es la
in eg ación con Jupy e No ebook. Es a ex ensión nos ha acili ado la ejecución de modelos de
p edicción, ya que pe mi e lanza agmen os de código de mane a in e ac i a y ob ene
esul ados de o ma p og esi a. Es o ha sido especialmen e ú il pa a p oba y ajus a modelos de
mane a ágil y e icien e.
38
2.3.3 Con ol de e siones.
Pa a hace un seguimien o de los a ances del p oyec o y el con ol de e siones, hemos u ilizado
Gi Hub. Gi Hub es una pla a o ma de desa ollo colabo a i o basada en la web que u iliza el
sis ema de con ol de e siones Gi . Pe mi e a los desa ollado es almacena , ges iona y
compa i código de mane a e icien e. En Gi Hub, puedes c ea eposi o ios, que son espacios
donde se gua da el código, y abaja en p oyec os de o ma colabo a i a con o os
desa ollado es median e la c eación de amas (b anches), e isiones de código (pull eques s)
y seguimien o de issues.
Además, implemen amos un seguimien o del p oyec o median e el uso de backlogs, donde
egis ábamos de ec os, a eas pendien es po comple a y las p io idades de es as. Es o nos
pe mi ió ges iona el lujo de abajo de mane a o ganizada y anspa en e.
En VS Code, eníamos implemen ada la ex ensión de Gi Hub, lo que nos acili ó la in eg ación
con la pla a o ma. Desde el p opio edi o , podíamos ealiza commi s, c ea y usiona amas, y
esol e con lic os de código, odo sin necesidad de cambia de en o no. Es a in eg ación nos
ayudó a man ene un lujo de abajo ágil y a con ola las e siones de mane a e icien e,
op imizando la colabo ación en e los miemb os del equipo.
Figu a 2-20: Logo ipo de Gi hub. Fuen e: (Gi Hub, s. .)
Todo el abajo ealizado se ha subido en el eposi o io TFG-Analisis- i bi
2
, donde se puede
obse a odos los cambios que se han ido ealizando a lo la go del desa ollo.
2.4 T abajos elacionados
Una ez explicado odas las ecnologías in oluc adas en el desa ollo de es e abajo,
ha emos un epaso po o os abajos elacionados ele an es. Cabe des aca que en es a
sección solo ci a emos algunos de los múl iples abajos simila es que hemos encon ado.
2
h ps://gi hub.com/JuanBa o i/TFG-Analisis- i bi
39
• A P edic i e Analysis o Hea Ra es Using Machine Lea ning Techniques
(Oyeleye, Chen, Ti a enko, & An oniou, 2022):
Es e es udio in es iga el uso de écnicas de ML pa a p edeci la ecuencia ca díaca a
pa i de da os gene ados po disposi i os de moni o eo po á iles, como los acele óme os.
El obje i o p incipal es, mejo a la de ección emp ana de anomalías en la ecuencia
ca díaca. Aunque el obje i o sea dis in o al nues o, exis en en común a ios modelos usados,
en e ellos des acamos: Linea Reg esso , Suppo Vec o Reg esso (SVR), KNN, Decision T ee
Reg esso , Random Fo es Reg esso y LSTM.
Una di e encia se encuen a en la o ma que e aluamos el endimien o de los modelos,
en es e abajo se u ilizan dos mé icas; RMSE
3
y SI
4
(Índice de dispe sión)
En cambio, nues o abajo u iliza la mé ica R2 sco e, un alo al o de es a mé ica indica
que el modelo explica bien la a iabilidad de los da os.
En conclusión, los modelos que esul a on más e ec i os ue on los siguien es: modelo
ARIMA y la eg esión lineal, mien as que los o os modelos ienen limi aciones en du aciones más
co as o especí icas.
• Hea Ra e Modeling and P edic ion Using Au o eg essi e Models and Deep
Lea ning (S a ini, S ensson, Chung, & S ensson, 2022)
3
El RMSE (Roo Mean Squa ed E o ) es una mé ica en machine lea ning que mide la di e encia
en e los alo es eales y los alo es p edichos po un modelo. Se calcula como la aíz cuad ada del
p omedio de los e o es cuad ados. El RMSE es ú il po que penaliza más los g andes e o es, dándonos una
idea de cuán p ecisas son las p edicciones del modelo. Cuan o más bajo sea el RMSE, mejo es el
endimien o del modelo en é minos de p edicción. (Willmo & Ma suu a, 2006)
4
El Índice de Dispe sión (SI) es una mé ica que mide la dispe sión de los e o es de un modelo de
p edicción en elación con los alo es obse ados. Es una elación en e la des iación es ánda de los e o es
y la media de los alo es eales. Un alo de SI ce cano a 0 indica que el modelo iene una buena p ecisión,
mien as que un alo mayo indica mayo dispe sión y, po lo an o, meno exac i ud. (Simpson & Huang,
2002)
40
Es e es udio iene como obje i o in es iga la p edicción de la ecuencia ca díaca,
simila a nues o p oyec o. U ilizan es modelos: Au o eg essi e P ocess, Con olu ional Long Sho -
Te m Memo y Ne wo k (Con LSTM) y Long Sho -Te m Memo y Ne wo k (LSTM), es e úl imo
ambién empleado en nues o abajo. Además, al igual que noso os, emplean la écnica de
o ecas e pa a p edeci alo es con inuos y usan el e o MSE pa a e alua la p ecisión de los
modelos.
En conclusión, es e es udio es á o ien ado a la de ección de anomalías, mien as que
nues o en oque es á más elacionado con el análisis depo i o y accesible a un público más
gene al. Además de u iliza más modelos pa a ob ene mejo es esul ados en cuan o a la
p edicción de alo es.
• Hea a e modeling and p edic ion o cons uc ion wo ke s based on physical
ac i i y using deep lea ning (Gha oo i, Cle enge , Abdallah, & Rens, 2023):
El obje i o de es e abajo es analiza cómo la asa de espi ación, la pos u a de o so y
o as señales isiológicas a ec an a la ecuencia ca díaca de los abajado es de cons ucción.
Pa a ello, se u ilizan modelos de ap endizaje p o undo pa a p edeci la ecuencia ca díaca po
minu os, incluyendo: CNN
5
, LSTM
6
, CNN-LSTM, BiLSTM
7
, GRU
8
, CNN-GRU y BiGRU
9
.
En conclusión, el abajo des aca la necesidad de in eg a modelos p edic i os de
ecuencia ca díaca en en o no de la cons ucción pa a ges iona la ca ga ísica y p e eni
inciden es de salud.
Como hemos podido obse a , en la mayo ía de los an e io es abajos, encon amos que
se usa los modelos LSTM y los CNN y modelos de eg esión po o ación como Random Fo es
5
h ps://www.analy ics idhya.com/con olu ional-neu al-ne wo ks-cnn/
6
(Hoch ei e & Süchmidhube , 1997)
7
h ps://pape swi hcode.com/me hod/bils m
8
h ps://ap endizajep o undo.gi hub.io/Lib o-
Fundamen os/Redes_Recu en es/Cuade nos/ n _GRU_In o.h ml
9
h ps://pape swi hcode.com/me hod/big u
47
Como se puede obse a en la Tabla 1, exis en muchos ipos de da os que a ían en e sí.
Pa a ealiza un p ime análisis, necesi ábamos il a los da os más ele an es de odas las ablas
y consolida los en un solo a chi o CSV.
3.1.2 Es udio de las a iables de los CSV de Kaggle
Inicialmen e, conside amos que p edeci las pulsaciones po minu o se ía una buena idea,
ya que es un ac o c ucial pa a los depo is as y una a iable cla e pa a mejo a el endimien o
depo i o. Po ello, comenzamos a calcula y analiza es a a iable.
En la p ime a ase de nues a in es igación pa a mejo a los modelos de machine
lea ning, sabemos que cuan a más in o mación engamos, mejo se á la p edicción. Po ello,
analizamos odos los da os disponibles y seleccionamos los más ele an es. Un aspec o
undamen al ue asegu a nos de que las a iables aba casen el mayo in e alo de iempo
posible, pa a que pudie an sinc oniza se con las demás. Conside amos dos ac o es cla e: la
impo ancia del da o y su disponibilidad a lo la go del iempo. Es impo an e que odos los da os
es én alineados en el mismo in e alo de iempo pa a ga an iza la cohe encia y e ec i idad de
los modelos.
Decidimos que abaja con in e alos de un minu o se ía adecuado pa a analiza y
p edeci los esul ados de mane a p ecisa. T as a ias in es igaciones, nos cen amos en las
pulsaciones, la in ensidad y las calo ías po minu o. También incluimos el iden i icado del usua io
y el iempo, uni icando odos los da os po minu o. Es o asegu a que la in o mación es é en el
mismo in e alo de iempo, ga an izando su cohe encia y comple i ud. Todo es o g acias a la
con e sión que se de alla á en el apa ado 3.2.1.
48
Figu a 3-1: Ejemplo del CSV donde se han uni icado los di e en es da os en uno: es _ ain_da a.cs .
Se ha analizado la inclusión de di e sas a iables en el CSV, como po ejemplo el egis o
del peso de la pe sona ( a iable Weigh Kg de la base de da os de weigh LogIn o_me ged.cs )
o la medición de la calidad de sueño ( a iable Value de minu eSleep_me ged.cs ) de la Tabla
1. Sin emba go, nos encon amos con algunos incon enien es al in en a inclui cie as a iables,
ya que los da os disponibles no e an su icien es. Pa a hace una p edicción p ecisa, es necesa io
que la a iable es é p esen e de mane a cons an e a lo la go de un in e alo de iempo amplio,
y no en in e alos de iempo muy dispa es. En compa ación con los o os alo es con inuos, po
ejemplo, de las pulsaciones (Valo Value en hea a e_seconds_me ged.cs ), es os alo es es án
egis ados de mane a cons an e, egis ándolos odo el día. También conside amos que, en el
u u o, no solo se p edeci án las pulsaciones po minu o, sino ambién o as a iables. Po lo an o,
al no se da os egis ados de o ma cons an e, no se ían an modulables como quisié amos.
Figu a 3-2. Ejemplo de weigh LogIn o_me ged.cs . Se puede obse a que la ob ención de da os no es
cons an e. Obse a la columna “Da e” de colo e de ama illen o y la columna “Id” colo g is cla o.
49
3.2 Manipulación de da os y p ime os modelos p edic i os
3.2.1 Uni icación de da os pa a los modelos de ML
En es e apa ado se de alla án los pasos seguidos pa a uni ica odos los da os necesa ios
en un único a chi o CSV. Todo es e p oceso se ealizó u ilizando la lib e ía pandas. El p oceso
comple o se encuen a documen ado en el no ebook i ulado P epa acion Da os.ipynb.
• P ime o pa a pode manipula los da os es necesa io pasa los CSV a una a iable
median e la unción ead_cs .
Figu a 3-3: Ejemplo de asignación del hea a e_seconds_me ged.cs a un Da aF ame llamado
da a_hea a e_seconds.
• Se comp ueba de que no haya ningún da o al an e en la base de da os del CSV.
En caso de que haya, se ellena los alo es al an es con la moda p e iamen e
calculada.
Figu a 3-4: Ejemplo de código pa a sus i ui alo es al an es con la moda calculada y e i icación de la
eliminación de alo es a ípicos.
50
• Se ajus an los iempos pa a que odos los egis os es én alineados en in e alos de
minu os. Pa a log a es o, se oma la columna de iempo y se ag upan los da os
en in e alos de 1 minu o. Po ejemplo, pa a ag upa el a chi o
hea a e_seconds_me ged.cs , que iene egis os cada 5 segundos, se calcula
la media ag upándolas en in e alos de 1 minu o. Pos e io men e se gua da en el
mismo CSV.
Figu a 3-5: Código pa a ag upa egis os de iempo en in e alos de 1 minu o y expo a los a un a chi o
CSV
• Pa a los CSV: da a_in ensi ies_minu es.cs y minu eCalo iesNa ow_me ged.cs no
ha hecho al a debido a que ya es án eag upados po minu os.
• Una ez ajus ados, se eag upan odos los da os en un mismo Da aF ame pa a
luego gua da lo en un a chi o CSV, donde coincidan el iempo y el ID. Es o se
ealiza median e la unción me ge de pandas. Es necesa io p epa a la columna
ime de los CSV pa a que pandas pueda in e p e a la co ec amen e y así log a
la coincidencia de los da os.
Figu a 3-6: Ejemplo de código pa a combina el a chi o da a_in ensi ies_minu es.cs con me ged_d (el
Da aF ame esul an e de la unión de odos los CSVs) u ilizando la unción me ge de pandas.
51
Una ez inalizada la unión de los da os más impo an es en un único a chi o CSV llamado
es _ ain_da a.cs pa a acili a el en enamien o de los modelos ( éase la Figu a 3-1),
p ocedemos al análisis de los mejo es modelos de eg esión pa a ealiza p edicciones u u as
con es e conjun o de da os.
3.2.2 Análisis de los modelos p edic i os de ML
En es e apa ado se p esen an los esul ados ob enidos con los di e en es modelos que
hemos u ilizado, es á odo documen ado en el no ebook Modelos de P ediccion.ipynb
12
. En la
mayo ía de los casos, empleamos la écnica de c oss- alida ion pa a e alua la capacidad
p edic i a de los modelos y ga an iza que es os gene alicen bien a nue os da os, e i ando así
el sob eajus e al conjun o de en enamien o (Has ie, Tibshi ani, & F iedman, 2009).
Además, se de inió pa a cada modelo, un conjun o de hipe pa áme os pa a
op imiza los, lo que pe mi ió iden i ica cada modelo con el mejo endimien o en é minos de
p edicción u ilizando los mejo es hipe pa áme os. Es os hipe pa áme os ue on encon ados
p e iamen e median e G idSea ch de la lib e ía sklea n, la cual se enca ga de busca los
hipe pa áme os que maximicen el endimien o del modelo.
12
h ps://gi hub.com/JuanBa o i/TFG-Analisis-
i bi /blob/ d2b 97166870bae6a 1 449e7a4cbedb3ccd593/no ebooks/Modelos%20de%20P ediccion.ipynb
52
3.2.2.1 P ep ocesamien o de los da os
Figu a 3-7: P ep ocesamien o de los da os
Pa a la p epa ación de los da os pa a los modelos de machine lea ning, es undamen al
ealiza un p ep ocesamien o adecuado. En es e caso, comenzamos ans o mando la columna
de iempo en el Da aF ame esul _d pa a ex ae ca ac e ís icas ú iles. Con i iendo la columna
Time a un o ma o de echa y ho a (pd. o_da e ime( esul _d ['Time'])), podemos ex ae a ibu os
como la ho a del día, los minu os y el día de la semana. Es os a ibu os se añaden como nue as
columnas: Hou , Minu es, y Weekday.
Luego, seleccionamos las ca ac e ís icas ele an es ( ea u es) pa a la modelización y la
a iable obje i o ( a ge ). Las ca ac e ís icas seleccionadas incluyen iden i icado es, a ibu os de
iempo, y mé icas como la in ensidad y las calo ías. Di idimos los da os en conjun os de
en enamien o y p ueba u ilizando ain_ es _spli , ese ando un 17% de los da os pa a la p ueba.
53
El p ep ocesamien o de da os es impo an e pa a asegu a que los modelos de machine
lea ning uncionen de mane a e ec i a. En nues o caso, u ilizamos un ColumnT ans o me pa a
aplica di e en es ans o maciones a las ca ac e ís icas ca egó icas y numé icas:
• Ca ac e ís icas numé icas: Pa a las ca ac e ís icas numé icas (Hou , Minu es, In ensi y,
Calo ies), aplicamos una escalación es ánda usando S anda dScale . Es a
ans o mación es anda iza los da os pa a que engan una media de 0 y una des iación
es ánda de 1, acili ando el ap endizaje del modelo.
• Ca ac e ís icas ca egó icas: La columna Id se conside a ca egó ica y se ans o ma
usando OneHo Encode . Es a écnica con ie e las ca ego ías en a iables bina ias
(dummies) que el modelo puede p ocesa .
El ColumnT ans o me combina es as ans o maciones, asegu ando que las
ca ac e ís icas numé icas sean escaladas y las ca egó icas sean codi icadas de mane a
adecuada. El pa áme o emainde = 'pass h ough' asegu a que las columnas no especi icadas
en las ans o maciones sean incluidas sin cambios en el conjun o de da os p ep ocesado.
54
3.2.2.2 Resul ados de los modelos de ML
Habla emos sob e los dis in os esul ados que nos han dado los di e en es modelos.
• Reg esión linea :
Empezamos con el modelo que u ilizamos como baseline, el modelo de eg esión lineal. Es e
modelo sencillo nos da una p edicción con un R² sco e
13
de 0.74151, lo cual signi ica que iene
un 74.15% de capacidad de explicación de la a iabilidad de los da os. Compa a emos es e
esul ado con los esul ados de los siguien es modelos.
Figu a 3-8: Código del modelo de eg esión linea
• XGBoos :
En es e modelo nos da un esul ado de 0.85834 de R² sco e, es deci , un 85,83% de explicación
de la a iabilidad de los da os, sin aplica los mejo es hipe pa áme os. Al aplica el mecanismo
de G idSea ch, cuyos mejo es hipe pa áme os son asa de mues eo po á bol
(colsample_by ee) =1.0, asa de ap endizaje (lea ning_ a e) =0.2, p o undidad máxima del
á bol (max_dep h) =7, núme o de es imado es (n_es ima o s) =200, y submues eo
(subsample)=1.0, nos da un esul ado de 0.86044 (86,04%) de R² sco e, mejo ando un 0,21%
13
R² sco e es una mé ica que indica qué p opo ción de la a iabilidad en la a iable
dependien e (obje i o) es explicada po el modelo. Su alo a de 0 a 1, donde 1 signi ica que
el modelo explica pe ec amen e la a iabilidad de los da os, y 0 signi ica que no explica nada.
(Has ie, Tibshi ani, & F iedman, 2009)
55
espec o a los hipe pa áme os po de ec o.
Figu a 3-9: Código del modelo de XGBoos aplicando hipe pa áme os
• Ligh GBM:
En es e modelo con los hipe pa áme os po de ec o ( asa de ap endizaje (lea ning_ a e) =0.2,
núme o de es imado es (n_es ima o s) =200 y núme o de hojas (num_lea es) =40) nos da un
esul ado R² sco e de 0.8608 (86.08%) y mejo esul ado que con los hipe pa áme os es eados y
ob enidos de G idSea ch, con un esul ado R² sco e de 0.85557 (85,56%), ósea un -0.52%
menos.
• LSTM:
El endimien o de es e modelo ha sido uno de los más bajos, con un R² sco e de de 0.59253
(59,25%). Se ha desca ado es e modelo po dos mo i os p incipalmen e, po ob ene un R²
in e io a modelo baseline(Reg eso Lineal R² = 0.74151) y, po se signi ica i amen e más len o
en compa ación con o os modelos e aluados.
• MLP:
El Mul i-Laye Pe cep on Reg esso ob u o una pun ación de R² sco e de 0.849799 (84.98%) con
los hipe pa áme os po de ec o.
• KNN:
Es e modelo u o una pun uación de R² sco e de 0.826173 (82,62%) con
hipe pa áme os inicializado con (núme o de ecinos (n_neighbo s) =5).
56
Figu a 3-10: Código del modelo de KNN, donde se aplica C oss Valida ion
• Decision T ee:
Es e modelo u o una pun uación de R² sco e de 0.7714 (77,14%), muy pa ecido en
cuan o a endimien o R² sco e al modelo baseline(Reg eso Lineal R² = 0.74151).
• SVM:
El modelo SVM nos ha dado un R² sco e de -621.664
14
en el conjun o de p ueba, lo que
indica que el modelo iene un endimien o ex emadamen e pob e y es incapaz de p edeci
co ec amen e los alo es obje i os. Además de su bajo endimien o, es e modelo ue
desca ado al igual que el modelo LSTM po que su p ocesamien o es signi ica i amen e más
len o en compa ación con o os modelos e aluados.
• Random Fo es :
Es e modelo u o una pun uación de R² sco e de 0.83924 (83,92%) con hipe pa áme os
inicializados (núme o de es imado es (n_es ima o s) =100).
• Vo ing Reg esso :
Además de los modelos indi iduales, se implemen ó un modelo combinado u ilizando un Vo ing
Reg esso , el cual combina las p edicciones de es algo i mos dis in os: XGBoos , Ligh GBM y
Random Fo es . Pa a XGBoos y Ligh GBM, se u iliza on los mejo es hipe pa áme os ob enidos
p e iamen e ( asa de ap endizaje (lea ning_ a e) =0.2, núme o de es imado es (n_es ima o s)
=200, núme o de hojas (num_lea es) =31, máxima p o undidad (max_dep h) =6, acción de
14
Un R² sco e nega i o sugie e que las p edicciones del modelo son incluso peo es que
simplemen e usa la media de los alo es obse ados como p edicción.
63
Figu a 3-13: Ob ención de los da os del Hea Ra e en un in e alo de iempo con una ecuencia de
iempo dada
• HRV - Hea Ra e Va iabili y ( a iabilidad de la ecuencia ca díaca)
64
Figu a 3-14: Ob ención de los da os del HRV en un in e alo de iempo con una ecuencia de iempo
dada
• SPO2 - Sa u a ion Pulse Oxygen (sa u ación de oxígeno en la sang e)
65
Figu a 3-15: Ob ención de los da os del SPO2 en un in e alo de iempo con una ecuencia de iempo
dada
• Calo ies, Dis ance and S eps (Calo ías, Dis ancia y Pasos)
66
Figu a 3-16: Ejemplo de código donde se ecopila los da os de calo ies, dis ance y s eps y se gua dan en
un cs independien e
Los di e en es da os ecopilados median e la API se han gua dado en dis in os a chi os
CSV. Una ez ob enida la espues a a a és de pe iciones URL y ecibidos los da os en o ma o
JSON, es os se almacenan según el ipo de da o solici ado y el mes en que se ecogie on. Po
ejemplo, los da os de la ecuencia ca díaca del mes de eb e o se gua dan en un a chi o
llamado hea _ a e_da a_2.cs .
67
Figu a 3-17: Ejemplo de CSV pa a hea _ a e_da a_2.cs , donde se ha ecogido los da os median e la API
Resumen en una abla de los da os más ele an e que hemos ob enido:
Tipo de da o
In e alo de iempo de medición
Hea Ra e
Du an e odo el día
Hea Ra e Va iabili y
Du an e el sueño
Sa u a ion Pulse Oxygen
Du an e el sueño
Calo ies
Du an e odo el día
Dis ance
Du an e odo el día
S eps
Du an e odo el día
Tabla 3: Resumen de los da os ob enidos median e la API
Si nos ijamos en la abla, podemos obse a que la mayo ía de los da os se miden
cons an emen e a lo la go del día. Sin emba go, algunos como la a iabilidad de la ecuencia
ca díaca (Hea Ra e Va iabili y) y la sa u ación de oxígeno en la sang e (Sa u a ion Pulse
Oxygen) solo se miden du an e el sueño del usua io, es deci , se ecopilan únicamen e cuando
la pulse a de ec a que el usua io en a en una ase de sueño. Po lo an o, pa a en ena los
modelos de ap endizaje au omá ico (ML), u iliza emos los da os de Hea Ra e, Calo ies, Dis ance
y S eps, ya que son da os cons an es que se egis an du an e odo el día, lo que los hace más
adecuados pa a p edeci en el u u o.
68
En compa ación con los da os de Kaggle, éase la Figu a 3-1, en es e caso se ha escogido más
a iables pa a añadi a los modelos (Hea Ra e, Calo ies, Dis ance y S eps, no se ha podido
ob ene la in ensidad debido a que no se podía ob ene esos da os median e la API debido a un
e o in e no del se ido de Fi bi ). Es o puede p opo ciona más in o mación pa a analiza y
busca una co elación más p ecisa pa a las p edicciones. Sin emba go, es impo an e ene en
cuen a que más pa áme os no siemp e ga an izan un mejo endimien o; una selección
cuidadosa de las a iables es esencial pa a e i a p oblemas como el sob eajus e y asegu a que
el modelo gene alice bien en da os nue os.
3.3.5 Uni icación de los da os
Una ez es ablecidas las a iables que se an a u iliza pa a en ena los modelos, p ime o
ealizamos una uni icación de odos los da os en un solo a chi o CSV, en el que odos los
pa áme os es én en la misma ila y con el mismo in e alo de iempo. Es a uni icación se ha
lle ado a cabo en el no ebook Me ge API Da abase.ipynb.
Dado que los da os es án sepa ados en di e en es a chi os CSV según el ipo de da o, como se
mues a en la Figu a 3-17, el obje i o es uni ica los en un único CSV, de mane a que odos los
da os es én con enidos en una misma ila pa a un mismo in e alo de iempo.
Figu a 3-18: Ejemplo de combinación de los da os ipo dis ance en dis ance_me ged.cs
69
Al ealiza el mismo paso con odas las a iables que u iliza emos: Hea Ra e, Calo ies, Dis ance
y S eps, nos quedamos con un único CSV el cual se u iliza á pa a ene una mejo comp ensión
de los da os que en ena emos en el CSV llamado es _ ain_da a_api_me ged.cs . Los pasos de
uni icación son muy simila es al del apa ado 3.2.1.
Figu a 3-19: Ejemplo de da os gene ados en es _ ain_da a_api_me ged.cs .
3.4 Análisis de los modelos p edic i os de ML con da os ex aídos con la
API
Al uni ica odos los da os median e la API en un mismo CSV, pa a acili a la comp esión
de es a, se ha dado paso a es udia y analiza los modelos de ML que hemos ido u ilizando a lo
la go del p oyec o con es e nue o conjun o de da os.
Al habe hecho los análisis de los di e en es modelos de ML, nos hemos quedado con los
más des acables: Ligh GBM Reg esso , XGBoos Reg esso , KNN Reg esso , Random Fo es
Reg esso y MLP Reg esso .
Pa a pode p edeci los alo es, hemos in es igado y encon ado una o ma más
con enien e de acili a la c eación de modelos de p edicción de se ies empo ales. Se a a de
Fo ecas e Au o eg, una clase pe enecien e a la lib e ía sk o ecas . Es a clase implemen a un
modelo de eg esión au o eg esi o, donde las ca ac e ís icas (o ea u es) pa a la p edicción son
los alo es pasados de la se ie empo al que se desea p edeci .
En un modelo de eg esión au o eg esi o, se en ena un modelo de eg esión (po
ejemplo, un modelo lineal o un modelo basado en á boles) u ilizando los alo es pasados de la
70
se ie empo al como a iables independien es. El obje i o es p edeci el alo u u o de la se ie
empo al. Po ejemplo, si se quie e p edeci el alo en el iempo , se pod ían usa los alo es en
los iempos −1, −2, …, −p -1, -2 como p edic o es, donde p es el núme o de ezagos (lags) que
se u ilizan. (Ama Rod igo & Escoba O iz, 2024)
Figu a 3-20: Diag ama del p oceso de p edicción mul i-s ep ecu si o pa a p edeci 3 s eps a u u o
u ilizando los úl imos 4 lags de la se ie como p edic o es.
71
Pa a con igu a el Fo ecas e Au o eg, p ime o necesi amos con igu a el iempo de los
da os:
Figu a 3-21: Con igu ación del iempo, con una ecuencia de 60 segundos
Después, es ablecemos los alo es del lag y del s ep; po ejemplo, s eps=5 y lags=10 pa a
el o ecas e . Y, po úl imo, debemos comp oba que no haya ninguna ila al an e. Si las hay,
debemos ellena las con la úl ima medida (es o puede sucede si, po ejemplo, la ba e ía de la
pulse a se ago a o se in e umpe la ca ga, lo que causa ía la al a de da os). Es necesa io que el
Fo ecas e con enga odos los da os sin que al e ninguno.
A con inuación, pond emos los esul ados de los modelos con una medición de e o de
MSE con s eps = 5:
• Ligh GBM Reg esso :
Con un e o de 4.8980 (4,9%) de e o de es MSE.
Figu a 3-22: Ejemplo de en enamien o de LGBM Reg esso
72
Como se puede obse a en Figu a 3-22, se u iliza como da os exógenos las columnas
Calo ies, S eps y Dis ance.
• XGBoos Reg esso :
Con un e o de 4.838 (4,84%) de e o de es MSE.
Figu a 3-23: Ejemplo de código de cómo se p edice los alo es con N s eps
Figu a 3-24: G á ica compa a i a donde se mues a los alo es p edichos con los da os es s en XGBoos
Reg esso pa a un alo de s eps = 5
• KNN Reg esso :
Con un e o de 47.447 (47,48%) de e o de es MSE.
• Random Fo es Reg esso :
Con un e o de 7.5239 (7,52%) de e o de es MSE.
• MLP Reg esso :
Con un e o de 5.51538 (5,51%) de e o de es MSE.
79
Figu a 3-32: Flujo de los ajus es gene ales
En la Figu a 3-32 podemos obse a el lujo de odas las ca ac e ís icas de es a en ana,
donde se puede cambia el usua io, la con aseña, cambia el p opósi o, podemos ce a
sesión desde ahí y inalmen e elimina la cuen a.
80
• P edicción de da os
Figu a 3-33: Flujo de la en ana de p edicción
En es a en ana, podemos selecciona el campo/ a iable que deseamos p edeci , en
es e caso la ecuencia ca díaca (Hea Ra e). En e las posibles opciones de campos a p edeci ,
podemos selecciona : ecuencia ca díaca (Hea Ra e), calo ías (Calo ies), dis ancia (Dis ance)
o núme o de pasos (S eps). Los pa áme os calo ías, dis ancia y núme o de pasos se han u ilizado
con los mismos modelos de ML que la ecuencia ca díaca, po lo que las p edicciones pueden
se menos p ecisas en compa ación con el es udio ealizado pa a la ecuencia ca díaca. Pa a
mejo a las p edicciones, se ha p opues o es udia es as a iables en u u os abajos con el in de
ob ene un mejo endimien o.
81
Pa a ealiza una p edicción co ec a, debemos selecciona ambién el iempo de
p edicción (s eps) y luego p esiona el bo ón de p edeci . Con es o, u ilizando los úl imos da os
sinc onizados, pod emos isualiza una g á ica que mos a á cómo e oluciona á nues o i mo
ca díaco en unción de la selección ealizada.
Además, ecibi emos un mensaje que nos indica á, dependiendo de lo que hayamos
seleccionado al egis a nos (po ejemplo, el obje i o de mejo a del endimien o depo i o:
quema de g asa, mejo a de la salud gene al, e c.), el p onós ico co espondien e.
El p onós ico es ealmen e simple, se a a de una e oalimen ación que, depende de
dos en adas: el p opósi o elegido po el usua io y la media de p edicciones ealizadas po el
modelo de ML. Con odos es os da os, y o os cálculos in e nos que se de alla án en el apa ado
3.5.3, la aplicación es capaz de calcula el ango mínimo y máximo de pulsaciones pa a cada
zona de en enamien o, asociada a cada p opósi o dis in o o ecidos po Hea P ed’i .
Finalmen e, si las pulsaciones medias p edichas po el modelo ML se encuen a en el
ango, el p onós ico se á un acie o, mos ando un mensaje de ánimo al usua io po ace a la
in ensidad y pulsaciones del eje cicio.
En caso con a io, el p onós ico se á un mensaje ale ando al usua io de su acaso en la
in ensidad y pulsaciones medias del in e alo de iempo seleccionado, indicando al usua io el
ango de pulsaciones mínimas y máximas calculado asociado a su p opósi o, así como la
ce canía a la zona de p opósi o deseada.
Cabe ecalca que, es a uncionalidad solo es á implemen ada pa a la p edicción de la
ecuencia ca díaca.
• Visualización y sinc onización de da os
82
Figu a 3-34: Flujo de sinc onización y isualización de da os
En la Figu a 3-34, podemos obse a que, cuando se sinc onizan los da os de la pulse a
con la aplicación Hea P ed’i , apa ece un pop-up de ca ga que nos indica cuándo ha
inalizado el p oceso. También se puede e la en ana de isualización, donde es posible
obse a los da os del usua io en un in e alo de iempo, el cual es ajus able según las
necesidades del usua io.
83
Figu a 3-35: Flujo comple o de la aplicación
3.5.2 A qui ec u a de la aplicación
Aquí habla emos sob e la a qui ec u a de la aplicación, de allando su diag ama UML, así
como sus diag amas de lujo, y explica emos cómo es á compues a.
En es e p oyec o, hemos seguido una a qui ec u a Modelo-Vis a-Con olado (MVC). Es e
pa ón sepa a la aplicación en es componen es p incipales:
• Modelo ( e de): Es la pa e de la aplicación que maneja la lógica de los modelos
p edic i os de ML y la lógica de la au en i icación de Fi bi . El Modelo se enca ga de
ges iona la in o mación, accede a la base de da os (En nues o caso pa a accede a
los da os de los usua ios o accede a los da os de los alo es ecopilados po el usua io
84
median e la API), y ealiza las ope aciones necesa ias sob e es os. Es independien e de
la in e az de usua io, lo que pe mi e que los da os puedan se eu ilizados o manipulados
sin depende de cómo se p esen en.
• Vis a (azul): Es el componen e que ges iona la in e az de usua io y la p esen ación de los
da os. La Vis a oma los da os p opo cionados po el Modelo y la mues a de una mane a
que el usua io inal pueda in e ac ua con ellos. La Vis a no con iene lógica de negocio;
su única unción es mos a in o mación y ecibi la in e acción del usua io.
• Con olado ( osa): Es el in e media io que conec a el Modelo y la Vis a. El Con olado
ecibe la en ada del usua io a a és de la Vis a, p ocesa esa en ada (po ejemplo,
alidando los da os o in ocando ope aciones en el Modelo), y luego ac ualiza la Vis a
con los esul ados. De es a mane a, el Con olado ac úa como un puen e que asegu a
que la lógica de negocio (Modelo) y la p esen ación (Vis a) pe manezcan sepa adas.
Es a sepa ación en capas pe mi e una mayo modula idad y acili a el man enimien o y
la escalabilidad de la aplicación. Cada componen e puede se desa ollado, ac ualizado, y
p obado de o ma independien e, lo que esul a en una aplicación más obus a y lexible. (Doe,
Smi h, & Johnson, 2023).
85
Figu a 3-36: Diag ama UML de la aplicación
86
Como ges o de base de da os se ha u ilizado MongoDB. Con es e ges o , hemos podido
gua da los da os de los usua ios, así como sus okens de egis o, su úl ima sinc onización, en e
o os.
Pa a mejo a la segu idad de los da os sensibles como la con aseña de usua io, se ha
op ado po implemen a el algo i mo SHA-256, pa a pos e io men e gua da en MongoDB la
con aseña de mane a segu a.
Pa a e i ica la au en icidad del usua io, se almacena además en la MongoDB una “sal ”
gene ada au omá icamen e po el algo i mo SHA-256. Es a “sal ” se añade a la con aseña del
usua io, y se u iliza en el p oceso de e i icación pa a compa a los dos hashes de mane a segu a
(MongoDB, 2023).
Figu a 3-37: Diag ama UML de la clase Mongo colo eada en e de
87
3.5.3 Lógica de los p opósi os
A con inuación, de alla emos la lógica de los p opósi os de la aplicación.
3.5.3.1 P opósi os de Hea P ed’i .
La aplicación o ece cinco ipos de p opósi os: Mejo a la salud gene al, quema g asa,
mejo a la esis encia ca dio ascula , mejo a la elocidad/po encia y mejo a el máximo
endimien o.
Cada p opósi o, se asocia a una zona especí ica de ecuencia ca díaca; po ejemplo,
la zona de "Mejo a salud gene al" es la p ime a zona de ecuencia ca díaca. Véase Tabla 5.
Cada zona es á de inida po un ango de pulsaciones mínimas y máximas. Pa a que la
aplicación pueda calcula con éxi o el ango de cada zona, es imp escindible conoce la
ecuencia ca díaca en eposo y la ecuencia ca díaca máxima del usua io. La ecuencia en
eposo se ob iene a pa i de la API de Fi bi , mien as que la ecuencia ca díaca máxima se
calcula usando la ó mula de Tanaka (Tanaka, Monahan, & Seals, 2001)
𝑇𝑎𝑛𝑎𝑘𝑎(𝐹𝐶𝑀)=(208 − 0.7 ∗ 𝑒𝑑𝑎𝑑)
Ecuación 1: Fó mula de Tanaka
La ó mula de Tanaka es ima la ecuencia ca díaca máxima (FCM) eó ica, es ando a
la cons an e 208 el esul ado de mul iplica (0.7 * edad).
Pa a calcula el ango de pulsaciones mínimas y máximas de cada posible zona, se ha
op ado po la ó mula de Ka onen: (Moya, s. .)
% 𝑑𝑒 𝐹𝐶 𝑜𝑏𝑗𝑒𝑡𝑖𝑣𝑜 = ((𝐹𝐶𝑀
22
– 𝐹𝐶𝑅
23
) × % 𝑑𝑒 𝑖𝑛𝑡𝑒𝑛𝑠𝑖𝑑𝑎𝑑) + 𝐹𝐶𝑅
Ecuación 2: Fó mula de Ka onen
22
Donde FCR es ecuencia ca díaca en eposo.
23
Donde FCM es ecuencia ca díaca máxima.
88
ZONAS DE FRECUENCIA CARDÍACA
% DE INTENSIDAD
RANGO PULSACIONES
(FCR:70, FCM:198)
ZONA 0 (Ninguna Zona)
(0.00, 0.49]
(70,133)
ZONA 1 (Mejo a salud gene al)
(0.49, 0.59]
(133, 146)
ZONA 2 (Quema de g asa)
(0.59, 0.69]
(146,158)
ZONA3 (Mejo a esis encia ca dio ascula )
(0,69, 0.79]
(158, 171)
ZONA 4 (Mejo a la elocidad y po encia)
(0.79, 0.89]
(171, 184)
ZONA 5 (Mejo a máximo endimien o)
(0.89, 1.00]
(184, 198)
ZONA 6 (Ninguna zona, sob ees ue zo)
(1.00, 4.00]
(198, 582)
Tabla 5: Tabla ep esen a i a de po cen aje de in ensidad y ango de pulsaciones de cada zona de
ecuencia ca diaca de Ka onen, con alo es FCR de 70 y FCM de 198.
Como se puede obse a en la Tabla 5, si el p opósi o elegido po el usua io es (Mejo a
salud gene al), la media de las pulsaciones p edichas po el modelo debe cae en e (133,146)
pa a conside a se como p onós ico ace ado.
3.5.3.2 P onós ico/in e p e ación de esul ados:
Mejo a salud
gene al (1)
Quema de
g asa (2)
Mejo a
esis encia
ca dio ascula
(3)
Mejo a la
elocidad y
po encia
(4)
Mejo a
máximo
endimien o (5)
Zona 0
Zona 1
Zona 2
Zona 3
Zona 4
Zona 5
Zona 6
Tabla 6: Tabla ep esen a i a sob e la in e p e ación de esul ados pa a cada zona.
Con odos es o da os calculados in e namen e, la aplicación ealiza un p onós ico.
Las zonas e des indican acie os en las p edicciones, es deci , ocu e cuando el usua io
ha elegido la zona X y la media de p edicciones ealizadas po el modelo ha a e izado en la
zona X.
95
Goals
Ou main objec i e in his p ojec is o de elop an applica ion ha allows a hle es o
imp o e hei spo s pe o mance h ough he analysis o da a collec ed ia a w is band.
1. De ine and plan he p ojec .
• Speci y he p oposals and objec i es o he inal deg ee p ojec .
• C ea e a plan ou lining he p ojec phases and he expec ed esul s o
each phase.
2. Analyse how o p ocess he da a o i s subsequen use in Machine Lea ning.
• Resea ch he di e en ypes o da a ha can be ob ained using an exis ing
da abase wi h in o ma ion such as hea a e, calo ies bu ned, exe cise
in ensi y, e c.
• S udy and wo k wi h he da ase ob ained om Kaggle, de eloping
di e en p edic i e algo i hms o ind he mos sui able model o he da a
om ou own da a collec ion de ice.
3. Analyse he acquisi ion o a de ice o collec ing a hle e da a.
• Based on he Kaggle da ase , look o de ices capable o collec ing simila
da a.
• Find de ices ha can p o ide da a h ough an open API.
4. S udy he use o he Fi bi API o collec da a ia wea able de ices using Py hon lib a ies.
• Be o e acqui ing he de ice, explo e how o use he Fi bi API h ough he
a ailable documen a ion, making simple eques s such as ob aining use
da a.
• Acqui e a Fi bi de ice and make ini ial API eques s o ob ain eal da a,
such as he a hle e's hea a e, calo ies, e c.
5. Analyse di e en p edic i e algo i hms wi h he eal da a ob ained.
• Clean he da a collec ed.
• Tes di e en p edic i e models and selec hose ha o e he bes esul s.
6. C ea e an applica ion o p ocessing and isualizing da a o use s, allowing hem o
imp o e hei spo s pe o mance.
96
• De elop a desk op applica ion in Py hon capable o isualizing and
p edic ing he a ious da a collec ed.
Wo k plan
As o he wo k plan, we ollowed he Sc um model. This model has an agile app oach ha
is mos ly used in so wa e de elopmen . We chose his agile me hod due o ou amilia i y wi h i ,
acqui ed h oughou ou deg ee, and also because i allows us o see esul s a he end o each
Sp in . This helps wi h inc emen al deli e ies and acking he p ojec 's p og ess.
Figu e 0-1: SCRUM p ocess diag am.
Be o e each Sp in , we planned he asks and goals we wan ed o achie e be o e each
Sp in Re iew, whe e we e iew all he p og ess ha has been made. These a e he s eps we
ollowed o each Sp in :
1. De ine asks and goals.
• We hold a mee ing whe e we add ess all he asks needed o mee se e al
objec i es. Once he lis o objec i es is comple ed, we hold a mee ing wi h
he p o esso o alida e and ensu e ha he objec i es a e app op ia e.
2. Weekly Sc um.
• E e y week, we hold a mee ing whe e we e iew he p og ess made
h oughou he Sp in , adjus ing asks as needed.
97
3. Sp in Re iew.
• A he end o he Sp in (app oxima ely e e y 3 weeks), we e iew he
comple ed wo k o e alua e he p og ess and de e mine which pa hs o
ollow and wha needs imp o emen .
In ela ion o he p e ious sec ion, each goal has been planned pe sp in , ollowing he
imeline below:
• Sp in 1:
- Goal: De ine and plan he p ojec .
• Sp in 2:
- Goal: Ga he ele an in o ma ion and da a o he s udy.
• Sp in 3:
Goal: Analyze how o p ocess he collec ed da a o i s subsequen use in Machine
Lea ning.
• Sp in 4:
- Goal: Analyze he acquisi ion o de ices o collec ing a hle e da a.
• Sp in 5:
- Goal: S udy he use o he Fi bi API o collec da a h ough wea able de ices, using
Py hon lib a ies.
• Sp in 6:
- Goal: Analyze di e en p edic i e models using he ob ained da a. Selec he bes
models based on p edic ion accu acy.
• Sp in 7:
- Goal: C ea e a desk op applica ion o p ocessing and isualizing da a o use s,
allowing hem o imp o e hei spo s pe o mance.
98
Conclusions and u u e wo k
Conclusions
In summa y, he applica ion de eloped in his inal deg ee p ojec , Hea P ed’i , ep esen s
a use ul solu ion o a hle es seeking o op imize hei pe o mance. Th ough he use o ad anced
echnologies such as Machine Lea ning, we ha e c ea ed a ool capable o p edic ing key
aining me ics (such as hea a e, calo ies, e c.), p o iding use s wi h aluable and pe sonalized
in o ma ion.
One o he undamen al aspec s o implemen ing his applica ion has been he in eg a ion
o APIs o da a collec ion, especially h ough wea able de ices such as he ac i i y w is band
acqui ed o his p ojec . These APIs ha e p o en o be ex emely use ul by enabling eal- ime,
con inuous da a collec ion on use s, which is c ucial o eeding he machine lea ning models wi h
accu a e and up- o-da e da a.
Fu he mo e, his p ojec has demons a ed ha no all machine lea ning models a e he
same; each has pa icula cha ac e is ics ha a ec bo h he esul s ob ained and he p ocessing
imes. In pa icula , he XGBoos and Ligh GBM models ha e shown an excellen balance be ween
accu acy, p ocessing speed, and e iciency in p edic ing con inuous da a, s anding ou as highly
e ec i e op ions o eg ession asks in he con ex o imp o ing spo s pe o mance by making
u u e p edic ions.
A c ucial aspec add essed in his p ojec has been da a p i acy. All collec ed da a is
subjec o Fi bi 's p i acy and da a handling policies. Unde he use o he Hea P ed’i applica ion,
all collec ed da a is used exclusi ely o educa ional and non-p o essional pu poses, wi hou
being sha ed wi h hi d pa ies. This ensu es e hical handling o in o ma ion wi hin he amewo k
p o ided by Fi bi , aligning wi h bes p ac ices in da a p o ec ion.
Finally, he de elopmen o Hea P ed’i no only con ibu es o he ad ancemen o
machine lea ning applica ions in spo s bu also opens he doo o u u e esea ch and
imp o emen s in his g owing ield. The combina ion o e icien machine lea ning models, along
wi h a obus in as uc u e o da a collec ion, o e s a p omising pa h owa d he pe sonaliza ion
o aining and con inuous imp o emen o spo s pe o mance.
99
Fu u e Wo k
Based on he de elopmen and esul s ob ained in his p ojec , se e al a eas o
imp o emen and expansion ha e been iden i ied ha could be explo ed in u u e wo k:
1. Inco po a ion o New Machine Lea ning Models: A key aspec o u u e de elopmen
would be he explo a ion and s udy o new machine lea ning models ha could u he
imp o e he p edic i e analysis pe o mance o he Hea P ed’i applica ion. This includes
op imizing he cu en models h ough hype pa ame e uning, as well as e alua ing o he
models ha ha e no ye been es ed in his p ojec .
2. S udy o Pe missions and Collabo a ion wi h Fi bi : I is essen ial o ad ance he
o maliza ion o pe missions and o icial documen s wi h Fi bi o au ho ize he use and
collec ion o da a om mul iple use s. This would allow he expansion o he applica ion’s
scope and acili a e i s implemen a ion in eal en i onmen s, ensu ing compliance wi h all
da a p i acy and handling egula ions.
3. Compa ibili y wi h De ices om Mul iple B ands: To inc ease he e sa ili y o Hea P ed’i ,
i would be aluable o ex end he applica ion’s compa ibili y o include mo e companies
ha collec use da a, allowing o he easy in eg a ion o de ices om o he
manu ac u e s, such as Wi hings, Xiaomi. This would depend on he a ailabili y o open
APIs om hese companies, enabling he applica ion o in e ac wi h a b oade ange o
de ices.
4. Op imiza ion o Real-Time P edic ion: An impo an goal o u u e wo k is o enhance he
applica ion o suppo ully au oma ic eal- ime da a e ie al and p edic ion. This would
in ol e signi ican imp o emen s in he da a p ocessing in as uc u e, as well as in he
esponsi eness o he implemen ed machine lea ning models.
5. Imp o emen in Da a Collec ion and P ocessing: Fu he op imizing he p ocess o
collec ing and p ocessing da a om he Fi bi API would be bene icial. This could include
inco po a ing addi ional me ics ha a e use ul and e ec i e o machine lea ning model
p ocessing, ul ima ely imp o ing he accu acy and use ulness o he p edic ions.
6. C oss-Pla o m In eg a ion: Cu en ly, Hea P ed’i has been de eloped as a desk op
applica ion. In u u e wo k, i would be ele an o expand i s a ailabili y o o he pla o ms,
such as mobile and web, o inc ease accessibili y and acili a e i s use in di e en
en i onmen s.
100
7. S udy o P edic O he Va iables: Conduc a s udy o ind he bes model o di e en
a iables (calo ies, s eps, dis ance a elled) o imp o e he p edic ion o hese.
These u u e e o s would no only imp o e he unc ionali y and accu acy o Hea P ed’i ,
bu also expand i s applicabili y and adap abili y in he spo s ield and beyond.
101
CONTRIBUCIONES PERSONALES
Cabe des aca que, ambos in eg an es de es e p oyec o han coope ado po igual en la
c eación de es e p oyec o de in de g ado.
Juan Is ael Ba o i González:
T abajos ealizados po el es udian e, Juan Is ael Ba o i González:
• Es udio y llu ia de ideas de p oyec os elacionados con la c eación de una
he amien a de apoyo pa a depo is a, que implemen e a ios conocimien os
adqui idos du an e el g ado.
• Es udios de bases de da os públicas con da os i ness.
o Base de da os pública en Kaggle.
• Realización de es udios de in es igación sob e el uncionamien o de las
dis in as ecnologías u ilizadas en el p oyec o Hea P ed’i .
Jupy e No ebooks:
Me ge API Da abase.ipynb:
Uni icación de a ios CSV p opo cionados po la API de Fi bi en un
único CSV, acili ando la lec u a de los da os.
Modelos de P edicción.ipynb:
In es igación de modelos de ML pa a encon a el más adecuado
que se adap e a la a iabilidad de la ecuencia ca díaca de los usua ios
de la aplicación.
Modelos de p edicción_Calo ies.ipynb:
Es udio compa a i o del endimien o de XGboos y Ligh GBM pa a
p edeci las calo ías de los usua ios de la aplicación.
P edicción_a_ u u o.ipynb:
102
Es udio y adap ación de écnicas de p edicción a u u o u ilizando
a ios modelos de ML como: Ligh GBM, XGBoos , KNN, RandomFo es , SVR.
P epa ación Da os.ipynb:
P ep ocesamien o de los da os pa a su pos e io en enamien o en
los modelos de ML.
TFG_Fi bi _ob encion_da os.ipynb:
Es udio de las llamadas a la API de Fi bi pa a ob ene odos los
da os necesa ios pa a la aplicación.
Tes _P ediccion.ipynb:
E aluación de cómo los di e en es modelos de ML p edicen la ecuencia
ca díaca, analizando su endimien o.
• Desa ollo de la aplicación Hea P ed’i :
La aplicación es á esc i a en e amen e en Py hon, incluye la
in eg ación de modelos de Machine Lea ning, la implemen ación de clases
pa a la ges ión de la API de Fi bi y el lujo de au en i icación OAu h2.0.
Además, se desa olla on clases pa a con ola la lógica del modelo e in e az
de la aplicación usando Tkin e . También se c ea on clases elacionadas con
la segu idad de los da os p opo cionados po el clien e, como el Hashing de
con aseñas median e SHA-256 y, un se ido en Flask pa a ecibi la espues a
del p oceso de au en icación OAu h2.0.
Finalmen e, el desa ollo de una clase pa a ges iona las lec u as,
esc i u as de da os en Mongo.
• Memo ia.
103
Ja ie Ma ía Pa a González:
T abajos ealizados po el es udian e, Ja ie Ma ía Pa a González:
• Es udio y llu ia de ideas de p oyec os elacionados con la c eación de una
he amien a de apoyo pa a depo is a, que implemen e a ios conocimien os
adqui idos du an e el g ado.
• Es udios de bases de da os públicas con da os i ness.
o Base de da os pública en Kaggle.
• Realización de es udios de in es igación sob e el uncionamien o de las
dis in as ecnologías u ilizadas en el p oyec o Hea P ed’i .
Jupy e No ebooks:
ML- ain- ime-elapsed- ime.ipynb:
Es udio pa a jus i ica el uso en la aplicación Hea P ed’i de
modelos de ML como XGboos y Ligh GBM, en e o os modelos de mejo
endimien o como el Vo ingReg esso po su demo a en iempo de
en enamien o.
Me ge API Da abase.ipynb:
Uni icación de a ios CSV p opo cionados po la API de Fi bi en un
único CSV, acili ando la lec u a de los da os.
Modelos de P edicción.ipynb:
In es igación de modelos de ML pa a encon a el más adecuado
que se adap e a la a iabilidad de la ecuencia ca díaca de los usua ios
de la aplicación.
Modelos de p edicción_Calo ies.ipynb:
Es udio compa a i o del endimien o de XGboos y Ligh GBM pa a
p edeci las calo ías de los usua ios de la aplicación.
P edicción_a_ u u o.ipynb:
104
Es udio y adap ación de écnicas de p edicción a u u o u ilizando
a ios modelos de ML como: Ligh GBM, XGBoos , KNN, RandomFo es , SVR.
P epa ación Da os.ipynb:
P ep ocesamien o de los da os pa a su pos e io en enamien o en
los modelos de ML.
TFG_Fi bi _ob encion_da os.ipynb:
Es udio de las llamadas a la API de Fi bi pa a ob ene odos los
da os necesa ios pa a la aplicación.
Tes _P ediccion.ipynb:
E aluación de cómo los di e en es modelos de ML p edicen la ecuencia
ca díaca, analizando su endimien o.
• Desa ollo de la aplicación Hea P ed’i :
La aplicación es á esc i a en e amen e en Py hon, incluye la
in eg ación de modelos de Machine Lea ning, la implemen ación de clases
pa a la ges ión de la API de Fi bi y el lujo de au en i icación OAu h2.0.
Además, se desa olla on clases pa a con ola la lógica del modelo e in e az
de la aplicación usando Tkin e . También se c ea on clases elacionadas con
la segu idad de los da os p opo cionados po el clien e, como el Hashing de
con aseñas median e SHA-256 y, un se ido en Flask pa a ecibi la espues a
del p oceso de au en icación OAu h2.0.
Finalmen e, el desa ollo de una clase pa a ges iona las lec u as,
esc i u as de da os en Mongo.
• Memo ia.