scieee Open visual document viewer

Comparación y análisis de métodos de clasificación con las bibliotecas scikit-learn y TensorFlow en Python

Zamorano Ruiz, Juan

Abstract

Hoy en día no podemos negar que vivimos rodeados de la generación de una gran cantidad de datos, más ahora que estamos en plena era digital y la mayoría de esta información se puede almacenar y procesar. Numerosas empresas buscan enfocar el uso de dicha información para sacar un beneficio a favor de los objetivos de su negocio y se ayudan de las herramientas adecuadas para llevar a cabo esta tarea. La rama de la Inteligencia Artificial denominada “Machine Learning” o, también conocido como aprendizaje automático, es aquella que permite a las máquinas aprender a través de los datos detectando patrones y ayudando a la toma de decisiones. Con esta rama de la inteligencia artificial lo que se pretende es dar uso al conocimiento de los datos históricos para poder llevar a cabo decisiones concretas en el futuro. Dentro del aprendizaje automático existen distintos tipos de problemas, dependiendo de su naturaleza y del objetivo buscado, así en este caso nos centraremos en aprendizaje supervisado para clasificación. Existen distintos algoritmos y técnicas matemáticas para poder llevar a cabo un problema de clasificación, donde una de las más usadas y conocidas es el de las redes neuronales. En este proyecto vamos a hacer uso de dos bibliotecas para aprendizaje automático, profundizando en redes neuronales , ambas diseñadas para su uso en Python: una de ellas es la biblioteca Scikit-learn para Machine Learning, y otra parte la biblioteca de código abierto TensorFlow. Se realizará una comparación y análisis del comportamiento de cada algoritmo y librería con distintas métricas en la predicción de 7 tipos de cubiertas forestales con el uso de variables cartográficas a través de distintos valores tomados en 4 áreas distintas del parque nacional de Roosevelt, en el norte del estado de Colorado.

Full text

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.