ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
GRADUADO EN INGENIERÍA DE COMPUTADORES
Compa ación y análisis de mé odos de clasi icación con
las biblio ecas sciki -lea n y Tenso Flow en Py hon
Compa ison and analysis o classi ica ion me hods wi h
sciki -lea n and Tenso Flow lib a ies in Py hon
Realizado po
Juan Zamo ano Ruiz
Tu o izado po
Daniel Ga ido Má quez
Depa amen o
Lenguajes y Ciencias de la Compu ación
UNIVERSIDAD DE MÁLAGA
MÁLAGA, SEPTIEMBRE DE 2019
Fecha de ensa:
Fdo. El/la Sec e a io/a del T ibunal
Resumen
Hoy en día no podemos nega que i imos odeados de la gene ación de
una g an can idad de da os, más aho a que es amos en plena e a digi al y la
mayo ía de es a in o mación se puede almacena y p ocesa . Nume osas
emp esas buscan en oca el uso de dicha in o mación pa a saca un bene icio a
a o de los obje i os de su negocio y se ayudan de las he amien as adecuadas
pa a lle a a cabo es a a ea.
La ama de la In eligencia A i icial denominada “Machine Lea ning” o,
ambién conocido como ap endizaje au omá ico, es aquella que pe mi e a las
máquinas ap ende a a és de los da os de ec ando pa ones y ayudando a la
oma de decisiones.
Con es a ama de la in eligencia a i icial lo que se p e ende es da uso al
conocimien o de los da os his ó icos pa a pode lle a a cabo decisiones
conc e as en el u u o. Den o del ap endizaje au omá ico exis en dis in os ipos de
p oblemas, dependiendo de su na u aleza y del obje i o buscado, así en es e
caso nos cen a emos en ap endizaje supe isado pa a clasi icación. Exis en
dis in os algo i mos y écnicas ma emá icas pa a pode lle a a cabo un p oblema
de clasi icación, donde una de las más usadas y conocidas es el de las edes
neu onales.
En es e p oyec o amos a hace uso de dos biblio ecas pa a ap endizaje
au omá ico, p o undizando en edes neu onales , ambas diseñadas pa a su uso
en Py hon: una de ellas es la biblio eca Sciki -lea n pa a Machine Lea ning, y o a
pa e la biblio eca de código abie o Tenso Flow.
Se ealiza á una compa ación y análisis del compo amien o de cada
algo i mo y lib e ía con dis in as mé icas en la p edicción de 7 ipos de cubie as
o es ales con el uso de a iables ca og á icas a a és de dis in os alo es
omados en 4 á eas dis in as del pa que nacional de Roose el , en el no e del
es ado de Colo ado.
Palab as cla e: Sciki -lea n, Tenso Flow, Ap endizaje au omá ico, Big Da a, Py hon,
In eligencia A i icial, Ke as, Análisis
Abs ac
Today we can´ deny ha we li e su ounded by he gene a ion o a la ge
amoun o da a, indeed oday ha we a e in he digi al age and mos o his
in o ma ion is possible o s o e and p ocess. Nume ous companies seek o ocus
on he use o such in o ma ion o make a p o i in a o o he objec i es o hei
business and we help ou sel es wi h he app op ia e ools o ca y ou his ask.
The b anch o A i icial In elligence called "Machine Lea ning" is one ha
allows machines o lea n h ough da a by de ec ing pa e ns and helping o make
decisions.
Wi h his b anch o a i icial in elligence wha we in end is o use he
knowledge o his o ical da a o be able o ca y ou conc e e decisions in he
u u e. Wi hin he au oma ic lea ning he e a e di e en ypes o p oblems,
depending on hei na u e and he a ge , so in his case we will ocus on
supe ised lea ning o classi ica ion. The e a e di e en algo i hms and
ma hema ical echniques o ca y ou a classi ica ion p oblem, one o he mos
used and known is neu al ne wo ks.
In his p ojec we will make use o wo lib a ies o machine lea ning o
implemen a neu al ne wo k, bo h designed o use in Py hon language: one o
hem is he Sciki -lea n lib a y o Machine Lea ning, and on he o he hand he
use o he open sou ce lib a y Tenso Flow.
A compa ison and analysis o he beha io o each algo i hm and lib a y
will be made wi h di e en me ics in he p edic ion o 7 o es co e ypes wi h he
use o ca og aphic a iables di e en alues aken in 4 di e en a eas o he
Roose el Na ional Pa k, in he no h o he s a e o Colo ado.
Keywo ds: Sciki -lea n, Tenso Flow, Machine Lea ning, Big Da a, Py hon,
A i icial In elligence, Ke as, Analysis.
9
da os se desa olla án dis in os p og amas en Py hon pa a au oma iza , en la
medida de lo posible, el p ocesamien o de los da os, el en enamien o de los
algo i mos y ex acción de las mé icas que nos da án la posibilidad de ealiza
la compa a i a.
1.3 Es uc u a de la memo ia
La es uc u a de la memo ia de es e abajo a a consis i en a ias
pa es que pe mi i án da a conoce el uso del ap endizaje au omá ico así como
los dis in os algo i mos que se pueden usa pa a ealiza la clasi icación de
unos da os seleccionados, así como las espec i as g á icas y compa a i as en
las que el abajo se cen a. De es a o ma, la memo ia cons a de:
Una in oducción pa a con ex ualiza el abajo a ealiza y po qué se ha
p opues o su desa ollo.
Un es udio del caso de uso a a a y el abajo que se p e ende ealiza
sob e el mismo pa a aplica los algo i mos de ap endizaje au omá ico
dando uso de las lib e ías disponibles pa a el obje i o buscado.
Un capí ulo donde se explica en qué consis e el ap endizaje au omá ico
y donde se analizan los algo i mos basados en edes neu onales y el
po qué de su uso en nues os días.
Un capí ulo donde se analizan y explican los pasos dados pa a analiza
los da os, su p ocesamien o y en enamien o de los algo i mos.
Explicación del uso de p og amas pa a consegui au oma iza las
dis in as a eas que un abajo de ap endizaje au omá ico conlle a
usando las lib e ías disponibles y los en o nos de p og amación que
acili an su uso. Además se explican las mé icas que se p e enden
ex ae .
Un úl imo capí ulo donde se examinan las mé icas ob enidas de los
algo i mos seleccionados y se ealiza una compa ación a endiendo a
cada una de ellas pa a pos e io men e llega a unas conclusiones
a endiendo a los alo es ob enidos.
10
2
Caso de uso y abajo a
ealiza
2.2. ¿De dónde p ocede el conjun o de da os?
El conjun o de da os seleccionado, de ipo de cobe u a o es al
p ocede (Blacka d Jock, Dean Denis, & Ande son, 1998) del depósi o de
Ap endizaje Au omá ico de la UC I ine, luga donde man ienen
ap oximadamen e ce ca de 500 conjun os de da os al se icio de la comunidad
del ap endizaje au omá ico.
Se necesi aba encon a un conjun o de da os que pe mi ie a lle a a
cabo el p oblema de una clasi icación y donde u ie a un conjun o lo
su icien emen e g ande pa a en ena los algo i mos, además de se una uen e
iable que nos pueda asegu a que los da os son co ec os y que no exis e
in o mación pe dida, algo que se obse a á en el Capí ulo 2.2.
Pa a la elección de los da os es adecuado ene en conside ación cuál
se á el obje i o del abajo y qué elemen os se quie en ene en cuen a pa a el
análisis a lle a a cabo. Pa a pode ealiza es e análisis se debe ene en
cuen a un conjun o de da os con un núme o de ejemplos signi ica i o, que nos
si a pa a modela nues os algo i mos.
Así, las ca ac e ís icas que buscamos son:
● Uso de almacenamien o mode ado. No podemos conside a aquellos
que ocupen del o den de Te aby es.
● Tiempo de cómpu o mode ado. Es o es in e esan e pa a la ex acción
de modelos a a és del uso de los dis in os algo i mos p e iamen e
11
es udiados y de donde pod emos ealiza el es udio y análisis de los
mismos a endiendo a su compo amien o con las mé icas
seleccionadas.
● Tipo de clasi icación. Podemos ene un ipo de clasi icación bina ia,
elección en e cie o o also, o mul iclase donde enemos 3 o más clases
a clasi ica . En es a ocasión es necesa io que es é en ocada a
mul iclase pa a obse a cómo los algo i mos hacen uso de la écnica
One- s-Res (Ri kin, Klau au, & O g, 2004) .
T as un análisis de dis in os conjun os de da os, su na u aleza, su
dis ibución y a endiendo a que sea un p oblema ipo clasi icación, se ha
decidido inalmen e la elección de un p oblema que se adecua y que esul a
in e esan e pa a nues o es udio, es e es el de la p edicción del ipo de cubie a
a bó ea usando solo a iables ca og á icas (Blacka d Jock e al., 1998)
Según se puede e en la in o mación del eposi o io, se obse an las
siguien es ca ac e ís icas:
Ilus ación 1. Me ada os del conjun o de da os seleccionado
Se obse a un conjun o de 581012 ins ancias, es un p oblema de ipo
clasi icación, con 54 a ibu os y que no exis en alo es pe didos, algo que
indica la iabilidad de los da os pa a así p ocede con con ianza en el es udio,
sin a ec a al compo amien o de los algo i mos.
La idea de es e ipo de clasi icación se basa en la p edicción del ipo de
cobe u a o es al, es deci , cual es el ipo de á bol más p edominan e en un
á ea, eniendo como in o mación a iables es ic amen e ca og á icas. Es e
ipo de clasi icación de cobe u a o es al la de e minó el á ea del Se icio
Fo es al de Es ados Unidos (USFS) pa a cuad ículas de 30 x 30 me os. Es os
da os ue on gua dados al y como se oma on, po lo que no han sido
ans o mados en una escala en el que odos o men pa e de un mismo ango,
además con ienen a ibu os en o ma bina ia pa a a iables cuali a i as
independien es como á eas sil es es o ipo de suelo, a iables que de i a on a
pa i de los da os ob enidos del US Geological Su ey y USFS. Es os da os
12
son impo an es ene los en cuen a, pues in luyen en los algo i mos en el
momen o de en ena los.
Los da os p o ienen de 4 á eas sil es es en el Bosque Nacional de
Roose el en el no e del es ado de Colo ado. Es as á eas ep esen an
bosques con un mínimo de cambios p o ocados po el homb e po lo que los
ipos de es as cubie as o es ales son ep esen a i os de p ocesos ecológicos
na u ales en luga de epoblaciones o cambios ealizados po el homb e.
Las 4 á eas sil es es se encuen an ep esen adas en el siguien e
mapa y donde se pueden encon a los siguien es ipos de cubie a a bó ea,
imágenes ob enidas del enlace
2
:
Ilus ación 2. Mapa dis ibución de las zonas del pa que
zona Cache La Poud e:
Ilus ación 3. Zona Cache La Poud e
2
ou builde
13
zona comanche peak
Ilus ación 4. Zona Comanche Peak
zona Neo a
Ilus ación 5. Zona Neo a
zona Rawah
Ilus ación 6. Zona Rawah
14
2.2. ¿Qué a ibu os iene el conjun o de da os?
Las ca ac e ís icas que iene el conjun o de da os seleccionado son:
● Al i ud: cuan i a i o, exp esado en me os ep esen ando la ele ación en
me os de cada ins ancia ecogida.
● Aspec o: cuan i a i o, exp esa el aspec o en g ados acimu que mues a
la ins ancia ecogida. Es e es un da o usado pa a ca og a ia .
● Somb a: cuan i a i o, exp esa los g ados de somb a que p oyec a el
ejemplo donde se ha omado.
● Dis ancia ho izon al has a hid ología: cuan i a i o, exp esa en me os la
dis ancia ho izon al has a el ecu so hid ológico más ce cano.
● Dis ancia e ical has a hid ología: cuan i a i o, al igual que el an e io ,
pe o en es a ocasión exp esa en me os la dis ancia e ical.
● Dis ancia ho izon al has a ca e e as: cuan i a i o, e leja la dis ancia
ho izon al en me os has a la ca e e a más p óxima.
● Somb a a las 9 de la mañana: cuan i a i o, indica el índice de somb a en
el sols icio de e ano a las 9 de la mañana, un índice que a en el ango
de 0 has a 255.
● Somb a al mediodía: al igual que el an e io , pe o al mediodía.
● Somb a a las 3 de la a de: simila que el an e io , pe o en es a ocasión
alo omado a las 3 de la a de.
● Dis ancia ho izon al al pun o de uego más ce cano: cuan i a i o,
mues a la dis ancia ho izon al en me os a un posible pun o de uego.
● Á ea sil es e: 4 columnas bina ias de ipo cuali a i o pa a cada una de
las á eas sil es es que se a an en es e p oblema. 1 indica p esencia y
0 ausencia.
● Tipo de suelo: 40 columnas bina ias de ipo cuali a i o pa a indica el
ipo de suelo. 1 indica p esencia y 0 ausencia den o de 40 ipos de
suelos posibles.
● Tipo de cobe u a : 7 ipos de cobe u a a bó ea posibles pa a es e
es udio. Es de ipo en e o donde podemos ene alo es del 1 al 7. Es os
son los dis in os alo es que se quie en p edeci y en los que se cen a
el abajo pa a la ex acción de mé icas. Es os 7 alo es se ían los
dis in os ipos de cobe u a a bó ea p edominan e en el á ea del que se
han cogido los da os. Es os ipos son:
15
1. Sp uce/Fi
2. Lodgepole Pine
3. Ponde osa Pine
4. Co onwood/Willow
5. Aspen
6. Douglas- i
7. K ummholz
Las siguien es imágenes ep esen an cada uno de los ipos de cubie a a bó ea
que podemos encon a en las 4 á eas y que que emos p edeci con la
in o mación que enemos del conjun o de da os.
Ilus ación 7. 7 ipos de cobe u a a bó ea
2.2. ¿En qué a a consis i nues o abajo?
El obje i o de es e abajo es el de lle a a cabo el p ocesamien o de
un p oblema de ap endizaje au omá ico pa a clasi icación, el cual in oluc a
p ocesa los da os, en ena los algo i mos de clasi icación elegidos, ob ene
in o mación ele an e pa a almacena la y, pos e io men e, analiza la y
compa a la. Es a in o mación es ecopilada a a és de los co espondien es
módulos que se an a usa en las lib e ías del lenguaje de p og amación
escogido, en es e caso Py hon, y que se pod á sabe a pa i de ellas cómo
cada algo i mo de los que se ha analizado ealiza la clasi icación pa a el
conjun o de da os que se ha escogido.
De es a o ma, se pueden iden i ica los siguien es pasos una ez
escogido el conjun o de da os a a a , eniendo en cuen a que se quie e
obse a un p oblema de clasi icación, y que se desc ibe a con inuación:
2.2.1. Desca ga de los da os del eposi o io
Los da os es án disponibles en el eposi o io online que UCI iene
disponible pa a desca ga los. El que se quie e a a (p edicción del ipo de
16
cubie a a bó ea o es al) se puede encon a en el siguien e enlace:
h ps://a chi e.ics.uci.edu/ml/machine-lea ning-da abases/co ype/.
Una ez desca gados y descomp imidos se puede examina y
comp oba que es un a chi o con ex ensión sin o ma o, pe o que se puede
ab i con un edi o de ex o y pode comp oba el aspec o que iene la
in o mación. Así se obse a lo siguien e:
Ilus ación 8. Ejemplo de dis ibución de los da os
Se comp ueba que la in o mación es á al y como se desc ibe, donde cada ila
co esponde a cada ejemplo obse ado y sus espec i as columnas
co esponden a los a ibu os que deben ene pa a cada ejemplo. El úl imo
alo co esponde al ipo de cobe u a o es al al que pe enece cada ejemplo.
Pa a un mejo manejo de es os mismos e impo ación en el código pa a
su a amien o en sciki -lea n, se ha op ado po ene lo en o ma o con alo es
sepa ados po compa (CSV) y donde se ha incluido la cabece a con los í ulos
de cada a ibu o, algo que se i á pa a la desc ipción de los da os a
con inuación.
A pa i de aho a el manejo y ejecución de comandos pa a el
a amien o de los da os y obse ación del es ado en el que se encuen an se
ealiza á a a és de la aplicación Spyde
3
, un en o no desa ollado pa a
Py hon y que acili a el acceso a la in o mación así como la ejecución y
depu ación del p og ama desa ollado.
2.2.2. Es adís icas de los da os
Una ez impo ados los da os se ealiza una obse ación del es ado de
los mismos y de alle de sus es adís icas. Así, as impo a en la a iable ain
el conjun o de da os, se pueden lis a sus columnas con el comando
lis ( ain.columns. alues) y ob enemos los siguien es alo es:
3
h ps://www.spyde -ide.o g/
17
Ilus ación 9. Desc ipción de las columnas de los da os
Con el comando ain.desc ibe() se pod á ex ae in o mación de
cada columna, así como la suma o al, la media, la des iación es ánda , el
alo mínimo y el máximo en e o os da os. Po ejemplo, si la des iación
es ánda de una columna (a ibu o) es 0, quie e deci que no exis en
a iaciones, y po lo an o esa columna o a ibu o se puede elimina del
conjun o de da os, ya que es i ele an e, no in luye en la clasi icación. Se
obse a que odas las columnas ienen 581012 ejemplos, po lo que no exis e
in o mación pe dida.
La siguien e imagen si e de ejemplo de la salida del comando pa a los
a ibu os Ele a ion, Aspec y Slope.
Ele a ion
Aspec
Slope
coun
581012.00000
581012.00000
581012.00000
mean
2959.365301
155.656807
14.103704
s d
279.984734
111.913721
7.488242
min
1859.000000
0.000
0.000
25%
2809.000000
58
9
50%
2996
127
13
75%
3858
360
66
max
3858
360
66
18
2.2.3. In e acción de los da os
La in e acción con los da os es á elacionado con lle a a cabo una
se ie de acciones sob e los da os pa a así sabe plan ea el p oblema en sí y
ene la pa a diseña adecuadamen e el en enamien o de los algo i mos.
Un ejemplo de es o es comp oba la dis ibución de los da os
p opo cionados y sabe cuán os ejemplos se iene de cada clase. Con la
lib e ía Seabo n
4
, la cual se u iliza á pa a isualización es adís ica de da os
pos e io men e, se puede comp oba es o. Así se impo a en la a iable sns
dicha lib e ía y se ejecu a el siguien e comando :
sns.coun plo (da a= ain,x= ain['Co e _Type']), la cual
mues a la siguien e imagen:
Ilus ación 10. Dis ibución de los da os según clases
Se puede e que exis e una mayo ep esen ación del ipo 2 mien as
del ipo 4 es del que menos mues as se ienen. Es o se debe ene en cuen a,
pues en el conjun o de da os que se usa á pa a en ena los algo i mos debe
habe una ep esen ación de cada clase de la o ma más equi a i a posible,
algo que se sol en a á usando écnicas de alidación c uzada que se explica á
en el Capí ulo 4.
2.2.4. P epa ación de los da os
El conjun o de da os seleccionado se ob iene con una se ie de a ibu os o
ca ac e ís icas numé icas disponibles al y como se oma on en su momen o,
es lo que se puede de ini como los “da os en c udo”. Po ello es necesa io
lle a a cabo una isualización de los mismos y adap a los, pa a así pode
4
h ps://seabo n.pyda a.o g/
25
basa la explicación del Pe cep ón Simple que el psicólogo Rosenbla
desa olló basándose en o os concep os.
3.3.1.1. Pe cep ón Simple
Se puede deci que el Pe cep ón es un modelo de neu ona simple. En
el año 1958 el psicólogo F ank Rosenbla (Rosenbla , 1958) desa olló es e
modelo de neu ona basándose en el p esen ado po McCulloch y Pi s
(McCulloch & Pi s, 1943) y en una egla del ap endizaje que se basaba en la
co ección del e o . A los cien í icos de aquella época les llamó la a ención la
capacidad que enía es e modelo pa a ap ende pa ones y, po lo an o, usa lo
pa a clasi icación a endiendo a esos pa ones. Es e ipo de neu ona, el
pe cep ón, es á basado en una can idad de senso es, o ambién se pueden
llama en adas, desde donde ecibe los da os a econoce . También se
encuen a una neu ona de salida que, dependiendo del alo ob enido, indica si
el da o con las ca ac e ís icas in oducidas pe enece a una clase u o a.
Pa a pode en ende en que consis e el algo i mo del Pe cep ón
simple, es necesa io ambién en ende las unciones en las que se basa pa a
pode lle a a cabo esa clasi icación de da os, basadas en el concep o de
Pe cep ón simple.
Se supone que enemos la unción de Rn en {-1, 1}, a la que le
podemos aplica un pa ón de en ada x =(x1,x2,...,xn)T ∈ Rn y donde end emos
una salida deseada z ∈ {-1, 1}, o lo que es lo mismo, (x)= z.
Dicho pa ón de en ada, es lo que se a a conside a como los
a ibu os que cada da o del conjun o de da os iene y que se le pasa a la
unción p e iamen e mencionada. Al ene un núme o de pa ones de en ada
al cual que emos lle a acabo la clasi icación, end íamos la siguien e elación
{x1, z1}, {x2, z2}....{xp, zp}, donde xi es el pa ón de en ada i ∈ Rn y z = (xi).
Es a unción lo que hace es una pa ición del conjun o de en ada en
dos espacios, lo que se dice una clasi icación bina ia. Po una pa e se end ían
aquellos pa ones cuya salida da +1 y po o o lado aquellos que da como
salida -1. Es o indica que la unción p e iamen e comen ada es capaz de
dis ingui en e dos clases.
26
El siguien e paso se ía el de cons ui un modelo que cumpla con la
unción p e iamen e mencionada. Pa a ello amos a pa i de una unidad de
p oceso bipola la cual cumple la siguien e unción:
{
}
Aquí se iene que los pa áme os wi son los llamados pesos sináp icos.
Es os pesos suponen la impo ancia que le amos a da a cada ca ac e ís ica o
alo de en ada. Po o o lado, se encuen a la suma ponde ada que se
llama á po encial sináp ico y inalmen e encon amos el umb al que es el
símbolo . Si la salida de dicha unción es 1 en onces se dice que es á ac i a y
en caso con a io se á -1, o que es á inac i a. En la siguien e ilus ación se
mues a cómo unciona es e modelo explicado:
Ilus ación 11. Ejemplo de Pe cep ón
h ps://es.wikipedia.o g/wiki/Pe cep %C3%B3n#/media/File:Pe cep %C3%B3n_5_unidades.s g
Pe o, ¿cuál es el alo inicial de los pesos sináp icos y el umb al?. Es o
es algo que se ealiza a a és de un p oceso adap a i o con unos alo es
iniciales alea o ios y que se i án modi icando según ob enga o no la salida
deseada en el en enamien o. Dicha modi icación es la que se conoce como
Regla de ap endizaje del Pe cep ón Simple (Chak a e y, Sahoo, & Maha o,
2019).
3.3.1.2. Pe cep ón Mul icapa
Se puede deci que el Pe cep ón mul icapa es una gene alización del
Pe cep ón simple y el cual su gió como consecuencia de las limi aciones que
27
enía a la ho a de clasi ica conjun os de da os que no son linealmen e
sepa ables. En su momen o, Minsky y Pape (Mul icapa, 1969) ue on capaces
de demos a en el año 1969 que con la combinación de a ios Pe cep ones
simples, usándolos en capas ocul as, pod ían soluciona el p oblema de
clasi icación pa a aquellos conjun os que no son linealmen e sepa ables. Sin
emba go, se encon a on con el p oblema de que la egla del pe cep ón simple
no es posible aplica la a es e p oblema, al exis i dichas capas ocul as que se
han comen ado. A pesa de es o, la idea de combina a ios Pe cep ones
simples si ió de ayuda pa a los es udios ealizados po Rummelha , Hin on y
Williams cuando en 1986 (Rumelha , Hin on, & Williams, 1986) p esen a on
una o ma de e o-p opagación del e o que ha come ido la ed y de cómo
adap a los pesos sináp icos a a és de una egla. Es a egla es la conocida
como egla del a o de e o-p opagación.
La a qui ec u a de un Pe cep ón mul icapa (Mul icapa, 1969), como su
nomb e indica, se basa en una disposición de sus neu onas en a ios ni eles o
capas. Es a a qui ec u a es una de ed de alimen ación hacia adelan e
( eed o wa d) y en la cual se encon a á una capa de en ada con un núme o,
dependiendo de la can idad de ca ac e ís icas de nues o conjun o de da os,
o a capa de salida, que se án los dis in os ipos a clasi ica , y un núme o
de e minado de capas in e medias de p oceso, que se pueden llama ocul as,
ya que no exis e conexión con el ex e io . El papel que desempeña la capa
ocul a o in e media es la de una p oyección de los pa ones de en ada en un
cubo cuya dimensión iene dada po el núme o de unidades de la capa ocul a.
Las unidades de salidas es án conec adas sólo con la úl ima capa
ocul a. Con es e ipo de ed lo que se p e ende es es ablece una elación en e
un conjun o de en ada y o o de salida, así enemos la siguien e elación:
(x1,x2,x3...xn)∈ Rn ⇢ (y1,y2,y3….ym)∈ Rm. De es a o ma se pa e de un conjun o
p de pa ones de en enamien o donde sabemos que pa a el pa ón de en ada
(xk1,xk2,...xkn) le co esponde la salida (yk1, yk2,..ykm) con k =1,2,..p. En la
siguien e igu a se mues a cómo se ía una ep esen ación de es e ipo de ed
neu onal:
28
Ilus ación 12. Es uc u a de una ed neu onal
h ps://www.ap endemachinelea ning.com/ap endizaje-p o undo-una-guia- apida/
Función de ed neu onal mul icapa
El p ocesamien o que ealiza es e ipo de ed neu onal pa a pode ex ae
la salida yi suponiendo una ed con una sola capa ocul a se encuen a de la
siguien e mane a:
yi= g1(∑
)= g1(∑ ∑
Aquí se iene que wij es el peso sináp ico de la conexión en e la unidad
de salida i y la unidad de p oceso ocul a j. L se ía el núme o de unidades de
p oceso en la capa ocul a; g1 se ía la unción de ans e encia pa a las
unidades de p oceso de la capa de salida, las cuales pueden se la unción
iden idad, la angen e hipe bólica o una unción logís ica; j es el peso sináp ico
que conec a la unidad de p oceso j de la capa ocul a con la en ada . Po
úl imo, enemos la unción g2 que es la unción de ans e encia de las unidades
de p oceso de la capa ocul a, las cuales ambién pueden se del ipo
mencionado p e iamen e pa a las unidades de p oceso de la capa de salida,
iden idad, angen e hipe bólica y logís ica. Los pesos sináp icos asociados a
cada en ada son ambién necesa ios iden i ica pa a el inicio de la ed
neu onal.
3.4. Ap endizaje au omá ico con sciki -lea n
Exis en nume osos lenguajes de p og amación que se pueden u iliza en la
ama del ap endizaje au omá ico. En e ellos podemos encon a Py hon, el
más usado y conocido den o de la comunidad de las ciencias de los da os. En
29
él exis en biblio ecas de ácil uso e in ui i as que pueden ayuda al
p ocesamien o, isualización y manejo de conjun os de da os, los p o agonis as
en los algo i mos de ap endizaje au omá ico. Como ejemplo son las lib e ías
NumPy y SciPy, que es án disponibles sob e o as capas como Fo an o C,
pa a ealiza ope aciones ec o izadas de g an endimien o en a ays
mul idimensionales, el ipo de es uc u a de da os en el que se cen a es e
abajo.
Una en aja que pe mi e el desa ollo en Py hon es el de pode modula iza
el código y po lo an o puede se eusado en u u os desa ollos.
Exis en g an can idad de biblio ecas disponibles pa a usa en Py hon. En el
abajo que concie ne se a a basa en aquellas que si an de uso pa a
ap endizaje au omá ico. De en e ellas se oma á de e e encia a la de Sciki -
lea n (Ped egosa e al., 2012), una de las biblio ecas de lib e uso de
ap endizaje au omá ico más u ilizadas y popula es en el día de hoy pa a
ap endizaje au omá ico.
Se pod ía deci que sciki -lea n es como una caja de he amien as
o ien ada a su uso en Py hon y pensada pa a se u ilizada pa a la mine ía de
da os y, lo que comúnmen e se conoce como ciencias de los da os, en ocada
al ap endizaje au omá ico.
La misma lib e ía dispone de una API de la cual se pueden usa los
módulos necesa ios pa a impo a en el p oyec o y ealiza las llamadas a los
mé odos eque idos. En el abajo que concie ne se ha á uso de los dis in os
módulos que dan acceso a los algo i mos que se usa án pa a ap endizaje
au omá ico en ocados en clasi icación, además de aquellos que se usa án pa a
la ex acción de mé icas.
La API posee muchas ca ac e ís icas in e esan es, las cuales se usa án
pa a lle a a cabo el p oceso de ap endizaje au omá ico y ex ae la
in o mación necesa ia (Bui inck e al., 2013).
3.4.2. Es ablece un p o ocolo de e aluación
Una ez conocido el obje i o a pe segui , hay que decidi cómo se a a
medi el p og eso pa a pe segui ese obje i o. Es aquí donde en a en juego el
é mino de alidación c uzada o ambién conocido como c oss- alida ion (A lo
30
& Celisse, 2009; Koha i, 1995). Es una écnica pa a e alua los esul ados de
un análisis es adís ico y pode ga an iza que son independien es de la
pa ición en e el conjun o de da os que se u iliza pa a en enamien o y el
conjun o de p ueba. Es u ilizado en en o nos donde el obje i o es la p edicción
y se quie e es ima cómo de p eciso es el modelo gene ado.
Es a écnica su gió pa a esol e el p oblema del mé odo de e ención
que consis e en di idi en dos subconjun os los da os con los que con amos,
ealiza el en enamien o con uno de ellos que se llama “Conjun o de
en enamien o” y alida el análisis con el o o, llamado “Conjun o de p ueba”.
Lo no mal es di idi el conjun o de da os en un 70% pa a
en enamien o y un 30% pa a p ueba o ambién un 80/20, aunque es e a io
debe se conside ado dependiendo del amaño de nues o conjun o de da os.
Ilus ación 13. Validación c uzada
El p oblema de es a écnica es que el modelo que se gene a solo se
ajus a al conjun o de da os de en enamien o y a pa i de es o calcula los
alo es de salida pa a el conjun o de da os de p ueba. Suele se muy ápido
pe o no es del odo iable po que es algo que depende cómo es én
posicionados los da os. Si los da os es án o denados y en ese conjun o de
en enamien o que se ha c eado solo hay in o mación 4 clases de 7 posibles, el
modelo que a a gene a se á muy p eciso pa a esas 4, pe o pa a las 3
es an es no iene in o mación y po lo an o no sab á como clasi ica los.
Es adecuado que exis a una dis ibución equi a i a de cada clase en
cada conjun o, pa a que así pueda en ena odos los pa ones pa a cada ipo y
pueda encon a un modelo gene al pa a odo el conjun o de da os. Es aquí
donde la alidación c uzada en a en juego.
31
El módulo model_selec ion del paque e sciki -lea n p o ee de
dis in os ipos de alidación c uzada. Pe mi i án lle a a cabo es a di isión del
conjun o de da os pa a p ocede a su en enamien o y pos e io es eo pa a la
ex acción de las mé icas y e alua el compo amien o que ha enido cada
algo i mo o écnica. En sciki -lea n se usa á el ipo S a i iedShu leSpli que se
enca ga de conse a el po cen aje de mues as de cada clase pa a cada uno
de los pliegues en los que se di ide el conjun o de en enamien o.
3.5. Ap endizaje au omá ico con Tenso Flow
3.5.1. ¿Qué es?
Tenso Flow (Abadi e al., 2016) es un sis ema de ap endizaje
au omá ico que unciona en en o nos a g an escala y de o ma he e ogénea. Es
una lib e ía de código abie o pa a cálculo numé ico y que usa como o ma de
p og amación g a os de lujo de da os. Nace del abajo de Google B ain, que
es un g upo de in es igado es e ingenie os dedicados a la In eligencia A i icial
y que en 2011 desa olla on Dis Belie , llamado el p edeceso de Tenso Flow.
En 2017 Google libe ó la p ime a e sión de es e código con mejo as, como el
endimien o con el uso de GPU´s. El código que Google libe ó es como
so wa e lib e bajo licencia Apache 2 y po lo an o una comunidad muy ex ensa
es á colabo ando pa a mejo a lo e implemen a nue as ca ac e ís icas.
Es e sis ema de ap endizaje au omá ico es hoy en día más usado de lo
que c eemos, así po ejemplo se encuen a en las espues as au omá icas que
GMAIL o ece pa a los co eos o po ejemplo la amosa aplicación pa a aduci
Google T ansla e.
El mo i o de usa la palab a Tenso Flow iene de la p incipal es uc u a
de da os que con o ma es a lib e ía, y que son los “ enso es”, y de i a de las
ope aciones que las edes neu onales ealizan sob e a ays mul idimensionales
de da os. Al es a basado en g a os, los nodos en el g a o ep esen an
ope aciones ma emá icas, y po o o lado, las conexiones del g a o ep esen an
los conjun os de da os mul idimensionales, llamados enso es. Un enso es un
conjun o de da os p imi i os, suponiendo núme os lo an es o núme os en e os,
32
o ganizados en un a ay de 1 o N dimensiones, el ango del enso se ía el
núme o de dimensiones en las que se compone la es uc u a. Es as es uc u as
de da os son las que se an a usa pa a hace que luyan los da os en e las
dis in as capas de una ed neu onal. Así se ealiza án las ope aciones
necesa ias pa a lle a a cabo el ajus e necesa io y en ena la ed pa a
clasi icación.
3.5.2. ¿Cómo unciona?
Tenso Flow usa g a os de lujo de da os pa a ep esen a la
compu ación, en un es ado compa ido, y las ope aciones que cambian dicho
es ado. De lo que se enca ga es de mapea los nodos de un lujo de da os a
a és de muchos equipos que es án en clús e y den o de muchos
disposi i os pa a ealiza compu ación, aquí se pueden inclui CPU con
mul ico es, unidades dedicadas exclusi amen e a GPU pa a p ocesamien o
g á ico e incluso disposi i os modi icados exclusi amen e pa a unciona con
Tenso Flow conocidos como Tenso P ocessing Uni s o TPU´s.
Tenso Flow se enca ga de p opo ciona es o al p og amado a a és
del lenguaje de p og amación Py hon. Al in y al cabo los nodos y los enso es
son obje os de Py hon, y po o o lado, las aplicaciones de Tenso Flow son en
sí las mismas aplicaciones de Py hon. Sin emba go, las ope aciones
ma emá icas que equie en es os p ocesamien os no se ealizan en Py hon.
Las biblio ecas a las que se e e encian pa a ealiza dichas ope aciones
ma emá icas es án esc i as en lenguaje C++ de al o endimien o. Py hon solo
se enca ga de di igi el á ico en e las dis in as piezas y lo que hace es
p opo ciona la abs acción de p og amación de al o ni el necesa ia pa a
conec a las.
Tenso Flow se enca ga de usa e icien emen e g an can idad de
se ido es con habili ación pa a usa GPU´s pa a un en enamien o ápido, y se
enca ga de ejecu a modelos ya en enados y ajus ados pa a que se ejecu en
en g an can idad de se ido es. Los nodos en el g a o los llama “ops”, el cual
puede oma ce o o más enso es y que desempeña una ope ación
compu acional que da luga a ce o o más enso es.
33
Las aplicaciones que Tenso Flow pe mi e son a ias y es que se puede
ejecu a en la mayo ía de des inos que necesi emos con enien e, ya sea una
máquina local, un clús e en la nube, un disposi i o con iOS o And oid e incluso
cualquie CPU o GPU. Los modelos esul an es que c eemos pod emos
gua da los y se impo ados en cualquie disposi i o donde se usa án pa a
ealiza p edicciones.
El bene icio que o ece pa a el ap endizaje au omá ico es la posibilidad
de abs acción. En ez de ene que lle a a cabo la implemen ación de los
algo i mos o sabe cómo debe conec a el lujo de los da os de una unción en
o a, simplemen e iene que cen a se en la lógica de la aplicación.
3.5.3. Uso de la lib e ía Ke as
Pa a implemen a una ed neu onal en Tenso Flow se a a u iliza la
lib e ía pa a ap endizaje p o undo (deep lea ning) Ke as
5
. Es a lib e ía es una
API pa a edes neu onales y que pe mi e ejecu a se en a ias he amien as de
ap endizaje au omá ico, una de ellas es Tenso Flow, que es nues o obje i o.
Como p incipales ca ac e ís icas podemos des aca :
Facilidad de uso: es á pensado pa a que su uso sea lo más
sencillo posible, con el mínimo de acciones eque idas po el
usua io y con una API simple y consis en e.
Fácilmen e ex ensible: se pueden añadi nue os módulos como
unciones y clases que nos pe mi e accede a más ejemplos de
modelos.
Funciona con Py hon: és a es una ca ac e ís ica p incipal ya que
el abajo se cen a en el uso de las dis in as lib e ías basadas
en es e lenguaje de p og amación.
3.5.5. Uso de Google Colabo a o y
Colabo a o y es una he amien a de in es igación pa a la educación y
la explo ación del ap endizaje au omá ico, en un en o no de bloc de no as de
Jupy e No ebook y sin necesidad de con igu ación, g a ui o debido a que es á
5
h ps://ke as.io/
34
pensado como p oyec o de in es igación. Pe mi e esc ibi nues o código,
gua da lo y compa i lo como si ue a un documen o de Google D i e.
El mo i o de usa es e en o no es po el uso de la po encia de cómpu o
que puede da un en o no con capacidad de uso de GPU (nVidia Tesla K80
6
).
El código se ejecu a en una máquina i ual exclusi a pa a nues a cuen a y
que se ecicla cuando se ha dejado de usa du an e un iempo p olongado,
además de una ida ú il máxima que de e mina el sis ema, 12 ho as en uso y
90 minu os si es á ocioso. Es e en o no en la nube pe mi e usa es as
máquinas de o ma o almen e g a ui a y nos ayuda á a saca mejo pa ido del
p ocesamien o pa a Tenso Flow pa a la mul iplicación de ma ices en edes
neu onales. Al no necesi a de con igu ación end emos un en o no lis o y con
las lib e ías necesa ias sin ene que pe de iempo en hace lo noso os
mismos en nues a máquina, con los p oblemas de con igu ación e
incompa ibilidades que podamos encon a nos.
3.6. Mé icas a ex ae
Es necesa io sabe con ola algo, que debe se obse able, y pa a
consegui éxi o necesi amos ambién sabe qué es lo que conside amos éxi o.
De los algo i mos de clasi icación se pueden ex ae mé icas que nos
ayuda án a sabe en qué can idad ese po cen aje lo hemos alcanzado, pa a
ello se usan mé icas de e aluación como p ecisión, exac i ud o ecupe ación,
aquellas que nos dicen como de buenas son las p edicciones del algo i mo
en enado.
Las mé icas son una pa e undamen al de es e abajo, an o pa a la
lib e ía de sciki -lea n como pa a TensoFlow se pod án hace uso de las
mismas y se in oca án desde el mismo módulo (sklea n.me ics) que el
paque e sciki -lea n pe mi e pa a ello.
Pa a en ende las dis in as mé icas que se an a plan ea a
con inuación es necesa io en ende p e iamen e de donde se ex aen las
mismas. Pa a ello se p ocede a explica lo que es la ma iz de con usión
6
h ps://www.n idia.com/es-es/da a-cen e / esla-k80/
41
da os con el co espondien e mé odo pd. ead_cs . Pos e io men e se
di ide el conjun o en dos subconjun os, uno con odos los a ibu os y
o o con las e ique as que le co esponde a cada uno. Así es á de inido
el siguien e mé odo:
de p ep ocess(da ase ):
labels = da ase .Co e _Type. alues
da ase = da ase .d op(['Co e _Type'], axis=1)
e u n da ase , labels
Asi, la llamada a es e mé odo desde el p og ama p incipal queda ía de
la siguien e o ma:
ain = pd. ead_cs (' ees.cs ')
4. Validación c uzada pa a pode e alua : Como se indicó en el Capí ulo
4, es necesa io pode medi el p og eso de cómo se consigue el obje i o
con las mé icas que se quie en ex ae , algo que la alidación c uzada
ayuda a ello. Así se ealiza en los siguien es pasos en el p og ama
p incipal:
o Se de ine el ipo de c oss alida ion que se quie e hace donde se
indica el núme o de pliegues (10) y cuan a can idad de da os se
a a usa pa a el es eo, en es e caso un 30% ( es _size=0.3), y
po lo an o el 70% se usa á pa a en enamien o:
sss = S a i iedShu leSpli (10, es _size=0.3, andom_s a e=0)
○ Se di ide el conjun o de da os en el siguien e código:
o ain_index, es _index in sss.spli (X, y):
X_ ain,
X_ es =X. alues[ ain_index], X. alues[ es _index]
y_ ain, y_ es = y[ ain_index], y[ es _index]
Donde se iene en X_ ain el conjun o de en enamien o con los
a ibu os, X_ es el conjun o de es eo con sus a ibu os, y_ ain
las e ique as co espondien es al conjun o de en enamien o y po
úl imo en la a iable y_ es es án las e ique as co espondien es
al conjun o de es eo. Todas es as a iables y sus da os se
u iliza án a pos e io i pa a, po un lado en ena y po o o e alua
con el conjun o de es .
Debido a que los da os no es án en la misma escala, se ha
de inido un mé odo pa a es anda iza los 10 p ime os a ibu os, ya
42
que los es an es solo oman alo es bina ios, 0 ó 1. Así se ealiza
un en enamien o sin es anda iza los y pos e io men e
es anda izados, pa a e cómo a ec a al endimien o de los
algo i mos seleccionados. Es o se ealiza en el mé odo
s anda dize ( ain)
5. E aluación y p edicción: Es a es o a de las ases que se es udió en el
Capí ulo 2, y undamen al pa a pode ealiza la e aluación de cada
algo i mo, pues p e iamen e hay que en ena los, y así consigan ene
un modelo de como los da os siguen un pa ón. Pa a es o se ha de inido
una unción que se in oca á desde el p og ama p incipal y acili a el
p ocesamien o de los da os. Desde la misma se en enan los algo i mos
que se pasan po a gumen o (lis a de algo i mos que que emos
en ena ), se ex aen las mé icas, además del iempo empleado pa a
en ena , y se almacena odo en una es uc u a de da os ipo abla, que
se u iliza á pa a gua da en o ma o CSV, la cual se i á pa a
pos e io men e mos a las g á icas que ayuda án a isualiza las
mé icas ob enidas. El mé odo pa a el en enamien o de los algo i mos
es el siguien e:
de compa e_classi ie s(classi ie s, X_ ain, y_ ain,
X_ es , y_ es , con _ma ix=False):
Donde se pasa en el a gumen o classi ie s una lis a con los
clasi icado es que se quie en en ena y e alua . Se i á i e ando pa a
en ena y e alua con el conjun o de p ueba pa a ex ae las mé icas.
Pa a ello, p ime o se ha impo ado:
om sklea n.neu al_ne wo k impo MLPClassi ie
Y se ha ins anciado de iniendo además sus hipe -pa áme os en las
siguien es líneas:
MLPClassi ie (wa m_s a =False, shu le=T ue,
nes e o s_momen um=T ue, hidden_laye _sizes=(1024, 512, 256, 128),
alida ion_ ac ion=0.333,
sol e = 'adam',
lea ning_ a e='cons an ', max_i e =162,
ba ch_size=200, andom_s a e=1,
momen um=0.11593,
ol=0.081977,
43
alpha=0.01, ac i a ion=' elu',
ea ly_s opping=False)
En el sc ip exis en ins anciaciones de o as écnicas y algo i mos que
ambién se en ena án y que se usa án pa a oma e e encias en las
g á icas compa a i as.
6. Visualización y análisis de los da os: Pa a la úl ima ase, la de
isualización de los da os y análisis de los mismos, se ha desa ollado
un mé odo que pe mi e mos a los da os en las g á icas que se han
seleccionado desde el paque e Seabo n. Así, desde el p og ama
p incipal, se impo a p ime o la abla con las mé icas que se gua da on
en o ma o CSV en el paso p e io, pa a pasa la como a gumen o al
mé odo de isualización de g á icas. Es e mé odo es el siguien e:
de show_g aphs( able)
El cual se llama á desde el p og ama p incipal de la siguien e o ma:
g aph = pd. ead_cs ('mul ilaye .cs ')
show_g aphs(g aph)
En el a chi o „mul ilaye .cs ‟ se iene la in o mación de cada algo i mo
que
hemos en enado y del que se han sacado sus mé icas.
Los o os algo i mos seleccionados pa a usa de la lib e ía sciki -lea n y
que se i án pa a análisis y compa ación son:
Pe cep ón Simple: es el ipo en el que se basa el pe cep ón
mul icapa pa a simula una ed neu onal. (Rosenbla , 1958)
K Vecinos Ce canos (KNN) : es uno de los más conocidos pa a
el econocimien o de pa ones y uno de los más áciles de
implemen a . Apenas usa da os pa a en enamien o ya que la
clasi icación se basa en la búsqueda de ca ac e ís icas
simila es. (O. Su on, 2012)
A boles de decisión: sus eglas pa a clasi icación son
ácilmen e comp ensibles pa a el se humano y ambién son
bas an e e icien es. Se pod á comp oba una ez ob engamos
las mé icas. (Cha & Tappe , 2009)
44
Conjun o: uso de la combinación de a ios clasi icado es pa a
cons ui uno más obus o y p eciso. (Geu s, E ns , & Wehenkel,
2006)
Tenso Flow
El código es á disponible pa a su desca ga en el eposi o io público en
Gi hub. El enlace pa a accede a él es el siguien e:
h ps://gi hub.com/juza u18/ o es _co e _Tenso Flow
Pa a Tenso Flow se ha ealizado un p oceso pa ecido pa a el
p ocesamien o de los da os y en enamien o de los modelos que amos a usa
con es a he amien a, en es e caso es el de da uso a la lib e ía Ke as pa a
c ea un modelo de ed neu onal, y pos e io men e se ajus e al conjun o de
da os que hemos seleccionado.
Los pasos omados en el código ealizado en Google Colabo a o y
haciendo uso de es as lib e ías e leja lo siguien e:
1. Impo ación de las lib e ías co espondien es: Impo amos las
lib e ías que amos a usa en el p og ama, pandas, scicik -lea n,
numpy…e c, pa a pode u iliza las en nues o p og ama.
2. Impo ación de los da os: Impo amos los da os di ec amen e desde el
eposi o io. Es o se ealiza en la siguien e línea:
!wge h ps://a chi e.ics.uci.edu/ml/machine-lea ning-
da abases/co ype/co ype.da a.gz
!gzip -d "co ype.da a.gz"
3. P epa ación de los da os: En es a pa e se ealiza el p oceso pa a la
c eación del conjun o de da os que se a a u iliza .
o Pa a ello se impo a la in o mación en una es uc u a de da os
pandas: d = pd. ead_cs ("co ype.da a", heade =None)
o Se de inen las cons an es necesa ias, con el núme o de clases
que amos a clasi ica , el amaño del conjun o de en enamien o,
el de es eo y po úl imo el de alidación, que o man pa e de la
45
alidación c uzada que se explicó en el Capí ulo 3 :
N_CLASSES = 7
TRAIN_SIZE = in (0.7 * d .shape[0])
TEST_SIZE = in (0.15 * d .shape[0])
VALIDATION_SIZE = in (0.15 * d .shape[0])
o Se es anda izan los alo es numé icos de los p ime os 10
a ibu os, ya que los siguien es son odos de ipo 0 ó 1 y no es
necesa io es anda iza los. Se la unción que hemos de inido
s anda dize y que hemos usado ambién en la pa e de sciki -
lea n:
ea u es = s anda dize(d .iloc[:, 0:54])
labels = d .iloc[:, 54:]. alues
4. Validación c uzada pa a pode e alua : Debido a que Tenso Flow no
posee mé odos pa a la alidación c uzada, es algo que se p og ama á
en el código que se es á ealizando pa a es a pa e. Así se iene:
o Se de inen los dis in os conjun os que se usa án pa a alidación
c uzada:
X_ ain, Y_ ain = ea u es[:TRAIN_SIZE], y_one_ho [:TRAIN_SIZE]
X_ es , Y_ es = ea u es[TRAIN_SIZE: TRAIN_SIZE + TEST_SIZE],
y_one_ho [TRAIN_SIZE: TRAIN_SIZE + TEST_SIZE]
X_ alida ion, Y_ alida ion = ea u es[TRAIN_SIZE + TEST_SIZE : ],
y_one_ho [TRAIN_SIZE + TEST_SIZE : ]
o Se c ean los enso es necesa ios pa a su en enamien o en
Tenso Flow:
da ase _ ain = .da a.Da ase . om_ enso _slices((X_ ain,
Y_ ain)).ba ch(256).shu le(bu e _size=1000)
da ase _ es = .da a.Da ase . om_ enso _slices((X_ es ,
Y_ es )).ba ch(256)
da ase _ alida ion = .da a.Da ase . om_ enso _slices((X_ alida ion,
Y_ alida ion)).ba ch(256)
5. E aluación y p edicción: Se selecciona el algo i mo, en es e caso se á
el uso de ke as pa a Tenso Flow y que nos enca gamos de de ini en las
siguien es líneas:
Se de ine el modelo, con :
model = .ke as.Sequen ial([
laye s.Dense(1024, ac i a ion = ' elu'),
46
laye s.Dense(512, ac i a ion = ' elu'),
laye s.Dense(256, ac i a ion = ' elu'),
laye s.Dense(128, ac i a ion = ' elu'),
laye s.Dense(N_CLASSES, ac i a ion = 'so max'),
])
Se compila:
model.compile(op imize = . ain.AdamOp imize (0.001),
loss='ca ego ical_c ossen opy',
me ics=['accu acy'])
Se en ena el modelo:
model. i (da ase _ ain, epochs = 10, alida ion_da a =
da ase _ alida ion)
Una ez se iene el modelo, se p edicen los da os pa a el
conjun o de p ueba con el mé odo p edic , y así ex ae las
mé icas, al y como se hizo pa a la lib e ía sciki -lea n, y a pa i
de esas p edicciones se pueden ex ae las mé icas que hemos
comen ado en el Capí ulo 3, como po ejemplo la ecupe ación:
y_p ed = model.p edic (da ase _ es )
ec = ecall_sco e(Y_ es , y_p ed_one_ho )
6. Visualización y análisis: Pa a es o, una ez ex aído los mismos da os
que pa a sciki -lea n, se gua da án odos jun os en un mismo a chi o
CSV pa a impo a los y p ocede a la isualización de los mismos. Es o
es algo que se hace conjun amen e con los da os ecopilados de sciki -
lea n, con odos los da os ecopilados en un mismo a chi o.
47
5
Mé icas, compa a i a y
análisis
En es e capí ulo se mos a án las mé icas que se han ob enido de
cada algo i mo y donde se p ocede á a una e aluación de los mismos
indicando, según dichas mé icas, cuál de ellos ha enido mejo endimien o
pa a el conjun o de da os seleccionado. Se mos a á una g á ica de cada una
de las mé icas que se ha elegido y que se an a compa a , es as son:
exac i ud, ecupe ación, p ecisión, alo F, log loss y iempo pa a
en enamien o.
Los alo es se o dena án según el obje i o buscado, así po ejemplo,
pa a la exac i ud es mejo cuan o más ce ca del 100% es é, mien as que pa a
log loss lo mejo es que es é más ce ca del 0. Se mos a á en p ime esul ado
aquel algo i mo que ha conseguido mejo esul ado en cada una de las
mé icas.
Como ya se indicó en el Capí ulo 2, los da os se ob ienen al y como
ue on ecogidos, en b u o y donde cada a ibu o es á en una escala dis in a.
Po ello se a a ene en cuen a la es anda ización de los 10 p ime os a ibu os
pa a así consegui que es én en el ango [-1,1], los es an es a ibu os oman
alo es 0 ó 1, po lo que no son necesa ios ans o ma los. Es o es algo
impo an e a ene en cuen a pa a muchos algo i mos ya que se consigue da le
la misma impo ancia a odos los a ibu os y se e i a que el algo i mo des íe en
la búsqueda del modelo hacia a ibu os que ienen más peso po angos de
48
alo es más dispa es. Se comp oba á que és a es anda ización a ec a, an o
pa a mejo como pa a peo , a los algo i mos que se es udian, y es algo que se
e á en las g á icas que se mues an a con inuación.
P e iamen e, se mos a á en una abla los da os ob enidos de cada
algo i mo y donde se encon a án las siguien es columnas, al y como se
gua da on los da os en o ma o CSV, pa a su pos e io a amien o con la
lib e ía Seabo n, y que ep esen an las dis in as mé icas que hemos ex aído
pa a e alua cada uno de los algo i mos: Clasi icado , Ex (Exac i ud), P ec
(P ecisión), Rec (Recupe ación), F1 (Valo F), LL (Log Loss), Te(Tiempo
en enamien o).
A la ho a de sabe qué clasi icado ha endido mejo es necesa io ene
en cuen a a ias cosas, po ejemplo, si los da os con los que en enamos no
es án balanceados con una ep esen ación de odas las clases, no end emos
un alo eal de exac i ud. Es po ello que la alidación c uzada nos a a
ayuda a ene dicha ep esen ación en la mejo medida posible. O a mé ica a
ene en cuen a es la de Log Loss que se enca ga de penaliza aquellos allos
que el algo i mo ha come ido pa a un conjun o de p ueba, lo que buscamos es
un alo lo más ce cano al 0, que indica un meno núme o de e o es.
La ma iz de con usión es o a mé ica que ayuda a sabe cómo ha
clasi icado el algo i mo pa a un conjun o de p ueba y nos da una in o mación
ele an e pa a así sabe en cuales clases se equi oca más, algo que se i á
pa a e a ni el g á ico en una ma iz el núme o de ejemplos que ha clasi icado
pa a cada clase. Es as ma ices se mos a án pa a algunos algo i mos y así se
pueda hace una compa ación en e el mejo y el peo .
El iempo que a da el algo i mo en en ena pa a el conjun o de
en enamien o es algo que ambién se e á a con inuación, donde se
comp oba á como el uso de Tenso Flow con acele ación po GPU consigue
mejo a pa a en ena y consegui el modelo.
49
5.1. Valo es ob enidos
T as ealiza el en enamien o de los algo i mos y su e aluación con el
conjun o de p ueba se han ob enido los siguien es alo es:
Clasi icado
Ex(%)
P ec(%)
Rec(%)
Valo F(%)
LL
Te
KNN
96,72
96,71
96,72
96,71
0,13
5,87
Ex aT(s d)
93,96
93,96
93,96
93,96
0,26
15,79
TF(del a)
93,44
93,43
93,44
93,73
2,27
67,95
Ex aT
93,63
93,62
93,63
93,60
0,27
16,15
TF(ada)
93,10
93,08
93,10
93,35
2,38
66,67
DecisionT(s d)
93,19
93,19
93,19
93,19
2,35
5,65
DecisionT
93,14
93,15
93,14
93,15
2,37
7,47
TF( ms)
92,90
92,88
92,90
93,11
2,45
68,52
KNN(s d)
93,00
92,98
93,00
92,98
0,43
6,09
TF(sgd)
92,17
92,19
92,17
92,59
2,70
66,40
MLP(s d)
91,23
91,20
91,23
91,20
0,22
1052,17
TF(adam)
89,36
89,36
89,36
89,55
3,67
69,84
MLP
75,67
77,70
75,67
74,26
0,55
1270,74
Pe cep on(s d)
57,45
58,32
57,45
54,74
8,81
8,37
Pe cep on
49,26
50,58
49,26
33,34
14,40
11,48
TF(adamax)
36,57
13,38
36,57
19,44
21,91
69,63
TF(nadam)
36,57
13,38
36,57
19,44
21,91
85,44
En la an e io abla se mues an los da os ob enidos de las mé icas
que se han comen ado p e iamen e en el Capí ulo 3. En ella se han incluido
odos aquellos que han sido obje o de obse ación pa a es e abajo. Así
aquellos que son p ecedidos con “TF” es pa a indica donde se ha usado la
lib e ía de Tenso Flow y con cada uno de los op imizado es que se han
u ilizado pa a compa a , con los pa áme os po de ec o. Es os op imizado es:
Op imizado SGD : op imizado S ochas ic G adien Descen (R.
S. Su on & Ba o, 2015).
Op imizado RMS: op imizado RMSp op, el cual di ide el
g adien e a a és de una media de su magni ud ecien e.
Op imizado Adag ad
Op imizado Adadel a: una ex ensión más obus a de Adag ad
Op imizado Adam
Op imizado Adamax
Op imizado Nadam(Doza , n.d.)
50
El es o de algo i mos que se encuen an son los que se han
ins anciado usando la lib e ía de sciki -lea n. Se indican los alo es ob enidos
con los da os sin es anda iza y es anda izados, aquellos que ienen añadido
“s d”, pa a comp oba cómo a ec a.
La abla ha sido o denada omando como e e encia el alo F(%) ya
que se basa en la media ponde ada en e la p ecisión y la ecupe ación, dos
alo es que ambién se ienen en cuen a.
Se puede comp oba como el algo i mo KNN es el que ha ob enido
mejo esul ado con casi un 97% en alo F en el conjun o de da os de es eo,
algo bas an e bueno y que da bas an e iabilidad a la ho a de clasi ica .
Si a endemos a la es anda ización de los da os, se puede obse a
cómo hay algunos algo i mos que mejo an y o os no. Así po ejemplo pa a
KNN con los da os sin es anda iza se ob iene una Exac i ud de un 96,72%
mien as que si se es anda izan baja al 93%. Sin emba go, si se oma de
e e encia el Pe cep ón mul icapa (MLP) se puede obse a como con los
da os es anda izados mejo a un 15% en dicha exac i ud, algo a ene en cuen a
si omamos un conjun o de da os mucho más g ande.
57
P epa ación de los da os. Se ealizó un es udio pa a sabe cuál es la
dis ibución de los da os, y cuál debían ene , algo que se implemen ó en
los p og amas desa ollados an o pa a sciki -lea n como pa a Tenso Flow
con la co espondien e no malización de los mismos pa a que es u ie an en
la misma escala. Además se es udió la o ma de dis ibui adecuadamen e
los da os de en enamien o y de es eo pa a que la dis ibución de odas las
clases ue a la más equi a i a posible, y de es a o ma los algo i mos
ap endie an un modelo gene al pa a odo el conjun o de da os, algo que se
consiguió con el uso de c oss- alida ion y que en Tenso Flow se solucionó
con una mezcla de los mismos an es de p ocede al pa icionado.
Es udio y e aluación de los algo i mos en sciki -lea n. Se desa olló un
p og ama pa a lle a a cabo el p oceso de a amien o de los da os, uso de
c oss- alida ion, en enamien o de a ios algo i mos (con es udio especial
pa a edes neu onales), ex acción de mé icas y gua dado de las mismas
en o ma o CSV pa a su pos e io impo ación y isualización en g á icas.
Es udio y e aluación de Tenso Flow, su uso con ke as y
op imizado es. Se desa olló un p og ama pa a en ena y clasi ica el
mismo conjun o de da os. En es a ocasión haciendo uso de la lib e ía
Tenso Flow, donde se hizo uso exclusi o de endimien o g á ico GPU con el
en o no de desa ollo Google Colabo a o y. És e pe mi ió ex ae mé icas
pa a dis in os op imizado es que i e an y ajus an los pesos pa a una ed
neu onal c eada pa a clasi ica con la lib e ía ke as. Se obse ó que el
iempo de cómpu o es mucho meno que el uso de edes neu onales en
sciki-lea n, donde solo se usa compu ación CPU, de p opósi o más gene al
y sin op imización pa a el cálculo ma icial en el que se basan las edes
neu onales.
Ex acción de mé icas y isualización de g á icas. Una ez ealizado el
en enamien o de los algo i mos an o en sciki -lea n como Tenso Flow, se
ealizó una impo ación de los da os desde el a chi o CSV co espondien e
pa a así mos a las mé icas que se comen a on en el Capí ulo 3. Se
mos a on las g á icas co espondien es y se analiza on los esul ados
ob enidos en cada una de ellas.
58
Valo ación pe sonal
Du an e el desa ollo de es e abajo se ha podido comp oba el
uncionamien o del ap endizaje au omá ico en dos lib e ías que hacen uso de
es a ama de la in eligencia a i icial y cómo se ex aen dis in as mé icas
dependiendo de la écnica que se use. Dependiendo de cómo se “alimen e” al
algo i mo a la ho a de en ena lo, po ejemplo si los da os es án no malizados
en escala o no, se ha podido comp oba que el endimien o cambia.
Se ha podido comp oba como la elección de un algo i mo u o o puede
da luga a di e en e endimien o. Se ha obse ado que las edes neu onales
ienen un po encial impo an e y que, adecuadamen e implemen adas, pueden
usa se pa a clasi ica conjun os de da os g andes. Así se pueden oma como
e e encia a la ho a de oma decisiones o de p edeci da os, así encon amos
po ejemplo su uso pa a la p edicción de la quieb a banca ia a a és del uso
de edes neu onales (Se ano Cinca, 1993), o po ejemplo pa a la p edicción
del á ico (To es Al a ez, He nández, & Ped aza, 2011). Si con amos con
conjun os de da os muy g andes, el iempo de compu o necesa io pa a que la
ed clasi ique es impo an e, y po ello la opción de su implemen ación usando
Tenso Flow ayuda á a consegui el modelo 10 eces más ápido que si se
implemen a la misma ed neu onal con la lib e ía sciki -lea n pe o con cómpu o
en CPU, algo conside able a ene en cuen a.
El ap endizaje au omá ico es á muy p esen e en nues os días y se usa
en muchos campos. En la e a digi al en la que i imos es amos siendo
clasi icados con inuamen e. Un ejemplo podemos encon a lo en la
clasi icación que los bancos hacen del pe il de cada clien e pa a así sabe
cómo en oca las campañas de ma ke ing que les ayuda án a mejo éxi o en
ellas, así emos un ejemplo en la compe ición que el g upo Banco San ande
lanzó en el año 2018 en el po al Kaggle
7
. Es e ejemplo ambién se ha podido
e con el escándalo de Camb idge Analy ica
8
donde hace uso de ap endizaje
7
h ps://www.kaggle.com/c/san ande - alue-p edic ion-challenge/o e iew
8
h p:// hecon e sa ion.com/how-camb idge-analy icas- acebook- a ge ing-model- eally-
wo ked-acco ding- o- he-pe son-who-buil -i -94078
59
au omá ico pa a clasi ica la in o mación ecopilada a a és de encues as en
dis in as edes sociales y que ayudan a di ecciona una campaña polí ica.
Como esumen, no podemos da de lado es e ipo de in eligencia
a i icial pues es á más p esen e de lo que pensamos y que o ma pa e de
nues as idas. Adecuadamen e usada y adap ada a nues as necesidades el
ap endizaje au omá ico se á capaz de acili a cie as a eas que ayuden a
mejo a nues o día a día.
Fu u as mejo as
Las posibilidades que o ece el ap endizaje au omá ico son inmensas.
Siguiendo la línea de es e abajo, en ocado en edes neu onales, a
con inuación se desc iben algunas posibilidades que su con inuación nos
o ece.
En p ime luga , una de las posibilidades es la de compa a el
compo amien o y endimien o con los compe ido es de Tenso Flow, como
pueden se Py o ch
9
, CNTK (Mic oso Cogni i e Toolki )
10
o Apache MxNET
11
.
O a opción se ía la de comp oba el uncionamien o y endimien o de las
posibilidades que o ecen las g andes compañías en compu ación pa a
ap endizaje au omá ico, como pueden se Amazon AWS o Mic oso Azu e.
Debido a que Tenso Flow es á pensado en p ocesamien o g á ico, o a
de las posibilidades de mejo a se ía el uso de la lib e ía pa a sabe el
compo amien o que iene pa a clasi icación de imágenes, algo muy
demandado hoy en día po ejemplo pa a la in es igación e implan ación del
coche au ónomo (Boja ski e al., 2017).
O a posibilidad se ía la de ealiza una búsqueda exhaus i a de los
hipe pa áme os de los op imizado es en Tenso Flow, así consegui un mejo
ajus e y mayo con ianza en el clasi icado , algo que se puede ex apola a o o
ipo de p oblemas de clasi icación y conjun os de da os disponibles.
9
h ps://py o ch.o g/
10
h ps://gi hub.com/mic oso /CNTK
11
h ps://mxne .apache.o g/
60
Bibliog a ía
Abadi, M., Ba ham, P., Chen, J., Chen, Z., Da is, A., Dean, J., … Zheng, X.
(2016). Tenso Flow : A Sys em o La ge-Scale Machine Lea ning This
pape is included in he P oceedings o he Tenso Flow : A sys em o
la ge-scale machine lea ning.
Anu adha, B., & Reddy, V. C. V. (2008). ANN FOR CLASSIFICATION OF
CARDIAC ARRHYTHMIAS, 3(3), 1–6.
A lo , S., & Celisse, A. (2009). A su ey o c oss- alida ion p ocedu es o
model selec ion, 4, 40–79. h ps://doi.o g/10.1214/09-SS054
Awad, W. A., & ELseuo i, S. M. (2011). Machine Lea ning Me hods o Spam E-
Mail. In e na ional Jou nal o Compu e Science & In o ma ion Technology,
3(1), 173–184.
Balak ishnan, D., & Pu husse ypady, S. (2016). Mul ilaye pe cep ons o he
classi ica ion o b ain compu e in e ace da a. P oceedings o he IEEE
31s Annual No heas Bioenginee ing Con e ence, 2005., (No embe ),
118–119. h ps://doi.o g/10.1109/NEBC.2005.1431953
Blacka d Jock, A., Dean Denis, J., & Ande son, C. (1998). Co e Type
eposi o y. Re ie ed Oc obe 20, 2017, om
h ps://a chi e.ics.uci.edu/ml/da ase s/co e ype
Boja ski, M., Yo k, N., Ye es, P., Fi ne , B., Mulle , U., Cho omanaska, A., &
Jackel, L. (2017). Explaining How a Deep Neu al Ne wo k T ained wi h
End- o-End Lea ning S ee s a Ca , 1–8.
Bui inck, L., Louppe, G., Blondel, M., Ped egosa, F., Muelle , A., G isel, O., …
Va oquaux, G. (2013). API design o machine lea ning so wa e:
expe iences om he sciki -lea n p ojec , 1–15. Re ie ed om
h p://a xi .o g/abs/1309.0238
Cha, S., & Tappe , C. (2009). A Gene ic Algo i hm o Cons uc ing Compac
Bina y Decision T ees, 1, 1–13.
Chak a e y, S., Sahoo, D. M., & Maha o, N. R. (2019). Pe cep on Lea ning
Rule. In: Concep s o So Compu ing. Singapo e.
Chen, W. Y., Chen, S. H., & Lin, C. J. (1996). A speech ecogni ion me hod
based on he sequen ial mul i-laye pe cep ons. Neu al Ne wo ks, 9(4),
655–669. h ps://doi.o g/10.1016/0893-6080(95)00140-9
C uz, J. A., & Wisha , D. S. (2006). Applica ions o machine lea ning in cance
p edic ion and p ognosis. Cance In o ma ics, 2, 59–77.
h ps://doi.o g/10.1177/117693510600200030
Cuenca, D. (2017). Fil ado de SPAM en SMS median e algo i mos de
ap endizaje au omá ico, 109–117.
Daniel Smilko , Shan Ca e , A. K. (2017). Simula ion o Neu al Ne wo k using
Tenso low lib a y.
Dayan, P. (2009). Unsupe ised lea ning. The MIT Encyclopedia o he
Cogni i e Sciences, 1–7. h ps://doi.o g/10.1007/BF00993379
Doza , T. (n.d.). Inco po a ing Nes e o Momen um in o Adam.
Figini, S., Pa ia, U., Felice, V. S., Pa ia, I.-, & Maggi, M. (2014). Pe o mance o
c edi isk p edic ion models ia p ope loss unc ions, 64(Janua y).
Geu s, P., E ns , D., & Wehenkel, L. (2006). Ex emely andomized ees,
(June 2005). h ps://doi.o g/10.1007/s10994-006-6226-1
Ghah amani, Z. (2004). Unsupe ised Lea ning BT - Ad anced Lec u es on
Machine Lea ning. Ad anced Lec u es on Machine Lea ning, 3176(Chap e
61
5), 72–112. h ps://doi.o g/10.1007/978-3-540-28650-9_5
Ho mozi, H., Ho mozi, E., & Nohooji, H. R. (2012). The Classi ica ion o he
Applicable Machine Lea ning Me hods in Robo Manipula o s. In e na ional
Jou nal o Machine Lea ning and Compu ing, 2(5), 560–563.
h ps://doi.o g/10.7763/IJMLC.2012.V2.189
Koha i, R. (1995). A S udy o C oss-Valida ion and Boo s ap o Accu acy
Es ima ion and Model Selec ion. Appea s in he In e na ional Join
Con e ence on A icial In elligence (IJCAI), 5, 1–7.
h ps://doi.o g/10.1067/mod.2000.109031
Ko sian is, S. B. (2007). Supe ised Machine Lea ning: A Re iew o
Classi ica ion Techniques. In o ma ica, 31, 249–268.
h ps://doi.o g/10.1115/1.1559160
Kuma , S. S., & Du aipandian, N. (2013). A i icial Neu al Ne wo k Based
Me hod o Classi ica ion o Gene Exp ession Da a o Human Diseases
along wi h P i acy P ese ing Email : [email p o ec ed], 4(2), 722–
730.
McCulloch, W. S., & Pi s, W. (1943). A Logical Calculus o he Idea Immanen
in Ne ous Ac i i y. Bulle in o Ma hema ical Biophysics, 5, 115–133.
h ps://doi.o g/10.1007/BF02478259
Mul icapa, P. (1969). Pe cep on Mul icapa, 1–49. Re ie ed om
h p://bibing.us.es/p oyec os/ab ep oy/12166/ iche o/Volumen+1+-
+Memo ia+desc ip i a+del+p oyec o%252F3+-+Pe cep on+mul icapa.pd
Payá, Y. J., & Villalón, A. (2015). G ado en Ma emá ica Compu acional Redes
neu onales . Un modelo de clasi icación pa a la de ección de dominios
DNS maliciosos .
Ped egosa, F., Va oquaux, G., G am o , A., Michel, V., Thi ion, B., G isel, O.,
… Duchesnay, É. (2012). Sciki -lea n: Machine Lea ning in Py hon. Jou nal
o Machine Lea ning Resea ch, 12, 2825–2830.
h ps://doi.o g/10.1007/s13398-014-0173-7.2
Po alTic. (2017). Cada día se gene an 2.500 millones de GB de da os: IBM
c ea una pla a o ma pa a que las emp esas los ap o echen. Eu opaP ess.
Re ie ed om h ps://www.eu opap ess.es/po al ic/in e ne /no icia-cada-
dia-gene an-2500-millones-gb-da os-ibm-c ea-pla a o ma-emp esas-
ap o echen-20170323162319.h ml
Raschka, S. (2015). Py hon Machine Lea ning. Bangladesh Jou nal o Plan
Taxonomy (Vol. 22). h ps://doi.o g/10.1007/s13398-014-0173-7.2
Ri kin, R., Klau au, A., & O g, K. (2004). In De ense o One-Vs-All Classi ica ion.
Jou nal o Machine Lea ning Resea ch, 5, 101–141.
h ps://doi.o g/10.1007/BF00718004
Rosenbla , F. (1958). The pe cep on: A p obabilis ic model o in o ma ion
s o age and o ganiza ion in …. Psychological Re iew, 65(6), 386–408.
h ps://doi.o g/10.1037/h0042519
Rumelha , D. E., Hin on, G. E., & Williams, R. J. (1986). Lea ning
ep esen a ions by back-p opaga ing e o s. Na u e, 323, 533. Re ie ed
om h p://dx.doi.o g/10.1038/323533a0
San a, a. K., & Ch is y, C. J. (2012). Gene ic Algo i hm and Con usion Ma ix
o Documen Clus e ing. In e na ional Jou nal o Compu e Science, 9(1),
322–328. Re ie ed om h p://ijcsi.o g/pape s/IJCSI-9-1-2-322-328.pd
Schapi e, R. (2008). Machine Lea ning Algo i hms o Classi ica ion, 6.
h ps://doi.o g/10.13140/RG.2.1.2044.4003
Se ano Cinca, C. (1993). P edicción de la quieb a banca ia a a és del uso de
62
edes neu onales, XXIII, 153–176.
Su on, O. (2012). In oduc ion o k Nea es Neighbou Classi ica ion and
Condensed Nea es Neighbou Da a Reduc ion. In oduc ion o k Nea es
Neighbou Classi ica ion, 1–10.
Su on, R. S., & Ba o, A. G. (2015). Rein o cemen Lea ning : An In oduc ion.
To es Al a ez, N. S., He nández, C., & Ped aza, L. F. (2011). Redes
neu onales y p edicción de á ico, V(29), 90–97.