100% encontró este documento útil (1 voto)
177 vistas116 páginas

Manual Big Data

Manual de inicio a big data

Cargado por

Rafael Soriano
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
177 vistas116 páginas

Manual Big Data

Manual de inicio a big data

Cargado por

Rafael Soriano
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

PLAN DE FORMACIÓN GEPEX

BIG DATA
AF_15 2019
CONTENIDOS
Bloque 0: Introducción sucinta de los fundamentos matemáticos y
herramientas tecnológicas para el data science……………………………… 3

¿Qué es el data science?................................................................................... 3

¿Qué es un científico de datos?......................................................................... 3

¿Qué es Big data?.............................................................................................. 4

Big data y data science……………………………………………………………… 5

Las 3 V de Big data…………………………………………………………….…….. 6

Incapacidad de las arquitecturas habituales……………………………….……… 9

Soluciones Big data………………………………………………………………… 11

Lenguajes para un científico de datos……………………………………………. 13

Python………………………………………………………………………………... 16

Glosario………………………………………………………………………………. 19

Bloque 1: Aprendizaje automático……………………………………………... 31

Tipos de aprendizaje automático………………………………………………….. 33

Tipos de tareas……………………………………………………………………… 36

Fases de un proyecto de aprendizaje automático………………………………. 41

Elementos de la preparación de datos…………………………………………… 44

Clasificadores de aprendizaje…………………………………………………….. 59

Árboles de decisión………………………………………………………………… 68

Bosques aleatorios o random forest……………………………………………… 73

Regresión lineal……………………………………………………………………... 74

Reducción de dimensionalidad……………………………………………………. 75

pág. 1
Videos recomendados……………………………………………………………… 81

Glosario………………………………………………………………………………. 82

Bloque 2: Análisis de redes sociales………………………………………….. 89

Grafos………………………………………………………………………………… 89

Glosario………………………………………………………………………………. 95

Bloque 3: Aplicaciones…………………………………………………………… 98

Análisis de sentimientos……………………………………………………………. 98

Glosario…………………………………………………………………………….. 105

Ejercicios de los diferentes bloques…………………………………………….. 108

pág. 2
BLOQUE 0: Introducción sucinta de los fundamentos matemáticos y
herramientas tecnológicas para el data science.

¿QUÉ ES DATA SCIENCE?


Data science o ciencia de datos es la encargada de extraer información de grandes
cantidades de datos, combinando la estadística, las matemáticas y la informática, para
interpretarlos y permitir la toma eficaz de decisiones.
La ciencia de datos involucra métodos científicos y programas informáticos, que permiten
extraer conocimiento y/o un mejor entendimiento de los datos con los que se trabaja,
ampliando campos del análisis de datos tradicional como la estadística, la minería de
datos, el aprendizaje automático y la analítica predictiva.
El término data science fue acuñado en la década de los 70, cuando se comenzó a usar
para definir los métodos de procesamiento de datos. En 2001 se introdujo como una
disciplina independiente.
El término data science puede resumirse, por tanto, como la unión de la estadística
matemática, las ciencias de computación y grandes cantidades de datos. Enseguida
conoceremos qué significa la palabra “grande” en este contexto.

QUÉ ES UN CIENTÍFICO DE DATOS


El rol de científico de datos se encarga de materializar, dentro de una organización, las
labores propias de la ciencia de datos, aportando valor mediante el análisis e interpretación
de los datos a disposición de dicha organización: el científico de datos genera
conocimiento.
Las actividades que lleva a cabo, y que realmente definen su rol, pueden resumirse en las
siguientes:

pág. 3
 Recopilar grandes cantidades de datos de diferentes orígenes, con diferentes
formatos y de diferentes tipos, y transformarlos a un formato homogéneo y fácil de
utilizar.
 Resolver problemas del negocio propios de la organización en la que trabaja.
 Trabajar con diversos lenguajes de programación, comprendiendo el ámbito
tecnológico en el que se lleva a cabo su labor.,
 Saber matemáticas. Tener un amplio dominio de la estadística.
 Dominar técnicas analíticas como machine learning, deep learning, analítica de
texto, procesamiento de grafos y de lenguaje natural.
 Ser capaz de comunicarse con el área de negocio de su organización, para la que
genera conocimiento, y con otras áreas informáticas de dicha organización, con las
que tiene que colaborar en los procesos de ingesta, limpieza y almacenamiento de
los datos.
 Descubrir patrones en los datos, así como tendencias, que enriquezcan el
conocimiento que la organización tiene de sí misma y de su entorno (clientes
actuales y potenciales, proveedores, colaboradores, socios, etc.).

Ahora abordaremos el concepto de big data, indispensable para ubicar al científico de


datos en el contexto en el que lleva a cabo su labor en la actualidad.

¿QUÉ ES BIG DATA?


En el año 2001 Doug Laney, analista de META Group
estableció el término big data como el conjunto de técnicas
y tecnologías para el tratamiento de datos, en entornos de
gran volumen de datos, con una gran variedad de orígenes
de los mismos y en los que la velocidad de respuesta es
crítica. Esta definición se conoce como las 3 V de big data
(volumen, variedad, velocidad).
La aparición del término big data se produjo cuando la
cantidad de datos de valor disponibles para su proceso se
hizo abrumadora: el uso generalizado de internet (redes

pág. 4
sociales, blogs, páginas comerciales, operaciones de compra/venta de productos, uso
intensivo del correo electrónico, foros de debate, etc.), de dispositivos de comunicación
inteligentes (smart phones, tabletas) y la posibilidad de conectar a la red dispositivos como
cámaras de seguridad o electrodomésticos (el llamado internet de las cosas o IoT) genera
en un sólo día tal cantidad de datos que se calcula que en el año 2020 la cantidad de bits de
información necesarios para representar dichos datos será mayor que el número de estrellas
en el universo físico.
No existe una sola actividad humana que no genere datos de interés (muchas veces
abiertos y accesibles): hogares, deporte, medicina, salud, educación, relaciones humanas
en las redes sociales, pesca industrial, industria automovilística, minería, investigación
científica… No es posible acotar el número de áreas en las que los datos tienen una
importancia fundamental. Y por eso se explotan desde la ciencia de datos.

BIG DATA Y DATA SCIENCE


El firme establecimiento de big data cambió el escenario en el que se desenvuelve un
científico de datos. Durante mucho tiempo su problema fue el de la poca cantidad de datos
con la que contaba para llevar a cabo su trabajo, mientras que en la actualidad el problema
estriba en procesar todos los datos disponibles.

La llegada de big data tuvo como consecuencia la aparición de innovaciones tecnológicas


de todo tipo dentro de las tecnologías de la información, necesarias para almacenar y
procesar grandes cantidades de datos de diferentes formatos. Las tecnologías vinculadas
a la data science debieron también adaptarse para poder explotar estos datos,
materializando de forma efectiva la ruptura que big data produjo con respecto al pasado.
Puede afirmarse sin dudar que, de no existir la capacidad de utilizar los datos desde la
perspectiva de la data science, la revolución big data habría pasado, casi, desapercibida.
Si la conocemos y nos sorprende es, precisamente, por el conocimiento que se obtiene, en
todos los ámbitos, mediante el trabajo de los científicos de datos sobre ingentes cantidades
de datos.

pág. 5
LAS TRES V DE BIG DATA

Volumen
Se estima que la cantidad de datos disponible en la actualidad debe ser expresada en
zettabytes (ZB) es decir, serían necesarios del orden de un billón (10^12) de los PC
empleados en la actualidad para almacenarla. Cada ser humano del planeta debería
poseer unos 150 dispositivos de un terabyte (TB) de capacidad para almacenar todos los
datos de los que se dispone a día de hoy.
Además, se crean 2,5 trillones de bytes de información nuevos al día).
Y el universo digital duplica su tamaño cada dos años. Se estima que para 2020 se
dispondrá de más bits de información que estrellas existen en el universo físico.

¿Qué son medium data, small data y smart data?


El científico de datos no trabaja sólo con grandes cantidades de información. También
puede realizar su trabajo a partir de los llamados small data y medium data. Es importante
mantener la idea de que se puede llegar a disponer de datos valiosos con pocas
exigencias para su almacenamiento y procesamiento. Un científico de datos puede obtener
magníficos resultados a partir de, relativamente, poca información.
Se habla de small data cuando la información que se maneja puede almacenarse en hojas
de cálculo o en bases de datos de escritorio. En este escenario los datos no llegan apenas
al GB y pueden ser procesados mediante un simple PC.
Se dispone de medium data cuando se dispone de datos que ya no pueden ser manejados
mediante un programa de hoja de cálculo. Un PC ya no puede manejarlos con facilidad y
se necesita, por lo común, técnicas específicas de programación y una arquitectura que
involucra, por lo general, una máquina para el almacenamiento de datos y otra para su
procesamiento.
El término smart data, acuñado por el autor norteamericano Bernard Marr, hace referencia
a la necesidad de enfocarse siempre en aquellos datos que tengan significado dentro de
los objetivos de una empresa u organización, por ejemplo, o de un proyecto de desarrollo o
investigación. La tarea puede ser complicada pero es necesaria, ya que el enfoque sobre

pág. 6
los datos de valor permite optimizar recursos humanos y materiales, disminuyendo los
tiempos de recogida de datos, análisis y obtención de conclusiones.

Marr insiste en que, en la actualidad, más que en ninguna otra época de la Historia, es
necesario saber navegar en los mares de datos sin perecer en el intento. Smart data, por
lo tanto, no se refiere a la cantidad de datos que se manejan, sino a su utilidad. El científico
de datos conseguirá mayores logros cuanto mejor sepa discernir y clasificar los datos
disponibles en función de los objetivos que se persiguen. Big data y smart data, según él,
han de trabajar unidos para lograr el éxito.

Velocidad
Cuando se habla de big data lo habitual es que se trate con entornos en los que la
velocidad de obtención y procesamiento de la información sean factores críticos. En
muchas ocasiones la información extraída de los datos es útil sólo mientras esos datos
reflejan la realidad, siendo inútiles, en ocasiones, unos minutos después.
Por tanto, existen dos velocidades que condicionarán la velocidad global de respuesta ante
nuevos datos.

 Velocidad de carga: los datos recogidos en último lugar deben ser preparados,
interpretados, integrados con los ya disponibles. Estos procesos de extracción
transformación y carga (ETL en sus siglas en inglés) son costosos en tiempo y
necesidades de hardware y software.
 Velocidad de procesamiento: este concepto es fundamental para el científico de
datos. Cuando todos los datos están integrados es necesario aplicar métodos
estadísticos avanzados y/o técnicas de inteligencia artificial. La obtención de
resultados no puede demorarse las horas o días que implican las técnicas no big
data. Si se desea obtener ventajas sobre competidores o estar en disposición de
proporcionar un servicio de primer orden el tiempo de procesamiento es
fundamental.

pág. 7
Variedad
Cuando se habla de variedad de los datos empleados en big data se atiende a los
diferentes formatos y estructuras en que se presentan. La estructura se define como la
forma en la que se organizan esos datos. Según su nivel de estructuración se dispone de:

 Datos estructurados: los datos en sí son simples y no se descomponen en otras


estructuras. Se conocen de antemano el tipo de cada dato elemental y las posibles
relaciones con otros datos. Son fáciles de interpretar y de manipular. Claros
ejemplos son las hojas de cálculo y los ficheros CSV. También las bases de datos
relacionales.
 Datos semiestructurados: los datos son simples en sí mismos, pero no responden a
una estructura fija, rígida. Sin embargo, puede encontrarse una estructura implícita.
Los archivos XML, el código HTML de una página web, el contenido de los
documentos de facturación de varias empresas, son ejemplos de orígenes de datos
que siguen ciertas pautas comunes sin llegar a una estructuración rígida.
 Datos no estructurados: en ellos la información no se puede representar mediante
datos elementales, ni se puede presuponer en ellos una estructura abstracta. Este
tipo de datos viene representado por textos, audios, imágenes, vídeos y, en general,
por una composición a partir de todo tipo de orígenes de datos.

El procesamiento de esta variedad de formatos, junto con su volumen y necesidades de


respuesta inmediata implican un alto grado de complejidad en su almacenamiento y
procesamiento.

Veracidad. La 4ª V
Esta nueva V se agregó a la definición de big data con gran rapidez. Teniendo en cuenta la
cantidad de datos y la variedad de sus orígenes es necesario considerar la veracidad del
dato y establecer cierto grado de incertidumbre a la hora de interpretar los resultados de su
procesamiento. A la hora de considerar la veracidad de un conjunto de datos han de
tenerse en cuenta tanto la exactitud de su extracción y la exactitud de su procesamiento.
El científico de datos deberá limpiar y verificar los datos de que dispone, con objeto de
asegurar que genera conocimiento real, a partir de datos veraces.

pág. 8
INCAPACIDAD DE LAS ARQUITECTURAS HABITUALES
Hasta la llegada de los datos masivos la mayoría de los sistemas informáticos utilizaba la
llamada arquitectura de n-capas que, en su versión más sencilla, puede representarse
mediante esta figura:

La operativa resulta familiar: el usuario desde una aplicación cliente, que suele ser un
navegador web, lanza sus peticiones al servidor de negociación, en cuya memoria se

pág. 9
encuentra el sistema informático que da respuesta a dichas peticiones. Una vez recibida la
petición, el código se encarga de efectuar solicitudes de información al servidor de base de
datos, que aloja el sistema relacional que contiene los datos de interés. Cuando el servidor
de base de datos resuelve las consultas recibidas, envía los datos al servidor de
negociación. Allí son convenientemente procesados y, su resultado, es transferido al
cliente, que recibe de esa manera la respuesta a su petición.

El rendimiento de las plataformas que implementan esta arquitectura, por tanto, es muy
sensible a la cantidad de datos que se manejan. Al ser necesario que los datos viajen del
servidor de datos al servidor de negociación, éste debe estar preparado para alojar en su
memoria todos los datos recibidos, de manera que el código pueda procesarlos. Si en un
momento determinado la cantidad de datos es tan grande que estos no pueden ser
alojados en la memoria RAM, el sistema operativo deberá recurrir a métodos de swapping
(almacenamiento temporal en disco) para poder llevar a cabo su tarea, con el
correspondiente aumento del tiempo de procesamiento.

Estas arquitecturas, junto con los productos que las implementan, no pueden dar solución
a los problemas que plantean las tres V de volumen, velocidad y variedad. En su momento
se intentó capear los problemas incrementando la potencia de las máquinas y su
capacidad de almacenamiento, pero pronto se descubrió que la cantidad de datos
disponibles crecía con más rapidez que la capacidad de las nuevas máquinas, enfrentando
a las compañías a desembolsos regulares de grandes cantidades de dinero, además de
otras situaciones no deseadas. Aquí se resumen las principales:

 Máquinas más potentes (con decenas de procesadores y memorias RAM del orden
del TB) implicaban desembolsos más cuantiosos.
 Estas máquinas poseían sistemas operativos y software dedicados, y su puesta en
marcha exigía la participación de ingenieros muy especializados, escasos en
número.
 Por lo general, los gastos en licencias de uso del software empleado suponían una
cifra no despreciable de dinero.
 El mantenimiento físico de estas máquinas y cualquier reajuste implicaba contactar
con la empresa fabricante, con lo que había una fuerte dependencia con el
proveedor.

pág. 10
 La migración a otro entorno, en caso de llegar a un acuerdo con otro proveedor,
suponía un gran esfuerzo de tiempo y dinero para migrar los sistemas disponibles a
nuevas plataformas de ejecución.

Encontrar una alternativa viable fue posible, pero implicó un cambio de paradigma a la hora
de enfrentar los problemas de almacenamiento y procesamiento de grandes cantidades de
información.

SOLUCIONES BIG DATA


Las limitaciones intrínsecas de la arquitectura tradicional pudieron ser superadas mediante
arquitecturas de procesamiento distribuido implementadas sobre equipos de bajo coste,
controlados mediante software open source.

Para ello fue fundamental el hecho de que la mayoría de los problemas de procesamiento
generados por los grandes tamaños de datos eran, algorítmicamente, capaces de ser
resueltos mediante secuencias de tareas ejecutadas en paralelo, es decir, mediante
etapas, siendo la complejidad algorítmica de cada tarea muy sencilla. En efecto, saber
cuántos términos distintos se han empleado en las búsquedas realizadas por los usuarios
de un buscador en un periodo de tiempo determinado (días, semanas o años) o qué
idiomas son los más empleados en una determinada red social son, conceptualmente muy
sencillos, y las dificultades para obtener los valores solicitados se hallaban, esencialmente,
en cómo se intentaban procesar los datos.

Como solución, los datos masivos comenzaron a almacenarse en sistemas de archivos, y


el proceso de los mismos comenzó a realizarse mediante la implementación de algoritmos
serie-paralelos, como MapReduce. El sistema operativo de las máquinas que almacenaban
los datos y ejecutaban los procesos podía ser cualquiera, siempre y cuando sobre el
mismo pudieran ejecutarse programas escritos en lenguaje Java. Además, al poderse
conectar prácticamente cualquier máquina al cluster de ordenadores que prestaban el
servicio, era posible utilizar máquinas de bajo coste y reutilizar aquellas que, incluso, podía

pág. 11
haberse pensado que no eran ya utilizables. Ya no eran necesarios supercomputadores,
ya que podían cubrirse las necesidades de computación mediante el procesamiento de los
datos en sistemas distribuidos.

Por otro lado, el hecho de que el código se enviara a las máquinas que almacenaban los
datos y no al revés, como es el caso de los sistemas tradicionales, permitía reducir tanto el
flujo de información a través de la red como el tiempo necesario para el cálculo, ya que el
código actuaba, en paralelo y en cada una de las máquinas, sobre una fracción
relativamente pequeña de los mismos.

Al abandonarse las bases de datos relacionales en favor, en un principio, del


almacenamiento en sistemas de ficheros, también se redujeron los costes de implantación
de los sistemas y la dependencia con los proveedores.

Utilidades big data para el científico de datos


Para tener una visión clara de la labor del científico de datos en un ecosistema big data
conozcamos algunos elementos que nos permitan ubicar su tarea en un conjunto mayor.
En una arquitectura big data es posible distinguir al menos cuatro capas (layers): la de
ingesta u obtención de datos, la de almacenamiento, la de procesamiento y análisis y la de
visualización de datos. El científico de datos va a operar fundamentalmente en la capa de
análisis, pero es conveniente que tenga cierta visión de conjunto.

Ecosistema Hadoop (glosario)


Este ecosistema ofrece una gran cantidad de herramientas en cada capa, pero es
necesario apuntar que:

 Ingesta: sqoop, Kafka, Flume.


 Almacenamiento: HDFS, HBase
 Procesamiento y análisis: MapReduce, Hive, Pig, Impala, Spark
 Visualización: Beaker, Rodeo

Estas herramientas open source permiten a una organización procesar sus datos de forma
eficaz y gratuita.

pág. 12
Centrémonos en las herramientas de procesamiento y análisis:

 MapReduce: programación directa en Java, Python.


 Hive: lenguaje propio que enmascara las operaciones MapReduce. Trabaja bien
con datos enormes y estáticos. No es adecuada para consultas interactivas.
 Impala: orientada a inteligencia de negocio (business intelligence) y a consultas
SQL. Es más rápida que Hive.
 Pig: lenguaje propio que enmascara las operaciones MapReduce.

Lo anterior permite obtener buenos análisis de los datos, pero no permite llevar a cabo
tareas de aprendizaje automático y similares. Ha de señalarse que las herramientas
Hive, Impala y Pig están diseñadas para ser usadas por usuarios habituados al
lenguaje SQL (caso de Hive e Impala) y lenguajes de scripting (caso de Pig). Si se
desea abordar tareas que impliquen operaciones complejas es necesario recurrir a la
programación MapReduce o al empleo de Spark.

 MLlib: provee al científico de datos de implementaciones de varias técnicas de


aprendizaje automático:

 Técnicas de regresión y clasificación supervisada.


 Técnicas de clasificación no supervisada (clustering).
 Recomendadores (collaborative filtering).
 Técnicas de reducción de dimensionalidad.
 Técnicas de extracción de características (feature extraction).
 Gestión y evaluación de modelos.

LENGUAJES PARA EL CIENTÍFICO DE DATOS


En los últimos tiempos las capacidades de los lenguajes de programación han crecido para
hacer frente a las necesidades del mercado. Cada año surgen nuevos lenguajes y sólo
unos cuantos superan, realmente, la prueba del tiempo. Esto no debe ser motivo de
sorpresa, ya que la selección de un lenguaje de programación determinado por parte de un

pág. 13
profesional o de una organización suele hacerse en función de la experiencia ya adquirida
por los desarrolladores, tendiéndose a apurar al máximo las herramientas conocidas
mientras las necesidades de proceso no obliguen a cambiar las herramientas utilizadas.
En la actualidad los lenguajes más utilizados en aprendizaje automático son Python, R,
MATLAB y Julia.

 Python lidera debido a su simplicidad y facilidad de aprendizaje. Esto contribuye a


que tanto principiantes como científicos de datos experimentados lo seleccionen
como lenguaje de programación. Viene acompañado con un gran número de
librerías, o paquetes, como SciPy, NumPy o Pandas, por ejemplo, que simplifican en
gran manera el trabajo del científico de datos.

 El lenguaje R está diseñado para análisis estadístico. Fue el lenguaje pionero de


los estadísticos y, acompañado de su entorno de trabajo RStudio, es una alternativa
gratuita, al igual que Python, a costosos sistemas estadísticos como MATLAB.

 MATLAB, por su lado, es un entorno profesional que ofrece un entorno de


desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M).
Está disponible para las plataformas Unix, Windows, Mac OS X y GNU/Linux.

 El lenguaje Julia fue diseñado para cubrir necesidades de computación de alto


rendimiento. Dispone de una interfaz gráfica potente.

pág. 14
Para seleccionar un lenguaje de programación a la hora de dedicarse a la tarea del
aprendizaje automático es necesario tener en cuenta los siguientes elementos: curva de
aprendizaje del lenguaje, su coste económico, su velocidad de ejecución, las comunidades
de programadores que participan en su soporte/ evolución, y la producción de modelos.

 Velocidad de ejecución. De los cuatro lenguajes seleccionados, debe destacarse


que R, Julia y MATLB son más rápidos que Python, ya que fueron diseñados
específicamente para tratar con datos estadísticos, mientras que Python es un
lenguaje de propósito general que adquiere sus capacidades matemáticas por
medio de librerías. Sin embargo, R presenta problemas a la hora de manipular
grandes cantidades de datos, debido a su forma de manejar la memoria del sistema.

 Curva de aprendizaje. De entre todos, Python es considerado el lenguaje más


sencillo de aprender.

 Coste económico. Tanto Python, como R y Julia son gratuitos, mientras que
MATLAB es una herramienta de pago. Las organizaciones tienden a usar MATLAB
sólo cuando las necesidades de computación compensan el coste de la
herramienta.

Comunidades de programadores. Las cuatro herramientas mencionadas cuentan con


amplias comunidades de desarrolladores que proporcionan soporte y las evolucionan,
siendo Python quien cuenta con un grupo más numeroso. La existencia de estas
comunidades y su dinamismo permiten que solucionar un problema o comunicar un
defecto del producto sea muy sencillo y rápido por medio de internet.

Producción de modelos. Cualquiera de las herramientas mencionadas cuenta con una


amplia colección de librerías que les conceden amplias capacidades de aprendizaje
automático, si bien suele decirse que R es la mejor opción para análisis estadístico,
MATLAB para tareas de visualización y que julia está optimizado para tareas relacionadas
con estudios bioinformáticos. Esto es debido al impulso original que tuvo cada una de ellas.
Python, tratándose de un lenguaje de propósito general, no destaca en sí mismo en estas
tareas, pero sus potentes librerías, soportadas y desarrolladas por su gran comunidad,

pág. 15
hacen de él la herramienta óptima para adentrarse en el mundo de la ciencia de datos y,
en particular, del aprendizaje automático.

PYTHON
Es un lenguaje de programación ampliamente utilizado en el contexto científico debido a
que dispone de un gran número de librerías que incluyen herramientas para la preparación
de los datos (carga, manipulación, limpieza), para el análisis y procesamiento y para su
representación gráfica. Es una poderosa ayuda en el análisis estadístico, tanto descriptivo
como predictivo.
Es un lenguaje de código libre, lo que hace que sea gratuito, y este factor le ha permitido
introducirse con éxito tanto en el ámbito universitario como en el de las empresas públicas
y privadas.
Python proporciona una plataforma para el procesamiento de datos y está respaldado por
una gran comunidad de desarrolladores. Actualmente existen librerías para el desarrollo de
cualquier tipo de aplicaciones. Posee la capacidad de interactuar con otros lenguajes de
programación (C, Fortran) y cuenta con una gran cantidad de funciones incorporadas que
ayudan a realizar muchas tareas frecuentes.
Lo anterior contribuye a que este lenguaje sea accesible a un público que no posee un
perfil fuertemente tecnológico. Profesionales como estadísticos, matemáticos,
meteorólogos, economistas, expertos en publicidad y muchos otros, han comprobado que
Python resulta una herramienta asequible y potente.
Posee entornos de desarrollo como Jupyter y Spyder, siendo este último el que más
empleado por los científicos de datos.
Spyder es un IDE o entorno de desarrollo integrado para Python. Esta herramienta, escrita
en Python, está diseñada para codificar programas en este lenguaje enfocándose en la
investigación, análisis de datos y creación de paquetes científicos. Su nombre procede de
la contracción de Scientific PYthon Development EnviRonment (entorno de desarrollo
científico de Python) e incluye un editor multilingüe, herramientas de desarrollador y una
consola interactiva que permite la introducción de sentencias. La interfaz de usuario es
personalizable. Está dirigido a científicos e ingenieros, pero su facilidad de uso lo hacen
muy asequible para los principiantes.

pág. 16
Está disponible para las plataformas Linux, MacOS y Windows y es una herramienta de
código abierto y gratuita. Posee una consola interactiva, explorador de variables, resaltador
de sintaxis y un visor de documentación, datos y gráficos potente y, a la vez, muy sencillo
de usar.

 Mathplotlib: librería para realizar gráficos fáciles de usar y de configurar. Permite la


creación de gráficos de funciones, histogramas, diagramas de barras, diagramas
circulares, diagramas de dispersión, diagramas de contornos y diagramas de cajas.
[Link]

 NumPy: o Numerical Python, es una librería fundamental en el cálculo científico, ya


que proporciona estructuras de datos para representar arrays multidimensionales y
funciones y métodos para operar con los mismos. Sobre ella se apoyan librerías de
mayor nivel como pandas o SciPy.
Proporciona una estructura de datos de matriz que extiende las listas
proporcionadas por el lenguaje, dotándole de más capacidad y rapidez en las
operaciones que implican matrices, disminuyendo el consumo de memoria.
[Link]

 Pandas: cuyo nombre se deriva de Panel data, es una librería que aporta
estructuras de datos de fácil uso y de alto rendimiento, junto con un gran número de
funciones esenciales para el análisis de datos. Con la ayuda de pandas se puede
trabajar con datos estructurados de forma rápida, ya que permite cargar, preparar,
manipular, modelar y analizar datos de diferentes tipos y a partir de diferentes tipos
de origen.
Su aportación al aprendizaje automático es muy grande, debiéndose destacar que
incluye el objeto dataframe, imprescindible para almacenar, representar y procesar
estructuras de datos bidimensionales, esenciales para la ciencia de datos. Los
dataframes son estructuras de datos etiquetados bidimensionales que permiten
acceder y manipular elementos individuales, los pertenecientes a un rango de filas
y/o los pertenecientes a un grupo de columnas a partir de índices y de nombres.
[Link]

pág. 17
 SciPy: es una librería de funciones matemáticas que añade capacidades de cálculo
numérico a Python. Es una extensión de numpy, librería a la que añade módulos
para optimización de funciones, integración, resolución de ecuaciones diferenciales,
entre otras materias. Scipy, a su vez, se estructura en subpaquetes. De entre ellos
destacamos stats y cluster.
[Link]

 Scikit-learn: es una librería especializada en algoritmos para data mining y machine


learning.
Está construida tomando como base SciPy y, para su funcionamiento, requiere que
en el entorno de trabajo se disponga de los paquetes siguientes: SciPy, NumPy,
Pandas, Matplotlib y SymPy. Proporciona un conjunto de algoritmos supervisados y
no supervisados, así como métodos de validación cruzada, métodos de extracción
de características y conjuntos de datos de prueba. Permite abordar problemas
relacionados con clasificaciones, regresiones, agrupaciones, reducción de
dimensiones, selección de modelos, preprocesamiento.
[Link]

 SymPy: es una biblioteca escrita en Python cuyo objetivo es reunir todas las
características de un sistema de álgebra computacional (CAS), ser fácilmente
extensible y mantener el código lo más simple posible.
[Link]

pág. 18
GLOSARIO
 Algoritmo
Secuencia de procesos que, mediante un número finito de pasos, resuelven un
problema. Se componen de tareas, entradas de datos, salidas de resultados y
dependencias entre las tareas.
[Link]

 Algoritmo secuencial
El algoritmo en el que una tarea debe finalizar antes de que comience la siguiente,
siendo la salida de resultados de la primera la entrada de datos de la segunda.

 Algoritmo paralelo
Aquel en el que las tareas de procesado son todas independientes, de forma que no
comparten entradas de datos comunes, ni dependencias a la hora de procesarlos.
Las tareas que los componen pueden presentar tiempos de ejecución diversos sin
que eso afecte al algoritmo como conjunto.

pág. 19
 Algoritmo serie-paralelo
Este algoritmo es una combinación del algoritmo secuencial y paralelo. En general,
se dispone de una serie de ejecuciones de tareas en paralelo, de forma que cada
agrupación de las mismas (llamada etapa o stage) puede ser considerada como una
tarea de un algoritmo serie superior.

De esta forma, los resultados de la ejecución de una etapa se consideran como los
datos de entrada de la siguiente. Las tareas individuales de una etapa se ejecutan en
paralelo, pero las etapas se ejecutan de forma secuencial. Al conjunto de etapas se
le denomina pipeline.
El paradigma MapReduce es un ejemplo de este tipo de algoritmo.

 Apache Hadoop - Ecosistema


Entorno de desarrollo de código abierto que soporta de manera nativa aplicaciones
distribuidas, en paralelo, y que hacen un uso de datos intensivo. Soporta la ejecución
de aplicaciones en grandes clusters de hardware dedicado empleando una
arquitectura escalable horizontalmente.
Este ecosistema combina en alto grado el almacenamiento y procesamiento de
grandes cantidades de datos. El motor de procesamiento de Hadoop es MapReduce,
siendo HDFS el sistema básico de almacenamiento.

pág. 20
De cara a los procesos relacionados con Data Science es importante saber que
mediante su empleo se han resuelto problemas como el análisis de registros, la
clasificación de datos, procesamiento de textos, búsqueda basada en patrones,
procesamiento de gráficos y aprendizaje automático.

[Link]

 Apache Hadoop - MapReduce


Herramienta de procesamiento en paralelo que implementa el paradigma
MapReduce. MapReduce es un paradigma diseñado para procesar grandes
conjuntos de datos en un cluster mediante algoritmos serie-paralelos. Los programas
que aplican este paradigma poseen un procedimiento Map() para efectuar
operaciones sobre los datos y un procedimiento Reduce() que opera sobre y agrupa
los resultados obtenidos mediante las operaciones Map().
Fue diseñado inicialmente por Google y liberado por Yahoo! Como open source. Su
evolución natural es Apache Spark.
[Link]

 Apache Hadoop - HDFS


Herramienta de almacenamiento. El sistema de archivos distribuidos de Hadoop
(HDFS en sus siglas en inglés) es un sistema de archivos distribuido, altamente
tolerante a fallos y diseñado para funcionar con commodity hardware (hardware de
bajo coste). Proporciona acceso de alto rendimiento a grandes volúmenes de datos y
es adecuado para aplicaciones distribuidas. Fue implementado utilizando lenguaje
Java, por lo que cualquier máquina que admita la ejecución de aplicaciones Java
puede ejecutar HDFS.

Cuando se habla de HDFS es necesario destacar las siguientes características:

 Es tolerante a fallos, detectándolos cuando se dan y aplicando técnicas de


recuperación rápida y automática. Para ello mantiene, de forma automática,
múltiples copias de los datos en distintos servidores del cluster.

pág. 21
 Está optimizado para el modelo de acceso “única escritura y múltiples lecturas”.
Esto implica que no se debe intentar utilizar en procesos que requieran continua
interacción. Sin embargo, su fortaleza estriba en el gran rendimiento que
proporciona en el acceso a grandes volúmenes de datos.
 Permite el desplazamiento del código a los datos. Esto es, los programas se
envían, en el momento de su ejecución, hacia los servidores que almacenan los
datos, en lugar de mover dichos datos a los servidores de negocio. De esta forma
se minimiza el tráfico de red y aumenta el rendimiento global del sistema, ya que
las aplicaciones que se ejecutan en HDFS trabajan con tamaños de datos del
orden de los GB/TB.
 Proporciona diversos interfaces para que las aplicaciones trabajen con comodidad
sobre los datos, maximizando la facilidad de uso y de acceso.
 Es fácilmente portable entre plataformas, y es compatible con entornos de
hardware heterogéneos y diferentes sistemas operativos.
[Link]

 Apache HBase
Herramienta de almacenamiento. HBase es un modelo de base de datos no
relacional, distribuido y escrito en Java. Se ejecuta sobre HDFS y proporciona un
medio tolerante a fallos para almacenar grandes cantidades de datos. Las tablas
HBase pueden servir como entradas y salidas para tareas MapReduce. Pueden ser
accedidas a través de una API mediante lenguaje Java. HBase se basa,
internamente, en los conceptos de base de datos orientada a columnas y base de
datos clave-valor.
[Link]

 Apache Hive
Herramienta de almacenamiento y procesamiento de datos. Permite hacer
resúmenes, consultas y análisis de datos. Soporta análisis de grandes conjuntos de
datos almacenados en sistemas de ficheros compatibles con Hadoop. Hive
proporciona un lenguaje análogo al SQL utilizado sobre las bases de datos
relacionales, llamado HiveQL. Internamente, Hive mantiene el soporte completo para
MapReduce.

pág. 22
[Link]

 Apache Flume
Herramienta de ingesta de datos. Flume es una herramienta cuya misión es la de
recoger, agregar y copiar grandes cantidades de datos, procedentes de diferentes
fuentes, al repositorio HDFS casi en tiempo real.
[Link]

 Apache Kafka
Herramienta de procesamiento en streaming. Es un sistema de mensajería distribuido
y replicado.
[Link]

 Apache Spark
Entorno de procesamiento de datos desarrollado por M.Z. Se basa en la misma idea
de “divide y vencerás” de la que hace gala Hadoop MapReduce. Sin embargo,
mientras que Hadoop MapReduce hace uso intensivo de almacenamiento en disco,
Spark utiliza la memoria principal de las máquinas del cluster para llevar a cabo sus
tareas. De esta forma, Spark es más eficiente que Hadoop MapReduce cuando se
trata de llevar a cabo cálculos iterativos.
Además, permite operaciones sobre datos masivos más allá de los métodos map y
reduce, ya que pueden efectuarse de manera muy sencilla operaciones de
intersecciones de datos (operaciones join), agrupamiento de datos (operaciones
group by) y filtrado de los mismos (operaciones filter).
Por otro lado, ofrece una capa de abstracción sobre la capa de datos mediante los
llamados RDD (resilient distributed dataset).
[Link]

 Apache Sqoop
Herramienta de ingesta de datos. Permite enviar datos relacionales desde y hacia
Hadoop HDFS. Implementa internamente el paradigma MapReduce para procesar los
datos según se solicite.
[Link]

pág. 23
 Apache Pig
Herramienta de procesamiento en paralelo. Pig es un entorno de trabajo que incluye
un lenguaje de programación de alto nivel, denominado Pig Latin, pensado para crear
programas MapReduce.
[Link]

 big data
Conjunto de estrategias, tecnologías y sistemas para el almacenamiento,
procesamiento, análisis y visualización de conjuntos de datos complejos.
[Link]

 Cloudera Impala
Cloudera Impala es un motor de consultas SQL open source de Cloudera para el
procesamiento masivo en paralelo (MPP) de los datos almacenados en un clúster de
computadoras corriendo Apache Hadoop.
[Link]

 Cluster
Conjunto de ordenadores conectados entre sí formando una red de computación
distribuida.
[Link]

 Computación distribuida
Es un modelo para resolver problemas de computación masiva utilizando un gran
número de ordenadores organizados en cluster y entrelazados mediante una
infraestructura de comunicaciones que permite distribuir los datos que deben ser
procesados como los resultados obtenidos del proceso.
[Link]

pág. 24
 Computación científica
Campo de estudio relacionado con la construcción de modelos matemáticos,
algoritmos y métodos numéricos para resolver problemas científicos y de ingeniería y
para analizar datos.
[Link]

 Comunidad de software libre


Término que hace referencia informal a los usuarios y desarrolladores de software
libre, así como los partidarios del movimiento de software libre u open source. La
comunidad de software libre es a veces también llamada “comunidad open source".
[Link]

 Lenguaje de programación Julia


Julia es un lenguaje de programación homoicónico, multiplataforma y multiparadigma
de tipado dinámico de alto nivel y alto desempeño para la computación genérica,
técnica y científica, con una sintaxis similar a la de otros entornos de computación
similares.
[Link]

 Lenguaje de programación Python


Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en
una sintaxis que favorezca un código legible. Posee un gran número de librerías
orientadas al cálculo científico, lo que le convierte en una herramienta imprescindible
para el científico de datos.
[Link]
[Link]

 Lenguaje de programación R
R es un lenguaje de programación enfocado al análisis estadístico.
[Link]
[Link]
[Link]

pág. 25
 MATLAB - Sistema de cómputo numérico
MATLAB (abreviatura de MATrix LABoratory, «laboratorio de matrices») es un
sistema de cómputo numérico que ofrece un entorno de desarrollo integrado (IDE)
con un lenguaje de programación propio (lenguaje M). Está disponible para las
plataformas Unix, Windows, Mac OS X y GNU/Linux.
[Link]

 Minería de datos
Campo de la estadística y las ciencias de la computación referido al proceso que
intenta descubrir patrones en grandes volúmenes de conjuntos de datos.
[Link]

 Paradigma MapReduce
MapReduce es una metodología de procesado de datos distribuidos que posee un
modelo de programación que da soporte a computación paralela sobre grandes
conjuntos de datos en un cluster de computadoras (Bengfort, Kim, 2016). Su nombre
procede de dos de los tipos de procesos que forman parte del algoritmo (Map y
Reduce), si bien se dispone de unos cuantos más.
La estructura MapReduce fue presentada por Google en 2004, posteriormente fue
implementada por muchas plataformas de software y en la actualidad es una pieza
fundamental del ecosistema Hadoop. MapReduce se introdujo para resolver
problemas computacionales de grandes tamaños de datos y está específicamente
diseñada para ejecutarse sobre hardware simple (commodity hardware). Su filosofía
se basa en el principio “divide y vencerás”, que se manifiesta en el hecho de que los
datos de entrada se dividen en fragmentos que son procesados en paralelo.
Dentro de una ejecución de un proceso MapReduce se tienen, como fundamentales,
los siguientes componentes:

 Controlador: programa que inicia un trabajo MapReduce. Define la configuración


específica del trabajo y establece todos los componentes necesarios. El
controlador tiene acceso al estado de ejecución del trabajo.

pág. 26
 Contexto: proporciona un mecanismo para el intercambio de información entre
los diferentes en ejecución, habida cuenta de que se ubicarán en diferentes
máquinas.
 Datos de entrada: ubicados por lo común en HDFS o HBase. Pueden abarcar
decenas de GB o más.
 Mapeador: proceso que efectúa operaciones sobre los datos iniciales, generando
pares <clave/valor> sobre los que actuarán el resto de componentes del sistema
en ejecución.
Ejemplo: se desea obtener cuántas veces aparecen las palabras utilizadas en
todas las obras de la literatura española publicadas hasta el año 2018.
La información de estas obras se distribuirá por un cluster de n equipos, y en cada
uno de ellos el proceso map(), codificado oportunamente, generará pares con
todas las palabras encontradas con la forma <palabra, 1>. Este proceso se
ejecutará de forma asíncrona en todas las máquinas del cluster que hayan recibido
datos para procesar y el código que debe ejecutarse (en la computación big data,
recuérdese, se envía el programa a la máquina que contiene los datos, y no al
revés).

 Mezcla (shuffling) y ordenación: cuando finaliza un proceso map() en una de las


máquinas del cluster sus datos se preparan ser enviados y procesados mediante
el código reduce() correspondiente. Esto exige que los datos generados por los
mapeadores se agrupen por claves, ya que el proceso reductor se aplicará en
función de la misma.
Ejemplo: continuando con el caso anterior, en los diferentes nodos en los que se
ha ejecutado el proceso map() se habrán generado pares de la forma

<’cielo’, 1>, <’cielo, 1>, <’tierra’, 1>, <’agua’, 1>... <’fuego’, 1>, <’cielo’, 1>

Obviamente, para cada una de las palabras leídas en los datos de ese nodo. Las
claves diferentes encontradas (‘cielo’, ‘tierra’, etc.) deberán ser procesadas por el
mismo reductor que, tras los procesos de mezcla y ordenación recibirá, para la
clave cielo, por ejemplo:

<’cielo’, {1,1,1,1…, 1,1,1}>

pág. 27
Es decir, el valor ‘1’ se repetirá tantas veces como veces se haya encontrado la
clave ‘cielo’ en todos los archivos procesados. El hecho de que el valor sea
siempre ‘1’ es debido al caso de uso que se está abordando pero, claro está, en
otro tipo de situación los valores formarían parte de otro rango.

 Reductor: es el código que se ejecuta sobre todos y cada uno de los pares <clave,
{...}>.
En el ejemplo que se ha presentado el reductor sumaría, para cada clave, todos
los valores que se han agrupado con ella, obteniéndose resultados del tipo <’cielo’,
23.562.222>, <’tierra’, 41.256.414>, etc. Estos valores se almacenarían en el
soporte que se decidiese, HDFS, HBase.

 Open source
Término con el que se conoce el software desarrollado y distribuido libremente. El
proyecto Apache es el paradigma del código open source.
El código desarrollado bajo esta fórmula posee, además de su gratuidad, las ventajas
de ser multiplataforma y de disponer de amplios equipos de técnicos dedicados a su
mantenimiento y evolución.
[Link]
[Link]

 Pig latin
Lenguaje de flujo de datos ofrecido por la herramienta Hadoop Pig. Permite definir
cómo leer los datos de una serie de fuentes, procesarlos, y almacenarlos de
forma paralela, permitiendo al usuario abstraerse de las operaciones MapReduce. Es
una alternativa a la codificación directa en Java cuando el problema que se aborda no
posee una gran complejidad algorítmica.
Su nombre procede del homónimo Pig Latin ([Link] y
es una referencia jocosa al hecho de que los elementos del lenguaje son una
amalgama de palabras reservadas propias de los lenguajes de programación de alto
nivel y del lenguaje SQL.

pág. 28
 Procesamiento batch
Se denomina procesamiento batch o sistema de procesamiento por lotes a la
ejecución de programas sin supervisión ni interacción directa con el usuario.
Habitualmente estos procesos se componen de tareas repetitivas sobre grandes
conjuntos de información. El ecosistema Hadoop, mediante el paradigma
MapReduce, permite ejecutar con gran eficacia este tipo de procesamiento.
[Link]

 Procesamiento en stream
Se denomina procesamiento en stream, procesamiento de datos dinámicos o
streaming a la ejecución de programas cuyos datos se caracterizan por producirse de
forma continua, siendo habitualmente su tamaño del orden de los KB.

 RMI
RMI o Remote Method Invocation es un mecanismo ofrecido por Java para invocar,
de manera remota, un fragmento de código alojado en una máquina diferente a la que
efectúa la llamada. Proporciona un mecanismo simple para la comunicación entre
servidores de aplicaciones distribuidas basadas en Java. Tanto Hadoop como Spark
están codificados en Java debido a las posibilidades de programación distribuida que
ofrece este lenguaje mediante la implementación de RMI.
[Link]

 Sistema de archivos
Dentro de una plataforma informática el sistema de archivos es el componente
encargado de administrar y facilitar el uso del sistema de almacenamiento. Sus
principales funciones son la asignación de espacio a los archivos, la administración
del espacio libre y el acceso a los datos almacenados. HDFS es el sistema de archivos
distribuidos de Hadoop.

pág. 29
 Unidades de volumen

Múltiplos de bytes
Sistema Internacional (decimal) ISO/IEC 80000-13 (binario)
Múltiplo Valor en bytes Múltiplo Valor en bytes
kilobyte (kB) 10^3 kibibyte (KiB) 2^10
megabyte (MB) 10^6 mebibyte (MiB) 2^20
gigabyte (GB) 10^9 gibibyte (GiB) 2^30
terabyte (TB) 10^12 tebibyte (TiB) 2^40
petabyte (PB) 10^15 Pebibyte (PiB) 2^50
exabyte (EB) 10^18 exbibyte (EiB) 2^60
zettabyte (ZB) 10^21 zebibyte (ZiB) 2^70
yottabyte (YB) 10^24 yobibyte (YiB) 2^80

Es necesario indicar que, si bien estas son las unidades oficiales de ambos sistemas,
por motivos históricos es habitual utilizar los nombres de las unidades del SI para
referirse a los valores del sistema ISO/IEC 80000-13. Es decir, se emplea el término
kilobyte (10^3 = 1000 bytes) para referirse al término kibibyte (2^10 = 1024 bytes), y
así sucesivamente. Esta confusión es habitual y está tan instaurada que los
profesionales de las tecnologías de la información no suelen reparar en ella. Sin
embargo, estrictamente, han de emplearse los términos con rigor.

pág. 30
BLOQUE 1: Aprendizaje automático

APRENDIZAJE AUTOMÁTICO

El aprendizaje automático (machine learning en inglés) es el conjunto de métodos y de


algoritmos que permiten a una máquina de cómputo aprender de manera automática a partir
de datos que representan experimentos pasados, con el objetivo principal de predecir
valores futuros a partir de las conclusiones obtenidas en el aprendizaje.
Es necesario indicar explícitamente que las palabras “aprender” o “aprendizaje” deben ser
entendidas como metáforas. El resultado del “aprendizaje” no será nuevo conocimiento en
la “mente de la máquina” sino, más prosaicamente, la obtención de un conjunto de reglas (el
llamado modelo o función objetivo) que describirán los datos utilizados en el proceso de
“aprendizaje” y, en muchas ocasiones, permitirán aventurar el comportamiento de entidades
similares, poseedoras de las mismas características.
Un algoritmo de aprendizaje automático obtiene un modelo a partir de un conjunto de datos
de entrada (datos de entrenamiento). Desde que se inicia el proceso, ya con el tratamiento
del primer dato del conjunto, el algoritmo va construyendo un modelo y lo va ajustando a
medida que el proceso se ejecuta, aumentando la precisión.
Por ejemplo, se puede concebir un proceso de aprendizaje automático que trate la siguiente
situación: la dirección de un colegio quiere saber si a partir de la nota obtenida en dos
asignaturas A y B es posible construir un indicador del éxito académico de los alumnos, es
decir, si existe correlación entre las notas obtenidas en esas asignaturas y el aprobado final
del curso. Para llevar a cabo este proceso es necesario lo siguiente:

 Datos de la nota obtenida en la asignatura A por cada uno de los alumnos.


 Ídem para la asignatura B.
 Saber si dichos alumnos aprobaron o no el curso.

Los datos mencionados son los llamados datos de entrada o datos de entrenamiento.
Podrían representarse de esta manera:

pág. 31
Nota en la Nota en la ¿Curso
Alumno
asignatura A asignatura B aprobado?
1 6.5 7 Sí
2 8 9 Sí
3 4.5 5 No
4 2 3 No
5 4.75 4.25 Sí
6 3 4 No
7 4 4 No
... ... ... ...

Cada trío de valores (nota en la asignatura A, nota en la asignatura B, ¿curso aprobado?) es


una muestra, instancia u observación. Las columnas notas en la asignatura A y nota en la
asignatura B son características de la muestra y el valor de ¿curso aprobado? es la
denominada etiqueta de clase o destino. En este ejemplo la etiqueta de clase puede tomar
sólo los valores “Sí” y “No” y se representa así: {“Sí”, “No”}. El número asociado a cada
alumno no tiene interés en el proceso, pudiéndose en diferentes estudios identificar al mismo
alumno mediante números diferentes sin afectar al resultado del aprendizaje. Al conjunto de
todas las muestras se le denomina datos de entrenamiento.

El proceso de aprendizaje automático recorrerá los valores e irá construyendo el modelo,


esto es, la función que describe la relación entre las características nota en la asignatura A,
nota en la asignatura B y el aprobado o no del curso completo. El cómo se lleve a cabo este
proceso internamente dependerá del método empleado pero, intuitivamente, puede
establecerse la siguiente regla a partir de los datos de la muestra:

“si la nota en la asignatura A es mayor o igual que 4.75 y la nota en la asignatura B es mayor
o igual que 4.5, el alumno, finalmente, aprueba el curso”

En resumen, se ha “ejecutado” un proceso de aprendizaje automático que, a partir de datos


con dos características y dos posibles valores para la etiqueta de clase, ha obtenido un

pág. 32
modelo o función objetivo que describe la relación entre la nota en la asignatura A y el
aprobado o no del curso, y que puede ser utilizado para predecir valores nuevos.

Si (nota A >= 4.75 y nota B >= 4.5) => “Sí”

Gráficamente, podría representarse así:

Este ejemplo presenta qué es un modelo, qué es una característica y qué es una etiqueta
de clase.

TIPOS DE APRENDIZAJE
A continuación, se presentan los tres tipos básicos de aprendizaje automático.

Aprendizaje supervisado
El aprendizaje supervisado es aquel en el que se dispone de datos que incluyen
características (variables que describen y caracterizan esos datos) y, también, de las
etiquetas de clase que les corresponden. El objetivo del aprendizaje supervisado es el de
obtener un modelo que permita hacer predicciones sobre datos futuros o no vistos.

pág. 33
El término supervisado hace referencia a que se conoce, para todos los datos de
entrenamiento, el valor de su correspondiente clase y, por tanto, es posible supervisar
durante la creación del modelo si el valor de la etiqueta de clase predicha durante la creación
del modelo se corresponde con la presente en datos en sí.
Volvamos al ejemplo anterior de las notas en las asignaturas A y B. ¿Cómo se supervisa el
proceso de aprendizaje? La supervisión se lleva a cabo de esta forma: el proceso lee la
muestra y separa la características (notas A y B) de la etiqueta de clase (si el alumno aprobó
o no el curso). A partir de las características, desechando temporalmente el valor de su
etiqueta, el modelo creado hasta el momento obtiene un valor calculado para la etiqueta.
Por ejemplo, si se procesa la muestra (6.5,7, “Sí”), el algoritmo toma los valores 6.5 y 7 de
la características y obtiene un valor calculado para la etiqueta. Supongamos que se devuelve
el valor “Sí”. En ese caso, el supervisor comprueba que el valor calculado y el valor real
coinciden y el modelo no se modifica. Sin embargo, si se procesa una muestra cuyo valor
calculado es “No” mientras que su valor real es “Sí”, el supervisor actualizará el modelo para
que asimile esta situación. Debe tenerse en cuenta que el modelo buscado, la función que
relaciona las características y las etiquetas de salida, se actualiza con cada muestra
procesada.

Aprendizaje reforzado
En este tipo de aprendizaje el objetivo es construir un sistema llamado agente, que interactúa
con un entorno y recibe respuestas del mismo. El objetivo es que el rendimiento del agente
sobre el entorno vaya mejorando por medio de la ejecución de acciones de cuyo resultado
va a recibir retroalimentación. A través de su interacción con el entorno, un agente puede

pág. 34
utilizar el aprendizaje reforzado para aprender qué serie de acciones maximizan el valor de
una recompensa.

Un programa que juegue al ajedrez, por ejemplo, puede beneficiarse de esta forma de
operar: el sistema puede almacenar secuencias de jugadas junto con el resultado de las
mismas (victoria, derrota, tablas, ganancia/pérdida de material, etc.). La magnitud de la
recompensa guiará al sistema para, en futuras acciones, eliminar las secuencias de acciones
que dieron lugar a una recompensa negativa (derrota, pérdida de material) y repetir aquellas
que tuvieron una recompensa positiva (victoria, ganancia de material).

Aprendizaje no supervisado
En el aprendizaje supervisado cuando se entrena el modelo se conoce la respuesta correcta
de cada muestra de antemano; en el reforzado se define una medida de recompensa para
acciones concretas mediante el agente. Sin embargo, en el aprendizaje sin supervisión no
se dispone de etiquetas para los datos: por lo que a nosotros respecta, la estructura es
desconocida. Las técnicas de aprendizaje sin supervisión permiten explorar la estructura de
estos datos para extraer información significativa.

pág. 35
TIPOS DE TAREAS
Clasificación - Aprendizaje supervisado
La clasificación es una subcategoría del aprendizaje supervisado cuyo objetivo es predecir
las etiquetas de clase de nuevas instancias a partir de observaciones pasadas; estas
etiquetas de clase son discretas, valores cualesquiera que se pueden entender como
agrupaciones de las instancias. En el ejemplo que ya hemos presentado la tarea consistía
en predecir el valor de la etiqueta ¿curso aprobado? a partir de los valores de la
características nota de las asignaturas A y B. Este caso, pues, es un ejemplo de tarea de
clasificación, dentro del aprendizaje supervisado.
El conjunto de etiquetas de clase no tiene porqué ser de naturaleza binaria. El modelo
predictivo aprendido mediante un algoritmo de aprendizaje supervisado puede asignar
cualquier etiqueta de clase a una nueva instancia sin etiqueta. Nuestro ejemplo podría
expandirse de la siguiente forma: supóngase que en lugar de disponerse del hecho de si el
alumno aprobó o no el curso, se dispone la nota final:

Nota en la asignatura Nota en la asignatura Nota final del


Alumno
A B curso
1 6.5 7 Notable
2 8 9 Sobresaliente
3 4.5 5 Insuficiente
4 2 3 Insuficiente
5 4.75 4.25 Suficiente
6 3 4 Insuficiente
7 4 4 Insuficiente
... ... ... ...

En este escenario la etiqueta de clase ya no es binaria, ya que toma más de un valor:


{“Insuficiente”, “Suficiente”, “Notable”, “Sobresaliente”}

pág. 36
En resumen, la tarea de clasificación consiste en asignar etiquetas categóricas y sin orden
a instancias de datos para los que no se conoce el valor de dicha etiqueta. Para ello,
previamente se ha creado (entrenado) un modelo a partir de datos conocidos, que han
permitido obtener reglas mediante un proceso inductivo. A los datos inicialmente disponibles
se les denomina datos de entrenamiento.

Cuando se dispone de un modelo validado y aceptado, es posible predecir valores finales


de etiqueta a partir de las características de la muestra:

(6.5, 7, ¿?) -> Modelo -> Predicción -> (6, “Notable”)

Regresión - Aprendizaje supervisado


La regresión o análisis de regresión es otro tipo de aprendizaje supervisado. En él las
predicciones se representan mediante valores continuos y no se limitan a valores discretos
de un conjunto de etiquetas. Siguiendo con nuestro ejemplo, la tarea de clasificación permitía
obtener, con cierto grado de probabilidad, una etiqueta de los conjuntos {“Sí”, “No”} o
{“Insuficiente”, “Suficiente”, “Notable”, “Sobresaliente”} a partir del valor de una característica
que, en este caso, era un valor continuo entre los valores 0 y 10. Una tarea de regresión
permitiría conocer aproximadamente la nota final expresada mediante un valor numérico.
Para ello, se debe disponer de datos continuos de la forma:

Nota en la asignatura Nota en la asignatura Nota final del


Alumno
A B curso
1 6.5 7 7
2 8 9 9
3 4.5 5 4
4 2 3 3
5 4.75 4.25 5
6 3 4 4
7 4 4 4
... ... ... ...

pág. 37
Al igual que la clasificación la regresión es una tarea de aprendizaje inductivo que ha sido
ampliamente estudiada y utilizada. De manera informal puede plantearse como un problema
de clasificación en el que la etiqueta de clase o destino no toma valores discretos, sino
continuos.

Agrupamiento - Aprendizaje no supervisado


El agrupamiento es una técnica exploratoria de análisis de datos que permite organizar
información de un grupo de datos desconocidos en subgrupos significativos sin tener ningún
conocimiento previo de los miembros. A cada uno estos subgrupos se les denomina cluster.
El proceso de agrupamiento establece los grupos teniendo en cuenta los valores de las
características de las muestras disponibles sin pretender asignar una etiqueta de clase a las
muestras que se procesan, ya que estas no existen: son establecidas a medida que se
conocen los datos.

El agrupamiento es llamado en ocasiones clasificación sin supervisión porque se establece


de forma inductiva la etiqueta de clase y, a la vez, no se dispone de un criterio que permita
a un proceso supervisor decidir si esa etiqueta de clase descubierta es correcta o no.
El agrupamiento es una técnica que se usa para estructurar datos desconocidos e inducir
relaciones significativas entre los mismos.
Por tanto, la tarea de agrupamiento divide un conjunto de muestras de un dominio dado,
descrito por un número de características discretas, o de valor continuo, en un conjunto de
grupos que permita asignar nuevas instancias a uno de estos grupos. El proceso de
agrupación puede proporcionar información útil sobre patrones de similitud presentes en los
datos y utilizarse para tareas como, por ejemplo, segmentación de clientes o creación de
catálogos de documentos.

pág. 38
Las muestras pueden describirse utilizando como característica el número de lados de la
figura:

Nº muestra Lados
1 3
2 4
3 5
... ...
9 6
10 5

Aunque también podría utilizarse como característica la forma de la figura, mediante un texto
(T = triángulo, C = cuadrado, etc.):

Nº muestra Forma
1 T
2 C
3 P
... ...
9 H
10 P

E incluso la combinación de ambas:

Nº muestra Lados Forma


1 3 T
2 4 C
3 5 P
... ... ...
9 6 H
10 5 P

pág. 39
Sin embargo, esta última situación debe evitarse en procesos de aprendizaje automático. El
hecho de que a un valor determinado de la característica ‘lados’ le corresponda siempre el
mismo valor de la característica ‘forma’ sugiere que una de las dos puede ser eliminada del
estudio, ya que, dada una característica, la otra no aporta más información.

En cualquier caso, la clasificación de los datos anteriores es trivial y puede representarse


así:

De forma obvia se obtienen 4 subgrupos, o clusters, que agrupan las muestras disponibles
en función de la característica seleccionada. Tras el proceso de aprendizaje no supervisado
es posible saber que las muestras utilizadas para dicho proceso pertenecen a 4 grupos
distintos y que no se dispone de ninguno más.

Ahora supóngase que al conjunto de muestras anterior se añaden, por ejemplo, las dos
formas siguientes:

¿Sería posible incluirlas en alguno de los subgrupos detectados atendiendo a su


forma/número de lados? Parece obvio que no. En este caso la tarea de agrupamiento habría
detectado dos anomalías, es decir, muestras que no pueden ser incluidas en los subgrupos
ya identificados a partir de las características utilizadas.

pág. 40
Las anomalías son, pues, muestras no integrables en los subgrupos descubiertos y que, a
la vez, no poseen entidad como para definir subgrupos nuevos. La detección de anomalías
es una tarea interesante en sí misma, pues pone de manifiesto muestras o instancias que,
tal vez, hayan sido pasadas por alto en estudios anteriores y que requieran de la atención
del científico de datos. El hecho de que una muestra constituya una anomalía no es sinónimo
de que se trate de una muestra insignificante, sino que puede ser el detonante de una
investigación posterior.
Por ejemplo, supóngase un proceso de aprendizaje automático que analiza las señales de
alarma emitidas por un conjunto de 1000 cámaras de seguridad. Se sabe que lo habitual es
que el 99% de las señales de alarma se correspondan con situaciones de intrusión real, y
que el 1% restante constituya los denominados “falsos positivos”, es decir, señales de alarma
que se emitieron sin corresponderse con una situación de peligro real. Si en una tarea de
agrupamiento se obtiene que 999 de las 1000 cámaras mantienen esa proporción, pero que
la restante emite un 20% de falsos positivos, la empresa de seguridad deberá analizar la
situación: tal vez la cámara está mal calibrada, tal vez el sensor está dañado, o tal vez hay
un problema de intrusión real que se enmascara, por el motivo que sea, como un falso
positivo.

FASES DE UN PROYECTO DE APRENDIZAJE


AUTOMÁTICO
Captura y preparación de los datos
El primer paso comprende la captura y preparación de los datos. El objetivo principal es
obtener los datos requeridos para poder realizar el análisis y responder las preguntas que
han motivado el proyecto. Además de la captura, en general se habla también de

pág. 41
preparación o preprocesamiento en el caso de ser necesario efectuar operaciones de
corrección o modificación del formato de los datos antes de poder ser analizados.

No es habitual que los datos primarios se presenten en la forma necesaria para un


rendimiento óptimo del algoritmo de aprendizaje automático. Los algoritmos de aprendizaje
automático, además, necesitan que las características seleccionadas tengan el mismo
tamaño para conseguir un rendimiento óptimo. Este rendimiento normalmente se consigue
transformando las características en el rango [0,1] o con una distribución normal estándar
con media 0 y variación unitaria.

Algunas de las características seleccionadas pueden estar altamente relacionadas y, por


tanto, pueden ser redundantes hasta cierto punto. En estos casos, las técnicas de reducción
de dimensionalidad son muy útiles para comprimir las características en un subespacio
dimensional más pequeño. Reducir la dimensionalidad de nuestro espacio de características
tiene la ventaja de que se requiere menos espacio de almacenamiento y el algoritmo de
aprendizaje funciona mucho más rápido. En algunos casos, la reducción de dimensionalidad
también puede mejorar el rendimiento predictivo de un modelo si el conjunto de datos
contiene un gran número de características irrelevantes.

Para determinar si nuestro algoritmo de aprendizaje automático no solo funciona bien con el
conjunto de entrenamiento sino que también se generaliza con datos nuevos, nos interesa
dividir de forma aleatoria el conjunto de datos en un conjunto de pruebas y de entrenamiento
separados. Utilizamos el conjunto de entrenamiento para entrenar e iniciar nuestro modelo
de aprendizaje automático, al tiempo que mantenemos el conjunto de prueba para evaluar
el modelo final.

Entrenar y seleccionar un modelo predictivo


Cada algoritmo de clasificación tiene sus sesgos inherentes, y ninguna clasificación
individual es superior si no hacemos suposiciones sobre la tarea. En la práctica resulta
esencial comparar como mínimo un puñado de algoritmos distintos para entrenar y
seleccionar el mejor modelo de rendimiento. Antes de comparar diferentes modelos,
debemos decidir una unidad para medir el rendimiento. Una unidad de medida que se utiliza

pág. 42
con frecuencia es la precisión de la clasificación, que se define como la proporción de
instancias clasificadas correctamente.

Evaluar modelos y predecir instancias de datos no vistos


Después de haber seleccionado modelo instalado en el conjunto de datos de entrenamiento,
podemos utilizar en conjunto de datos de prueba para estimar cómo funciona con los datos
no vistos para estimar el error de generalización. Si su rendimiento nos satisface, ya
podemos utilizar este modelo para predecir nuevos y futuros datos. Salvar los parámetros
para los procedimientos mencionados anteriormente, como el escalado de características y
la reducción de dimensionalidad, solo pueden obtenerse a partir de conjuntos de datos de
entrenamiento y que los mismos parámetros vuelven a aplicarse más tarde para transformar
el conjunto de datos de prueba, así como cualquier nueva muestra te da. De otro modo, el
rendimiento medido los datos de prueba puede ser excesivamente optimista.

A tener en cuenta
Estas etapas son similares tanto en el caso de un proyecto Big Data como en el caso de un
proyecto, digámoslo así, convencional. Hace unos años las herramientas y la tecnología que
se empleaban en un proyecto de este tipo eran totalmente diferentes a las utilizadas en un
proyecto de minería de datos tradicional. Por ejemplo, en la fase de captura, se utilizaban
herramientas diseñadas específicamente para tratar con grandes volúmenes de datos, como
Apache Sqoop. En la segunda fase, se empleaban sistemas de ficheros distribuidos o bases
de datos no sql, desarrolladas para entornos distribuidos y grandes cantidades de datos
heterogéneos. Y finalmente, en la fase de análisis se solían emplear herramientas como
Mahout o MLib, que fueron desarrolladas en los entornos Apache Hadoop y Apache Spark,
respectivamente.

Recientemente, se ha producido un cambio significativo en las herramientas empleadas en


la fase de análisis. Actualmente las herramientas y tecnologías para el análisis del entorno
Big Data es la misma que en los proyectos de minería de datos o aprendizaje automático
tradicionales. Las herramientas específicas para Big Data permiten la captura, manipulación,
procesamiento y almacenamiento de datos masivos. Pero el análisis, propiamente, se suele
realizar con herramientas no específicas de Big data, como por ejemplo scikit-learn, Keras o
TensorFlow.

pág. 43
ELEMENTOS DE LA PREPARACIÓN DE LOS DATOS
Preparar los datos disponibles significa optimizarlos para su tratamiento computacional. Esto
implica revisar la completitud de los datos, ajustar sus escalas si procede, dividirlos en
grupos de entrenamiento y comprobación y codificar numéricamente las características no
numéricas.

Limpieza de datos: completitud


En el mundo real no siempre se dispone de datos completos. Lo habitual es que, por
diferentes motivos, una o más muestras (habitualmente siempre nos parecerán muchas)
presenten huecos en una o más de sus características. Computacionalmente eso significa
que algunas características estarán en blanco y, en función del almacenamiento utilizado,
presentarán los valores NaN (“not a number”), NULL, etc. Por lo que respecta a los procesos
de aprendizaje automático baste con decir que, o bien se rechaza la muestra en la que faltan
datos, o bien se rellenan los datos que faltan mediante algún criterio razonado.
Obsérvese la siguiente imagen:

pág. 44
En ella se esboza un subconjunto de un conjunto de 150 muestras de datos botánicos sobre
la flor iris (glosario). Cada muestra consta de 4 características (longitud y anchura del sépalo,
longitud y anchura del pétalo) medidas en cm y una etiqueta de clase, especie, que puede
tomar tres valores: iris-setosa, iris-versicolor e iris-virginica.
Para esbozar el caso se muestran las 7 primeras muestras de cada valor de la etiqueta de
clase: puede apreciarse que en 3 de las muestras de iris-setosa, en 4 de iris-versicolor y en
tres de iris-virginica faltan datos en algunas características. Si se ha de procesar el conjunto
de datos para, por ejemplo, predecir el valor de la especie a partir de las 4 características de
una flor ¿Qué se ha de tener en cuenta?

En primer lugar, es necesario localizar en todo el conjunto de muestras aquellas que están
incompletas. Si se considera que el porcentaje de muestras incompletas es pequeño o que,
siendo grande, los datos completos restantes suponen una cantidad suficientemente grande
como para realizar el estudio con garantías de éxito, las muestras incompletas pueden
eliminarse sin más, para trabajar sólo con los datos restantes, completos en su totalidad. Sin
embargo, muchas veces esta operación de eliminación no puede llevarse a cabo, por lo que
hay que llevar a cabo una acción que mitigue el problema de carecer de datos.
Esta acción es la llamada imputación o asignación de valores ausentes, y consiste en
sustituir cada hueco de una característica de una muestra por uno de los siguientes valores:

 La media aritmética de los valores de esa característica.


 La mediana de los valores de esa característica.
 La moda de los valores de esa característica.

Tomando como caso de estudio la característica anchura del pétalo:

pág. 45
Podría utilizarse cualquiera de los tres métodos para completar los valores de dicha
característica en las tres muestras del ejemplo. Ahora bien, tras observar los rangos de
valores que presenta la característica anchura del pétalo en función de la especie, ¿tendría
mucho sentido calcular, por ejemplo, la media de anchura del pétalo a partir de todos los
valores de la colección? Es fácil ver que, para iris-setosa, los valores de esta característica
varían entre 0.2 y 0.4, mientras que para iris-versicolor se dispone del rango de 1.3 a 1.6. Si
se repara en los valores de iris-virginica, por su lado, varían entre 1.7 y 2.5. Parece evidente
que calcular la media de la característica anchura del pétalo para todas las muestras y usarla
para rellenar valores ausentes en todas las posiciones no es adecuado, sino que debería
calcularse una media para cada valor de la etiqueta especie, y emplearla para asignar los
valores adecuados en función de la especie.
Siempre que se disponga de datos suficientes será conveniente efectuar este tipo de
consideraciones para rellenar las características ausentes. Cuando no sea posible, deberá
utilizarse todo el conjunto de datos.
En este caso se sabe que las correspondientes medias de anchura del pétalo para las
especies iris-setosa e iris-versicolor, calculadas para cada valor de la etiqueta eliminando
los valores que faltan en la lista superior, son:

pág. 46
 Media de iris-setosa = 0.24
 Media de iris-versicolor = 1.32

La media de la característica anchura del pétalo, calculada para todas las muestras, es 1.20.
Si se tiene en cuenta que los valores reales de las características que se han suprimido por
motivos didácticos son:

 Iris-setosa = 0.2, siendo la media de su especie 0.24.


 Iris-versicolor = 1.5 y 1.5 en ambos casos, siendo la media de su especie 1.32.

En ambos casos la media proporcionada por su propia especie se acerca mucho más al
valor real que la media de esa característica para todo el conjunto de datos.

Escalado de características
El escalado de características tiene como objeto conseguir que los cálculos implícitos en la
ejecución de un algoritmo -en este caso, en la ejecución de un proceso de aprendizaje
automático- se lleven a cabo con datos numéricos de magnitud similar.
En efecto, salvo algunos casos muy concretos (árboles de decisión y random forest) las
magnitudes relativas de los valores de las características de las muestras influyen a la hora
de entrenar el modelo, como se ilustrará a continuación.
Para llevar a cabo un escalado de características pueden utilizarse dos enfoques: el de
normalización y el de estandarización.
El enfoque basado en la normalización tiene por objeto comprimir el rango de valores de
los datos iniciales a un rango más manejable. Por ejemplo, pasar del rango [-1000, 1000] al
rango [-1,1]. A menudo el escalado mediante normalización traduce cualquier rango al rango
[0, 1] mediante la siguiente fórmula:

que asigna a cualquier valor x el valor x normalizado, utilizando los valores máximo y mínimo
del rango inicial.

pág. 47
La estandarización, por su parte, convierte el rango inicial en un rango centrado en el valor
x=0 y con una desviación estándar de 1. La fórmula que describe este proceso es:

Ambos sistemas son muy empleados, recomendándose la estandarización cuando se


dispone de valores atípicos o outliers (aquellos que, presentándose en pocas muestras,
difieren en gran medida del resto de valores del conjunto de datos).
Como ejemplo, se aplicará el método de estandarización a un conjunto de datos de 255
muestras que presentan dos características: nº de acciones de un valor determinado
negociadas en un día, o volumen diario, y la diferencia (rango diario), en céntimos de €,
entre los valores máximos y mínimos alcanzados por dicho valor. Los valores, de los que se
muestran los 10 primeros, son:

El proceso consiste en aplicar el método de escalado a ambas características, mediante las


fórmulas:

pág. 48
Donde las correspondientes medias y desviaciones estándar se han calculado con la
totalidad de los datos.

Puede apreciarse que, mientras que los valores correspondientes al nº de acciones


negociadas “disminuye” de forma evidente, los valores correspondientes al rango diario, por
su parte, “aumentan” ligeramente con respecto a sus valores no escalados. Con el proceso,
se ha igualado la influencia numérica de ambas características a la hora de crear un modelo.

División de datos: entrenamiento y test


Cuando se presentó el concepto de aprendizaje supervisado se incidió únicamente en el
proceso de creación del modelo, resultado del aprendizaje realizado a partir de unos datos
iniciales o datos de entrenamiento que, mediante los valores de sus características y
conociéndose el valor de su correspondiente etiqueta de clase, permitían a un algoritmo la
construcción de dicho modelo.

Llevar a cabo un proceso de aprendizaje supervisado, por tanto, implica en primera instancia
disponer de datos ya clasificados, datos de los cuales ya se conoce el valor que debe

pág. 49
predecir el modelo una vez construido. Este conocimiento previo de la solución es lo que
permite el aprendizaje supervisado.

En el ejemplo que se presentó sobre el estudio de las asignaturas A y B como posibles


indicadores del éxito académico de un estudiante se disponía de datos del siguiente tipo:

Nota en la asignatura Nota en la asignatura


Alumno ¿Curso aprobado?
A B
1 6.5 7 Sí
2 8 9 Sí
3 4.5 5 No
4 2 3 No
5 4.75 4.25 Sí
6 3 4 No
7 4 4 No
... ... ... ...

Para cada alumno se disponía del valor de dos características, sus notas en las asignaturas
A y B, y el valor de la etiqueta ¿Curso aprobado?

La finalidad de obtener un modelo a partir de estos datos es la de predecir, con un alto


porcentaje de fiabilidad, si otros alumnos aprobarán o no el curso, una vez que se conozcan
sus notas en las asignaturas A y B.

Para ello no basta con disponer de un modelo, sino que es necesario disponer de un modelo
validado o contrastado. Obviamente, como se verá en el caso del perceptrón, el modelo será
forzosamente coherente con los datos que se le han proporcionado en su entrenamiento.
Con esto se quiere decir que si, por ejemplo, se utilizó la siguiente muestra para entrenar el
modelo:

pág. 50
Alumno Nota en la asignatura Nota en la asignatura ¿Curso
A B aprobado?
1 6.5 7 Sí

Lo lógico será que el modelo prediga que los alumnos que obtuvieron 6.5 o más en la
asignatura A y 7 o más en la asignatura B aprueben el curso. Si el modelo obtenido no es
coherente con los datos de entrenamiento, directamente, el modelo no es válido.

Por lo tanto, para validar el modelo debe disponerse de datos diferentes a los datos con los
que se construyó pero con el mismo grado de validez. Esto se consigue, habitualmente,
dividiendo el conjunto de datos iniciales en:

 Un conjunto de entrenamiento, con el que se construye el modelo.


 Un conjunto de datos de test o comprobación, con los que se valida el buen
funcionamiento del modelo, es decir, su capacidad predictiva.

Hasta el momento se ha hablado indistintamente de datos totales o datos de entrenamiento.


Dicho de otra forma, se disponía de un 100% de datos de entrenamiento y un 0% de datos
de test. Lo habitual, sin embargo, es asignar al conjunto de datos de test entre un 20% y un
40% de los datos totales. Es posible encontrar situaciones en las que la cantidad de datos
disponibles es tan grande que se utiliza entre un 10% y un 1% de los datos como datos de
test, pero no es lo más frecuente.

Una vez que se ha construido el modelo a partir de los datos de entrenamiento el proceso
de validación se lleva a cabo aplicando a los datos de test el modelo obtenido, obteniendo
valores calculados para su etiqueta de salida o destino y comparando estos valores con los
valores conocidos previamente:

pág. 51
Cuando se han procesado los datos de test, la valoración de la adecuación del modelo se
lleva a cabo mediante la matriz de confusión.
Para comprender este concepto volvamos al caso de las notas de los alumnos en las
asignaturas A y B. Supóngase que se dispone de un conjunto de 200 muestras para validar
el modelo creado previamente. De esas 200 muestras, 160 corresponden a alumnos que
aprobaron el curso, mientras que 40 son de alumnos que lo suspendieron.
Ahora, aplicando el modelo a los datos y comprobando los resultados, imaginemos que, para
los 160 alumnos que aprobaron, el modelo predice que 152 aprueban y 8 suspenden.
Análogamente, supóngase que el modelo predice que de los 40 alumnos que realmente
suspendieron, 25 suspenden y 15 aprueban. Esto se representa así:

Y se obtiene la llamada matriz de confusión, que es el instrumento que se utiliza para


comprobar la validez de un modelo obtenido mediante aprendizaje automático supervisado.
En este caso puede comprobarse que de los 160 alumnos que aprobaron el curso, 152 han
sido clasificados correctamente (es decir, el modelo predice el valor real), es decir, el 95%
de los mismos. Por otro lado, de los 40 alumnos que suspendieron el curso, 25 de ellos
fueron clasificados correctamente, o sea, el 62.5%. ¿Qué conclusiones pueden obtenerse?
¿El modelo es válido?
La respuesta a estas preguntas dependerá de si las necesidades del experimentador, en
este caso la dirección de un colegio, quedan suficientemente satisfechas con los resultados
obtenidos. Si al experimentador le basta con conocer de forma muy aproximada los alumnos
que van a aprobar el curso, tal vez un 95% de fiabilidad le resulte suficiente. Si, por el
contrario, su preocupación es el número de alumnos en riesgo de suspender el curso, 62.5%
quizá no sea un valor suficiente.

pág. 52
En este caso se dice que el modelo está sesgado hacia el el valor “aprobado”, es decir,
fracasa en predecir valores de “suspenso” en un 37.5% de las ocasiones. Intuitivamente y
en lenguaje humano, puede afirmarse que “ante la duda, asigna el valor aprobado”. Eso
puede tener varias causas.

Dividir equitativamente los datos


Un motivo por el cual un modelo presente un sesgo hacia un valor u otro es el de que los
datos de entrenamiento y de test no están equilibrados, en el sentido de que en un conjunto
el porcentaje de los valores de clase no es el mismo que en el otro. Así, puede ocurrir que
en el conjunto de entrenamiento se tenga un 80% de aprobados y un 20% de suspensos,
mientras que en el conjunto de test la proporción sea de un 60% de aprobados y un 40% de
suspensos. Para que el modelo no presente desde el primer momento un sesgo hacia uno
de los valores es necesario que las proporciones de los valores de las etiquetas de clase
que han de ser predichas se presenten en ambos conjuntos en la misma proporción.

Errores de un algoritmo de aprendizaje automático


Los errores pueden ser de tres tipos: error de sesgo, error de varianza y error irreductible.
El error irreductible, también conocido como ruido, no se puede evitar ni reducir llegados a
un cierto punto. Procede de características incompletas, de variables desconocidas, o de un
mal planteamiento del problema, independientemente de la calidad del modelo.
Los otros tipos de error se pueden evitar ya que dependen de la elección del algoritmo de
aprendizaje automático.
El error de sesgo es la diferencia entre los valores predichos por el modelo y los valores
verdaderos, y crece a medida que disminuye la complejidad del modelo. Los algoritmos
paramétricos o lineales tienen un alto sesgo que los hace fáciles de aprender, pero son poco
flexibles, lo que hace que presenten un alto sesgo cuando se aplican en circunstancias no
adecuadas, como la de intentar ajustar a una línea datos que, realmente, son una curva.
Además, tienen un bajo poder predictivo en problemas complejos. Un bajo sesgo va
acompañado de menos suposiciones sobre la función buscada, mientras que un alto sesgo
sugiere lo contrario. Algoritmos con bajo sesgo son, por ejemplo, los árboles de decisión,
mientras que la regresión lineal y la regresión logística poseen un alto sesgo.
El error de varianza se refiere a cuánto cambia la capacidad de estimación del modelo
cuando se cambian los datos de entrenamiento, y crece conforme crece la complejidad del

pág. 53
modelo. Los algoritmos de aprendizaje automático que presentan error de varianza alto, por
tanto, podrán ser reconocidos por este comportamiento a partir de los datos de
entrenamiento. La regresión lineal y la regresión logística son algoritmos con una varianza
baja, mientras que los árboles de decisión presentan una alta varianza. Obsérvese que es
la situación inversa a la vista en el error de sesgo.
El objetivo de todo proceso de aprendizaje automático es el de obtener un modelo con
valores bajos del sesgo y de la varianza, manteniendo una buena capacidad de predicción.
Sin embargo, lo normal es encontrar situaciones en los que, al menos, uno de los dos valores
es alto.
Si las predicciones que ofrece un modelo ya entrenado se encuentran agrupadas en un
rango estrecho de valores, pero alejadas en promedio de sus valores reales se tendrá una
situación de poca varianza (valores agrupados) y alto sesgo. Esta situación es la que pueden
presentar los algoritmos lineales, como la regresión lineal. Si las predicciones, en cambio,
se presentan dispersas pero centradas en los valores reales se tendrá una situación de bajo
sesgo pero alta varianza. Esto puede darse entrenando algoritmos no lineales como son los
árboles de decisión.
En general, cuando disminuya el sesgo la varianza aumentará, y viceversa. Obtener un buen
modelo en una situación real, por tanto, consistirá en equilibrar sesgo y varianza, de manera
que se minimice el error total.

pág. 54
Overfitting y underfitting

El overfitting o ajuste excesivo (a veces denominado sobreajuste) y su opuesto, el


underfitting (ajuste deficiente), son casos en los que el modelo obtenido a partir del proceso
de aprendizaje se ajusta mal a los datos de prueba, siendo su capacidad predictiva limitada.
Esto puede ser debido a que el algoritmo que se emplea en el entrenamiento, es decir, en la
construcción del modelo, es demasiado simple o demasiado complejo para la situación que
se aborda.

El overfitting ocurre cuando el modelo queda ajustado en demasía a los valores de las
características de los datos de entrenamiento, lo que se traduce en que se pueden predecir
con mucha precisión los valores de los mismos, pero se fracasa cuando se suministran datos
nuevos. En esta situación es posible que se haya ajustado tanto el proceso de aprendizaje
que éste haya incluido incluso los valores que constituyen ruido o son valores atípicos
(outliers). El overfitting va acompañado de una alta varianza.

Las causas que pueden conducir a esta situación son varias, pero la raíz común de todas
ellas es la de que el conjunto de datos de entrenamiento es demasiado complejo para el
número de muestras con las que se ha construido el modelo, es decir, se debería haber
llevado a cabo el proceso con más muestras y/o un modelo más sencillo, con menos
características.

Los métodos más empleados para evitar este problema consisten en:
 Regularizar los datos, según los métodos ya vistos en el apartado “escalado de
características”.
 Regularizar los algoritmos de forma que se penalicen los valores altos de los pesos
que forman parte de las funciones de entrada (perceptrón).
 Reducir la dimensionalidad de los datos.
 Disminuir el número de iteraciones del proceso de aprendizaje, deteniéndolo cuando
se alcanza un grado de precisión aceptable sobre los datos de entrenamiento. A este
método se le denomina detección temprana.

En el caso del underfitting ni siquiera los datos de entrenamiento consiguen ser clasificados
correctamente, detectándose un alto sesgo que suele deberse al entrenamiento de un

pág. 55
modelo demasiado sencillo, por ejemplo, cuando se intenta obtener un modelo lineal a partir
de datos de no lineales o cuando no se dispone de suficientes datos.
 Construir el modelo a partir de más muestras, es decir, recopilar más datos de
entrenamiento.
 Aumentar la dimensionalidad de los datos, es decir, el número de características a
partir de las que se entrena el modelo.

Codificar datos categóricos


En los ejemplos mostrados para el aprendizaje supervisado las características de cada
muestra son valores numéricos, pero es habitual encontrarse con valores categóricos
(nombres de clase) tanto en las características de las muestras como en su valor, la etiqueta
de clase.
Por ejemplo, las notas de las asignaturas A y B podrían haberse expresado de esta forma:

Alumno Nota en la asignatura A Nota en la asignatura B ¿Curso aprobado?


1 Notable Notable Sí
2 Notable Sobresaliente Sí
3 Insuficiente Suficiente No
4 Insuficiente Insuficiente No
... ... ... ...

Ahora se tienen los datos de las notas de los alumnos y sus resultados expresados mediante
etiquetas de clase. Dos de ellas son ordinales y una de ellas es nominal. Veamos por qué.
El valor de la nota final del curso se expresa mediante los valores {‘Sí’, ‘No’}. Estos valores
no contienen un orden implícito en sí mismos. No nos confundamos pensando que, al ser
mejor aprobar que suspender, el valor ‘Sí’ es superior de alguna forma al valor ‘No’: podría
utilizarse el valor ‘Sí’ para indicar que un paciente está enfermo… En definitiva, la
característica ¿curso aprobado? se expresa mediante valores nominales. Cada uno es el
que es y no está relacionado con el resto de ninguna forma.
Por el contrario, las notas de A y B se expresan mediante los valores {‘Insuficiente’,
‘Suficiente’, ’Notable’, ’Sobresaliente’} y estos valores si contiene un orden implícito, ya que
hay un valor implícito -la nota numérica- que, al crecer, se va correspondiendo con los
valores de las etiquetas, de manera que puede decirse que:

pág. 56
Insuficiente < Suficiente < Notable < Sobresaliente

Por este motivo la característica nota es una característica ordinal.

Ahora bien, la mayoría de algoritmos empleados en los procesos de aprendizaje automático


requieren que los valores de las características de las muestras se expresen mediante
números. Esto se consigue mediante el mapeo de sus valores.
El mapeo consiste en asignar a cada valor de la característica o de la etiqueta de clase un
número, de forma que el proceso de aprendizaje se lleve a cabo utilizando los valores
numéricos asignados. Una vez finalizado el proceso el mapeo se revierte y los valores
vuelven a expresarse mediante valores categóricos.
Las características ordinales se mapean reflejando en los valores numéricos el orden de los
valores de clase. Por ejemplo: ‘Insuficiente’ = 0, ‘Suficiente’ = 1, etc. Cuando se trata de
mapear etiquetas de clase, es decir, valores destino, suele emplearse el mismo sistema.
Sin embargo, hay que tomar ciertas precauciones con las características nominales.
Como ya se sabe, en ellas no hay orden establecido, pero al ser mapeadas se les asignan
números que, está claro, siempre están ordenados. Esto no es problemático en el caso de
las etiquetas de clase, ya que los algoritmos tienen en cuenta que se trata de valores
resultado y no se emplean en cálculos intermedios. Sin embargo, los valores de las
características se usan para obtener el valor de las etiquetas de clase y por lo tanto los
algoritmos son sensibles a sus valores.
Si la característica nominal es, por ejemplo, el nombre de una provincia española, podría
resultar tentador asignar a cada una de ellas un número del 1 al 52. En el caso de tratarse
de una lista de colores, podríamos asignar a cada uno de ellos un número, del 1 a n. Sin
embargo, en cualquiera de los dos ejemplos un algoritmo de aprendizaje asumirá que un
valor numérico mayor implica que la categoría correspondiente vale más, cuando no es así
en absoluto.
La medida que se toma en esta situación es la denominada codificación en caliente, que
consiste en crear una nueva característica para cada valor categórico de la característica
que lo almacena. Por ejemplo, volviendo a este caso:

pág. 57
Alumno Nota en la asignatura A Nota en la asignatura B ¿Curso aprobado?
1 Notable Notable Sí
2 Notable Sobresaliente Sí
3 Insuficiente Suficiente No
4 Insuficiente Insuficiente No
... ... ... ...

La codificación en caliente significaría convertir cada una de las características nota en A y


nota en B en cuatro nuevas características:

Insuficiente
Suficiente en Notable en Sobresaliente ¿Curso
Alumno en asignatura ...
asignatura A asignatura A en asignatura A aprobado?
A

1 0 0 1 0 ... Sí
2 0 0 1 0 ... Sí
3 1 0 0 0 ... No
4 1 0 0 0 ... No
... ... ...

Se ha ilustrado el cambio para la característica Nota en A, ya que en el caso de la otra


asignatura el mecanismo es idéntico. Como se aprecia, la característica nota en A se
transforma en cuatro características, asignándose el valor 1 a aquella que representa el valor
de la característica inicial y 0 en las restantes.

Este proceso puede ser optimizado al máximo si en lugar de emplearse cuatro nuevas
características se emplean sólo tres, de manera que el valor de la característica no
representada esté implícito en las tres que sí lo están:

pág. 58
Insuficiente en Suficiente en Notable en ¿Curso
Alumno ...
asignatura A asignatura A asignatura A aprobado?
1 0 0 1 ... Sí
2 0 0 1 ... Sí
3 1 0 0 ... No
4 1 0 0 ... No
... ... ...

Es decir, pueden representarse explícitamente los casos en los que hay insuficientes,
suficientes o notables en la asignatura A, siendo fácil de deducir que un valor 0 en las tres
características mencionadas implica un valor 1 en la característica no mostrada.

CLASIFICADORES DE APRENDIZAJE AUTOMÁTICO


Se explican en los siguientes apartados.

Perceptrón
El perceptrón o neurona artificial de Rosenblatt es el componente software más sencillo
capaz de generar un modelo de clasificación dentro del aprendizaje supervisado. El
perceptrón es alimentado con datos que poseen m características y dos valores posibles
para la etiqueta de destino -clasificación binaria-, siendo capaz de generar, bajo ciertas
condiciones, un modelo que predice la clase destino a partir de nuevos valores de entrada.
Conceptualmente, el perceptrón se representa mediante el siguiente esquema.

pág. 59
Los valores de entrada se denotan por y son los valores de las
características de la muestra que se está empleando para construir o validar el modelo,
dependiendo del momento. En el caso de las notas en las asignaturas A y B, se trabajaría
con dos características de forma que

serían los valores aportados por la primera muestra. El valor 1 que se ve en el esquema,
encima de las variables de entrada, no forma parte de las características de la muestra, sino
que es un elemento que se introduce con el fin de que la función umbral U adquiera una
forma más manejable.

Los valores denotados por se denominan pesos y forman parte de las


propiedades del perceptrón. Cuando se inicia el proceso de aprendizaje los pesos se
inicializan con valores aleatorios y muy cercanos a 0, y se van actualizando a medida que
las muestras del conjunto de datos son procesadas, como se verá más adelante. Al finalizar
el proceso de aprendizaje el modelo obtenido consistirá, fundamentalmente, en los valores
finales de estos pesos.

La denominada entrada de red es la función con la que se inicia el proceso de


aprendizaje/validación a partir de las muestras. Se define como:

Es decir, la suma de los productos de cada una de las características por su correspondiente
peso más un término de compensación. En notación más compacta esto puede expresarse
así:

Como el producto escalar de dos vectores

pág. 60
más el término de compensación. Añadiendo este término a los vectores w y x, se obtiene
una notación aún más compacta, que es la que se suele emplear internamente en los
algoritmos implementados en los distintos lenguajes de programación:

La naturaleza puramente aritmética de la función z ilustra el porqué de que todas las


características de la muestra deban ser expresadas mediante valores numéricos. Si entre
estas características se tuvieran, en origen, datos categóricos, estos deberían haber sido
codificados convenientemente antes de iniciar el proceso. De la misma forma, la etiqueta de
clase de cada una de las muestras debe haber sido, también, codificada. En un proceso de
aprendizaje que involucre a dos valores de clase como posibles destinos, como es el caso
de los que se abordan mediante el perceptrón, lo habitual es codificar dichos valores como
-1 y 1.

Iniciar el proceso de aprendizaje automático del perceptrón consiste en efectuar el primer


cálculo de z y aplicar la función umbral U al valor obtenido. La función umbral es muy sencilla
y se define como:

Toma el valor 1 si z es mayor o igual que 1 y -1 en caso contrario. ¿Qué son en sí estos
valores? Pues, ni más ni menos, los valores que el modelo dado por los valores actuales de

pág. 61
predice para las características empleadas en ese

cálculo de z. Este valor predicho o calculado suele denotarse como , y es el que el


supervisor utiliza para saber si debe ajustar los valores de los pesos actuales o no. ¿Cómo

se lleva esto a cabo? El proceso es inmediato: el supervisor compara el valor calculado


con el valor y que presenta la etiqueta de clase correspondiente a las características

y actúa de la siguiente forma: si el valor calculado coincide con el valor


y de la muestra, los valores de los pesos no se actualizan. Si los valores difieren, los pesos
se actualizan de la siguiente forma:

Es decir, cada uno de los pesos es recalculado en función de su valor anterior, del valor de
la característica correspondiente, de la diferencia de los valores obtenidos para esa muestra
y de un factor r o rango de aprendizaje, que es un parámetro cuyo valor suele estar entre 0
y 1.
Cuando se ha procesado la primera muestra y se han ajustado los pesos convenientemente,
se procesa la segunda muestra y se actúa de la misma forma, y así hasta agotar las n
muestras establecidas para el conjunto de entrenamiento del modelo.

Para ilustrar lo anterior con valores concretos partamos de los datos

Nota en la asignatura A Nota en la asignatura B ¿Curso aprobado?


4 3.5 -1

Donde ya se ha transformado la categoría “Sí” en el valor 1.


Iniciamos el proceso de aprendizaje con los valores de los pesos iniciados a 0 y con los
valores 6.5 y 7 de las características de la primera muestra. Además, se asigna al rango de
aprendizaje el valor r = 1. Eso significa que el primer valor calculado para z es:

pág. 62
Y por lo tanto z = 0. Aplicando la función umbral, dado que z es 0, el valor calculado que se
obtiene es 1. El supervisor compara el valor calculado 1 con el valor real -1 y decide
actualizar los pesos utilizados, ya que el modelo inicial ha sido incapaz de predecir el valor
de salida -1, que es el asociado a las características (4, 3.5).
Por lo tanto, deben efectuarse los cálculos dados por:

Para las tres componentes de los pesos. Así:

Con lo que el nuevo vector de pesos será (-2, -8, -7), y se empleará en el cálculo del valor

de la siguiente muestra.

Convergencia del perceptrón


Los pasos anteriores se ejecutarán para cada una de las n muestras del conjunto de datos
de entrenamiento. Al acabar el proceso sobre las n muestras se dispondrá de un modelo

dado por los valores actualizados y, a la vez, se habrán contabilizado las


discrepancias (errores de predicción) obtenidas a lo largo de la ejecución. A cada una de
estos procesos de ejecución sobre las n muestras lo denominaremos iteración o época.
El objetivo del proceso de aprendizaje es el de ejecutar, con los n datos, una serie de
iteraciones hasta obtener un conjunto de iteraciones consecutivas en las que el número de
errores sea cero. Cuando esto sucede, se dice que el algoritmo de aprendizaje automático
converge y puede ser validado con los datos de test.
La situación es la que se muestra en la siguiente gráfica:

pág. 63
En ella se refleja un proceso de entrenamiento de un modelo en el que, en la primera
iteración, se ha detectado una discrepancia, en la segunda iteración se han detectado tres
discrepancias y en la tercera una discrepancia. A partir de la cuarta iteración las
discrepancias desaparecen y todos los valores calculados para las muestras del conjunto de
entrenamiento coinciden con los valores destino de las mismas. Se puede apreciar que el
número de discrepancias aumentó de la iteración nº 1 a la iteración nº 2, lo que ilustra la
necesidad de obtener una serie de iteraciones sin discrepancias para asegurar que el
modelo converge. En el caso del perceptrón puede demostrarse matemáticamente que
converge siempre y cuando las muestras de cada categoría puedan ser separadas
linealmente:

Si las muestras de las diferentes categorías no pueden separarse de esta forma, el


perceptrón no convergerá y la clasificación deberá efectuarse mediante otros métodos.

pág. 64
Test sobre el perceptrón
Cuando se dispone del modelo final, el siguiente paso es validarlo. La validación se llevará
a cabo a partir de datos obtenidos de la misma muestra que los datos de entrenamiento y
su proceso será más simple: para cada muestra del conjunto de datos de test se obtendrá
su valor calculado y se comparará con su valor real. Se realizarán los cálculos apropiados y
se obtendrá la correspondiente matriz de confusión, de cuyo análisis podrán obtenerse las
conclusiones definitivas sobre la validez del modelo para predecir valores fiables a partir de
nuevas muestras.

Clasificación de datos con más de una clase destino


Tras conocer el perceptrón es lógico preguntarse cómo abordar problemas de clasificación
en los que las muestras presenten más de dos categorías. En efecto, la función umbral sólo
puede presentar dos valores (-1 y 1). Cuando sólo deben mapearse dos valores como {“Sí”,
“No”}, {“Verdadero”, “Falso”}, {“Aprobado”, “Suspenso”}, etc., la solución es obvia, pero si los
valores de la clase destino son, por ejemplo, {“Insuficiente”, “Suficiente”, “Notable”,
“Sobresaliente”}, ¿cómo actuar?
La solución es el método OvR (One-versus-rest, “uno contra el resto”). Este método consiste
en efectuar tantas clasificaciones como clases destino n se tengan, asignando en cada
clasificación el valor 1 a las muestras de la clase principal (en esa clasificación) y -1 al resto.
De esta forma, alternando la clase principal, se obtienen n modelos de clasificación. Para
predecir futuros valores se aplicarían los n modelos a cada valor, optándose en cada caso
por el modelo que proporcione más fiabilidad.

Neuronas lineales adaptativas


Cuando se conoce el perceptrón es más sencillo acercarse a dos elementos un poco más
avanzados, como son las neuronas lineales adaptativas y la regresión logística.
En ambos casos el diagrama conceptual que los describe es el siguiente:

pág. 65
Y, como puede apreciarse, aparece un nuevo elemento que es la llamada función de
activación lineal.
En el caso de las neuronas lineales adaptativas o Adaline (del inglés ADAptive LInear
NEuron) esta función de activación es la función identidad que a cada valor de la entrada de
red z le asigna a sí mismo.

Esto podría considerarse idéntico al perceptrón, pero hay que observar que, antes de
aplicarse la función umbral, el valor obtenido se somete a un proceso de supervisión y sólo
después se aplica la función umbral al resultado obtenido. Esto sugiere que, internamente,
el proceso de supervisión de Adaline funciona de forma diferente al del perceptrón. Así es.
Cuando se entrenaba un perceptrón para obtener el modelo se ejecutaba un proceso de
cálculo de los pesos w por cada muestra del conjunto de entrenamiento procesada. Este
cálculo era individual e implicaba que un conjunto de 150 instancias, por ejemplo, daba lugar
a 150 cálculos por iteración. Si el proceso implicaba 10 iteraciones el total de cálculos para
el reajuste de los pesos w se era de 1500.
En Adaline no va a ser así, ya que el reajuste de cada componente del vector pesos w se
obtiene de la a partir de esta expresión:

pág. 66
Obsérvese el superíndice i -que varía entre 0 y n, el nº total de muestras- que indica que
en el proceso de ajuste de los pesos w se tiene en cuenta la totalidad de las muestras del
conjunto de datos. Es decir, en 10 iteraciones sólo se efectúan 10 cálculos de w.
La expresión de arriba para el cálculo de los pesos se deriva, mediante cálculo diferencial,
de la fórmula:

Que expresa la suma de los cuadrados de las diferencias, para cada muestra i, entre el
valor real de su etiqueta de clase y el valor calculado a partir de los valores actuales de w.
El proceso de aprendizaje de Adaline tiene como objetivo minimizar el valor de esa función,
llamada también función de coste. El procedimiento que lleva desde esta función a la
expresión para el reajuste de pesos de denomina descenso de gradiente.

Convergencia de Adaline
La convergencia de este componente, al igual que en el caso del perceptrón, se produce
cuando las clases destino son linealmente separables.
La ventaja de Adaline sobre el perceptrón estriba en que su convergencia, de producirse,
es definitiva, mientras que, en el caso del perceptrón, una vez que no se obtienen errores,
es necesario ejecutar iteraciones adicionales para verificar que los resultados obtenidos
son definitivos, y que no se ha detectado un mínimo local que lleve a engaño al analizar los
resultados.

Regresión logística
Este modelo de clasificación, a pesar de lo que pueda sugerir su nombre, sigue la
estrategia de Adaline, con la diferencia de que la función de activación no es la identidad
φ(z)=z, sino la función sigma.

pág. 67
La regresión logística, en esencia, se diferencia de Adaline en que la función de activación
sigma proporciona un valor que en sí mismo tiene significado: la probabilidad de que el
valor destino calculado coincida con el valor real de la muestra.

ÁRBOLES DE DECISIÓN
Los árboles de decisión son un algoritmo que permite clasificar datos cuyas etiquetas de
clase no pueden ser separadas linealmente, pero se distribuyen en un espacio n-
dimensional en el que se pueden establecer divisiones n-rectangulares en las que
predomina una etiqueta de clase concreta. Si consideramos este problema de dos

características X e Y y para dos valores de clase y podremos obtener una intuición al


respecto:

pág. 68
En esta situación es evidente que no existe una línea que divida satisfactoriamente el
espacio de muestras de manera que las etiquetas de clase queden nítidamente separadas,
es decir, no existe separabilidad lineal. Sin embargo, es posible agrupar el conjunto de
muestras en rectángulos en los que predomina una u otra etiqueta destino:

A partir de los valores X1, X2, Y1, Y2 pueden escribirse, por ejemplo, las tres siguientes
expresiones lógicas:

Es evidente que mediante las condiciones oportunas y a partir de los valores X1, X2, Y1,
Y2, que dividen el espacio muestral en seis rectángulos, es posible clasificar perfectamente
todas las muestras. Representémoslo de la siguiente forma:

pág. 69
Esta figura representa un árbol de decisión binario que constituye un modelo que resuelve
el problema de clasificación planteado al principio. El árbol de decisión está constituido por
el nodo raíz, los nodos de prueba y los nodos de decisión.
El nodo raíz constituye el origen del árbol, los nodos de prueba representan las
condiciones que se establecen sobre las características de las muestras datos y los nodos
de decisión los valores que toman las etiquetas de clase para las condiciones anteriores. El
nodo raíz es un nodo de decisión que tiene la propiedad de reflejar la condición que mejor
caracteriza el espacio muestral. Para verlo con más claridad obsérvese la siguiente figura.

Ahora debemos abordar el cómo se construye/descubre un árbol de decisión a partir de las


características de los datos disponibles. En efecto, el primer árbol ejemplo se ha construido
a partir de la inspección visual de los datos. Esto ha sido posible porque los datos eran
poco complejos, escasos y, además, visualizables por parte de un ser humano al repartirse
en un plano bidimensional. Es necesario un sistema matemático que genere árboles de
decisión a partir de muestras con n características y c etiquetas de clase.
El sistema que se emplea consiste, esencialmente, en dividir los datos a partir de la
característica que produce mayor ganancia de información. En primer lugar, se obtiene un
nodo raíz del que surgirán dos subconjuntos de datos sobre los que, de nuevo y de forma
recursiva, se procede a una subdivisión siguiendo el principio inicial de maximizar la
ganancia de información. Esta forma de operar se repite hasta que por fin los datos de los

pág. 70
nodos obtenidos pertenecen a la misma clase, con lo que el proceso de subdivisión se
detiene.
La función de ganancia de información se define estrictamente por

Y se interpreta así:

Ganancia de información obtenida al realizar una subdivisión de datos de un nodo padre


Dp utilizando la característica f.

Impureza de los datos del nodo padre.

Impureza de los datos del nodo hijo j.


Np y Nj: número de datos en los nodos padre e hijo, respectivamente.

Por lo tanto, la ganancia de información consiste en la diferencia entre las impurezas del
nodo padre y de los nodos hijos. Un nodo en el que haya datos que pertenezcan a sólo
una etiqueta de clase carecerá de impureza, mientras que si el nodo posee datos de todas
las clases repartidos equitativamente su impureza será máxima.
La función de ganancia de información definida arriba aplica a la hora de construir árboles
de decisión en los que un nodo padre puede tener m nodos hijos. Sin embargo, para
minimizar el cálculo computacional sin perder capacidad predictiva se emplean
fundamentalmente árboles de decisión binarios. Para ellos la función de ganancia de
información se define así:

pág. 71
Para calcular los valores de las impurezas de un nodo se dispone de varios criterios:

Entropía:

Se calcula sumando para todas las características c los valores mostrados, donde m es el
número de muestras del nodo n, y mc el número de muestras que, en ese nodo,
pertenecen a la clase c. Es evidente que si todas las muestras pertenecen a la misma
clase la entropía del nodo es 0.

 Impureza de Gini:

Similar en la práctica a la entropía. Se anula si todas las muestras pertenecen a una clase
y se maximiza cuando la distribución de clases es uniforme.

 Error de clasificación:

Los algoritmos de aprendizaje automático cuya función objetivo es un árbol de decisión


utilizan internamente alguno de estos métodos de cálculo de impureza, pudiendo el
científico de datos seleccionar el que más se adecúa a sus necesidades.

Los árboles de decisión son modelos que presentan la ventaja de ser muy intuitivos y, por
lo tanto, permiten transmitir información a interlocutores sin necesidad de que estos
posean conocimientos especializados. Presentan el inconveniente, sin embargo, de ser
proclives al overfitting.

pág. 72
BOSQUES ALEATORIOS O RANDOM FOREST
Los bosques aleatorios son un algoritmo de aprendizaje automático bastante flexible que
permite obtener buenos resultados en la mayoría de las ocasiones. Puede ser utilizado, al
igual que su predecesor, el árbol de decisión, tanto para tareas de clasificación como de
regresión.
Este algoritmo crea múltiples árboles de decisión y los combina para obtener predicciones
precisas. El método, en esencia, consiste en crear árboles en los que no se busca la
característica que produzca más ganancia de información, sino que la característica que se
toma como partida para la construcción del árbol es seleccionada aleatoriamente.
Este sistema permite evitar el sobreajuste, ya que los árboles no han de ser muy
profundos. Se “combate” la necesidad de profundizar que puede presentar un árbol de
decisión -para disminuir las impurezas de los nodos- con la variedad de decisiones que
permiten obtener los bosques aleatorios, sobre las que se promedia y se obtiene la
predicción final para una muestra determinada.
Como ventajas hay que decir que los modelos basados en bosques aleatorios poseen una
buena capacidad predictiva y que es difícil que experimenten overfitting. Sin embargo, los
bosques aleatorios pierden la capacidad clasificatoria que manifiestan los árboles de
decisión, ya que las relaciones entre las características y los valores de las clases destino -
la figura de árbol, en definitiva- se pierden, al renunciarse a una clasificación basada en la
ganancia de información entre nodos en función de la mejor característica, ya que dicha
característica es seleccionada al azar en cada árbol de un bosque aleatorio. Además de
esto, si bien la capacidad predictiva de un bosque aleatorio es buena, hay que indicar que
es lenta. Si el algoritmo obtenido debe usarse para efectuar predicciones en tiempo real,
hay que tener este factor en cuenta.
Un beneficio que se obtiene de forma colateral al construir un bosque aleatorio es que es
fácil conocer, en el modelo obtenido, la importancia que en el mismo presenta cada una de
sus características, por lo que es posible reducir las mismas a partir de esta información
seleccionado las más relevantes y, si es necesario, generar otro modelo mediante otro
algoritmo utilizando las características seleccionadas.

pág. 73
REGRESIÓN LINEAL
Es una técnica utilizada para predecir el valor de una variable continua y (variable
dependiente) a partir de un conjunto de variables independientes xi. Cuando sólo se
dispone de una variable independiente se habla de regresión lineal simple.

Lo habitual es tener más de una variable independiente y, entonces, se habla de regresión


lineal múltiple.

Los valores ai se denominan parámetros y el parámetro b, en concreto, indica el punto en


el que la recta corta el eje OY.
El método del algoritmo de construcción del modelo en el caso de la regresión lineal es
minimizar el error cuadrático medio, y la función de coste se expresa así, en función de
dicho error:

La idea subyacente a la regresión lineal es la de que existe una relación lineal y aditiva
entre las variables dependientes e independientes y, además, no existe correlación entre
las diferentes variables independientes x1, x2, etc.
Normalmente no se utilizan todas las variables independientes utilizadas para caracterizar
cada muestra de datos. Lo habitual es seleccionar las más significativas, para lo que puede
utilizarse la matriz de correlación o alguna de las técnicas presentadas más adelante.
Ha de tenerse en cuenta que disponer de muchas variables independientes no significa
forzosamente que el modelo lineal obtenido proporcione mejores predicciones. Muchas

pág. 74
variables independientes pueden provocar overfitting y, también, presentar dependencias
entre las mismas (multicolinealidad).

REDUCCIÓN DE DIMENSIONALIDAD
Otro subcampo del aprendizaje automático es la reducción de dimensionalidad. La
reducción de dimensionalidad es un enfoque utilizado con frecuencia en el procesamiento
de características para eliminar ruido de los datos, es decir, información no significativa de
la que no se van a poder extraer conclusiones. La finalidad es la de comprimir los datos en
un subespacio de dimensión más pequeña manteniendo la mayor parte de la información
importante, de forma que los algoritmos sean más rápidos y el consumo de recursos en la
máquina se minimice. La reducción de dimensionalidad también puede ser útil para
visualizar datos.
El problema de la dimensionalidad es uno de los más importantes en la minería de datos.
Existen varias técnicas para descartar los parámetros que tiene menos peso en nuestro
análisis, como la descomposición en valores singulares y el análisis de componentes
principales, siendo esta última es la más popular.
Antes de proseguir con los conceptos teóricos, ejercitemos la intuición con el siguiente
caso.
Se dispone de N muestras de las cuales las 4 primeras son:

El conjunto de muestras está formado por dos clases de figuras geométricas (triángulos y
cuadrados) que pueden tener dos colores (azul y naranja). Las muestras mostradas arriba
se describen así:

pág. 75
Nº. Muestra Forma Color
1 Triángulo Azul
2 Cuadrado Naranja
3 Triángulo Naranja
4 Cuadrado Azul

Cada muestra posee dos características que la definen o, lo que es lo mismo, cada
muestra está descrita por dos coordenadas en un espacio de dos dimensiones (forma y
color), pudiendo tomar cada dimensión dos valores:

 Forma: triángulo y cuadrado.


 Color: azul y naranja.

Con esto en mente, imagínese que las 4 figuras presentadas arriba forman parte de un
conjunto de muestras compuesto por 1.000.000 de instancias de cada tipo: 1.000.000 de
triángulos azules, 1.000.000 de cuadrados azules, etc. En total, se tienen 4.000.000 de
muestras con formas y colores repartidos uniformemente, de forma que cada combinación
constituye un 25% de la totalidad.

Forma Color Total de muestras %


Triángulo Azul 1.000.000 25%
Cuadrado Naranja 1.000.000 25%
Triángulo Naranja 1.000.000 25%
Cuadrado Azul 1.000.000 25%

En este escenario, ¿cómo abordaría un ser humano una tarea de agrupamiento si se le


indicara que todas las dimensiones/características son igual de significativas?
Obviamente, la única clasificación ecuánime sería la que obtuviera un subgrupo por cada
tipo de muestra, al no haber un criterio que otorgue mayor peso a una característica que a
otra. Una tarea clasificatoria “descubriría”, por tanto, cuatro subgrupos o clusters:
“triángulos azules”, “triángulos naranjas”, “cuadrados azules” y “cuadrados naranjas”. Una
agrupación diferente sería, sencillamente, arbitraria.

pág. 76
Intuitivamente puede verse así: si se toma una muestra al azar del conjunto, existe la
misma probabilidad de que se trate de un triángulo que de un cuadrado, tanto si es azul
como naranja. Un agrupamiento por la característica “forma”, por ejemplo, haría
desaparecer la característica “color”, que posee tanto significado como la primera: un 50%
de las muestras son cuadrados, pero también es cierto que un 50% de las muestras son
azules. Mientras no se disponga de información adicional, o de un criterio que permita
tomar una decisión, no puede eliminarse ninguna característica/dimensión del estudio. Esto
es, no puede ejecutarse ninguna operación de reducción de dimensionalidad.

Supóngase ahora este escenario:

Forma Color Total de muestras %


Triángulo Azul 1.920.000 48%
Cuadrado Naranja 80.000 2%
Triángulo Naranja 120.000 3%
Cuadrado Azul 1.880.000 47%

La proporción de las muestras se ha modificado drásticamente, de manera que aquellas


que presentan el valor “azul” en la dimensión “color” suponen un 95% del total.
Intuitivamente, esto significa que, si se toma una muestra al azar, en un 95% de
situaciones el valor de la característica “color” será “azul”. No se trata del 100% pero se
aproxima mucho, ya que el 5% restante de muestras con color “naranja” son prácticamente
una anomalía. Agrupar por la característica “color” no generaría subgrupos significativos,
ya que uno de ellos estaría constituido por, prácticamente, la totalidad del conjunto de
muestras.
Por el contrario, si se repara en la característica “forma”, una muestra obtenida al azar
será, en un 51% de ocasiones un triángulo y en un 49% de ocasiones un cuadrado. Un
agrupamiento por la característica “forma” genera subgrupos más significativos que en el
caso anterior, ya que difieren notablemente de la totalidad del conjunto de muestras.

pág. 77
Puede decirse, por lo tanto, que la característica “color” no es relevante en la tarea de
agrupación que se lleva a cabo y que puede ser eliminada del estudio. El número de
dimensiones se reduce y el conjunto de muestras se expresa así:

Forma Total de muestras %


Triángulo 2.040.000 51%
Cuadrado 1.960.000 49%

Y el agrupamiento mediante la característica/dimensión “forma” surge de forma natural.


Puede decirse que sobre los datos se ha llevado a cabo una selección de características,
escogiendo la característica “forma” como característica fundamental para describir el
conjunto de datos de forma efectiva y más sencilla.

Selección de características
La selección de características es la acción por medio de la cual se lleva a cabo la
reducción de dimensionalidad de las muestras, de forma que estas queden descritas sólo
por las características más relevantes. De esta manera se elimina ruido en los datos, sobre
todo cuando se dispone de pocos valores, y el modelo obtenido adquiere mayor capacidad
predictiva.
Para conocer qué pasos llevan a cabo los algoritmos de aprendizaje automático para
realizar esta selección primero se ha de conocer qué es la regularización L1.

Regularización L1
En aprendizaje automático se llama regularización a un método matemático que, en ciertas
circunstancias, se lleva a cabo para evitar que los algoritmos caigan en el overfitting,
reduciendo su complejidad. El método consiste, en esencia, en añadir a la función de coste
un término que aumente al aumentar los pesos w calculados en el aprendizaje, de forma
que la minimización de la función de coste resultante penalice la obtención de valores altos
para w.
Si la función de coste resultante es de la forma

pág. 78
Se dice que se aplica regularización L2. Si la función resultante obedece a esta expresión:

La regularización aplicada es de tipo L1. El parámetro de regularización λ es un valor que


permite calibrar la importancia que, dentro del proceso de aprendizaje, se da a la
penalización de valores altos de las componentes de w. El valor 0, evidentemente,
equivale a no penalizar dichos valores, mientras que, a medida que λ crece este término
adquiere más relevancia.
La regularización L1 permite seleccionar características relevantes de manera muy natural,
debido a su comportamiento matemático: los coeficientes de peso de las características
menos relevantes, es decir, aquellas que pueden suprimirse sin alterar la capacidad
predictiva del modelo o incluso mejorándola, adquieren valores bajos, siendo más altos los
que se obtienen para las características que denominamos significativas.

Selección secuencial de características


Este sistema de reducción de dimensionalidad consiste, al igual que el anterior, en obtener
un subespacio de características significativas mediante la eliminación de características
irrelevantes. Se aplica en aquellos algoritmos sobre los que no se puede ejecutar la
regularización.
El proceso es conceptualmente sencillo y fácil de comprender: supóngase que se dispone
de datos que presentan m características. Se crean, secuencialmente, m modelos de los
que se elimina una característica. A continuación, se comparan las predicciones de los
modelos resultantes y se desecha la característica cuya ausencia ha tenido menos impacto
en la capacidad predictiva de las funciones objetivo obtenidas. En ese momento puede
repetirse el proceso sobre las m-1 características resultantes y eliminar, si es posible, una
característica más. El método puede ejecutarse hasta llegar a disponerse de un número

pág. 79
determinado de características c < m o bien detenerse cuando el científico de datos
concluye que no es posible eliminar una característica más sin poner en peligro la
capacidad predictiva del modelo.

Extracción de características
Cuando se trabaja con datos no clasificados en problemas de agrupamiento o clustering
suele utilizarse el concepto de extracción de características a la hora de simplificar los
datos de prueba o de hacerlos más significativos. La expresión extracción de
características no significa que los datos se simplifiquen, de entrada, mediante la
eliminación de características superfluas o poco significativas. Estrictamente hablando,
este proceso permite que a partir de las características iniciales de los datos se construyan
nuevas características, que dependen de las anteriores y a las que sustituyen, y que
describen más claramente el grupo de datos con el que se trabaja.
Como resultado de la mayor claridad alcanzada, es habitual que en la nueva situación se
manifiesten ciertas características como mucho más significativas que el resto, lo que
permite llevar a cabo un proceso de selección de características en el que se desechan
aquellas que no superan cierto umbral.
Dos métodos muy empleados para extraer características son:

 ACP, o análisis de componentes principales. Ayuda a encontrar las direcciones, en


un espacio n-dimensional, en el que más varían los datos. Una vez detectadas estas
direcciones, los datos son expresados en función de las nuevas características.

pág. 80
 ADL. O análisis de discriminante lineal. Su objetivo es encontrar características que
permitan expresar los datos mediante nuevas coordenadas que maximicen la
separabilidad entre clases.

VIDEOS RECOMENDADOS

 Agrupamiento:
[Link]
x3p_5ecDdSEIU&index=4

 Análisis de componentes principales:


[Link]
x3p_5ecDdSEIU&index=5

 Clasificación y regresión:
[Link]
x3p_5ecDdSEIU&index=2&t=0s

pág. 81
[Link]
x3p_5ecDdSEIU&index=3

 Redes neuronales:
[Link]
x3p_5ecDdSEIU&index=6

GLOSARIO

 Adaline - ADAptive LInear NEuron


El adaline (de ADAptative LINear Element) es un tipo de red neuronal artificial
desarrollada por el profesor Bernard Widrow y su alumno Ted Hoff en la Universidad
de Stanford en 1960.
[Link]

 Anaconda
Anaconda es un distribución libre y abierta de los lenguajes Python y R, utilizada en
ciencia de datos, y aprendizaje automático (machine learning). Esto incluye
procesamiento de grandes volúmenes de información, análisis predictivo y cómputos
científicos. Está orientado a simplificar el despliegue y administración de los paquetes
de software.
[Link]
[Link]

 Análisis exploratorio de datos


El análisis exploratorio de datos es el tratamiento estadístico al que se someten las
muestras recogidas durante un proceso de investigación en cualquier campo
científico.
[Link]

pág. 82
 Aprendizaje automático
El aprendizaje automático o aprendizaje automatizado o aprendizaje de máquinas (del
inglés, machine learning) es el subcampo de las ciencias de la computación y una
rama de la inteligencia artificial, cuyo objetivo es desarrollar técnicas que permitan
que las computadoras aprendan.
[Link]

 Aprendizaje supervisado
[Link]

 Aprendizaje no supervisado
[Link]

 Aprendizaje reforzado
[Link]

 Árbol de decisión
[Link]

 Bosque aleatorio - Random forests


[Link]

 Correlación
En probabilidad y estadística, la correlación indica el grado de proporcionalidad entre
dos variables estadísticas.
[Link]

pág. 83
 Dataset iris
Conjunto de datos que contiene 50 muestras de cada especie de la flor Iris (Iris setosa,
Iris virginica e Iris versicolor). Para cada una de las 150 muestras se dispone de 4
características (longitud del sépalo, anchura del sépalo, longitud del pétalo y anchura
del pétalo, en centímetros) y la etiqueta o valor destino especie: Iris-setosa, Iris-
versicolor e Iris-virginica.
[Link]

 Diagrama de dispersión
Un diagrama de dispersión o gráfica de dispersión o gráfico de dispersión es un tipo
de diagrama matemático que utiliza las coordenadas cartesianas para mostrar los
valores de dos variables de un conjunto de datos, de las que esas dos variables son
parte del conjunto de características o dimensiones que describen las muestras.
[Link]

 Ganancia de información - Algoritmo ID3


[Link]

 Instalación de Python
Para la instalación de este lenguaje se recomienda la distribución Anaconda. Esta
distribución es gratuita, incluso para uso profesional, e incluye no solamente el
lenguaje Python sino, además, los paquetes esenciales para la ciencia de datos,
matemáticas e ingeniería.
El instalador de Anaconda puede ser obtenido de las URL indicadas en el
correspondiente apartado. Una vez instalado, desde el mismo podrá acceder a
herramientas de trabajo específico en Python, como son Spyder y Jupyter Notebook.

pág. 84
Junto con Anaconda se instala la utilidad de línea de comandos Anaconda Prompt,
que resulta muy cómoda y segura a la hora de instalar nuevas librerías o actualizar
las ya existentes, así como el propio entorno Anaconda y todos sus elementos.

 Jupyter Notebook
Es un entorno de trabajo para el lenguaje Python que permite la programación y,
simultáneamente, la presentación de contenidos. Contiene todas las herramientas
científicas estándar de Python y permite realizar las tareas típicas en el ámbito del
análisis y proceso de datos (importación, exportación, manipulación, transformación
y visualización).
[Link]

pág. 85
 Matriz de confusión
Una matriz de confusión es una herramienta que permite la visualización del
desempeño de un algoritmo que se emplea en aprendizaje supervisado.
[Link]

 Matriz de correlación
Artefacto matemático que muestra, de forma compacta y sencilla, los valores de los
coeficientes de correlación entre varias características continuas de un conjunto de
valores.
[Link]

 Media aritmética
La media aritmética de n números es, por definición, la suma de los valores de los n
números dividida entre n.

[Link]

 Mediana
En el ámbito de la estadística, la mediana representa el valor de la variable de posición
central en un conjunto de datos ordenados. Es el valor que divide el conjunto de datos
en dos partes con el mismo número de muestras.
[Link]

 Moda
En estadística, la moda es el valor con mayor frecuencia en una de las distribución de
datos.
[Link]

pág. 86
 Multicolinealidad
Situación en la que se presenta una fuerte correlación entre variables explicativas
(características) de un modelo. Una de las características es función lineal de una o
más de las restantes.
[Link]

 Perceptrón
[Link]

 Reducción de dimensionalidad
En aprendizaje automático y estadísticas 'reducción de dimensionalidad' o 'reducción
de la dimensión' es el proceso de reducción del número de variables aleatorias que
se trate.
[Link]

 Reducción de dimensionalidad - Análisis de componentes principales


En estadística, el análisis de componentes principales (en español ACP, en inglés,
PCA) es una técnica utilizada para describir un conjunto de datos en términos de
nuevas variables ("componentes") no correlacionadas. Los componentes se ordenan
por la cantidad de varianza original que describen, por lo que la técnica es útil para
reducir la dimensionalidad de un conjunto de datos.
[Link]

 Regresión logística
En estadística, la regresión logística es un tipo de análisis de clasificación utilizado
para predecir el resultado de una variable categórica (una variable que puede adoptar
un número limitado de categorías) en función de las variables independientes o
predictoras.
[Link]

pág. 87
 Spyder
Es un entorno de desarrollo integrado multiplataforma de código abierto para la
programación científica en lenguaje Python. Spyder se integra con una serie de
paquetes destacados en la pila científica de Python, incluidos NumPy , SciPy ,
Matplotlib , pandas , IPython , SymPy y Cython , así como otro software de código
abierto.
[Link]

 Validación cruzada
Técnica utilizada para evaluar los resultados de un análisis estadístico y garantizar
que son independientes de la partición entre datos de entrenamiento y prueba.
[Link]

 Valores atípicos o outliers


En estadística un valor atípico (en inglés outlier) es una observación que es
numéricamente distante del resto de los datos.
[Link]

pág. 88
BLOQUE 2: Análisis de redes sociales

REDES SOCIALES
En los últimos años la representación de datos en formato de red ha experimentado un
importante auge por motivos bien conocidos. Las redes sociales, con sus centenares de
millones de usuarios, han adquirido una importancia de primer orden por el potencial
económico que representan, y para obtener información de estas redes es necesario saber
representarlas, obtener sus datos, almacenarlos, procesarlos y obtener conclusiones a partir
de ellos.

GRAFOS
Habitualmente se usan las palabras “red” y “grafo” como si fueran sinónimos, pero es
conveniente utilizar “red” para referirse al mundo real, es decir, a los usuarios, sus
conexiones, sus preferencias, etc. y el término “grafo” para su representación lógica en un
entorno computacional.

Un grafo es una pareja de conjuntos G(V,E) donde V está constituido por los llamados
vértices o nodos y E por las aristas o arcos que conectan dichos nodos.

pág. 89
En el grafo arriba mostrado se muestran 4 nodos y 5 arcos. Interpretando su contenido puede
decirse que el nodo v1 está relacionado con el nodo v2 y viceversa. Es decir, las relaciones
son recíprocas y, por lo tanto, bidireccionales. El número n=4 es el orden del grafo, y
representa el número de nodos que forman parte del mismo. El número m=5 es el tamaño
del grafo, y viene dado por el número de arcos o aristas presentes en el grafo. Se denomina
grado de un nodo, y se representa por deg(nodo), el número de nodos con los que está
relacionado.
El grafo representado es un grafo no dirigido, simétrico o bidireccional, y es el que modela
las redes sociales en las que las relaciones de “amistad”, por ejemplo, han de ser
bidireccionales (el usuario A sólo puede ser amigo de B si B es también amigo de A). En
estas redes un nodo es una persona u organización, y el grado de ese nodo coincide con el
número de sus amigos.

En cambio, la siguiente imagen representa un grafo dirigido. La única diferencia con el


anterior es la de que los nodos no están unidos bidireccionalmente, sino que el arco implica
una dirección en la relación.

En este ejemplo el nodo v1 está relacionado con el nodo v2, pero no al revés. En este
escenario, se siguen manteniendo las definiciones de grado de un nodo y tamaño y orden
del grafo, pero es necesario introducir los conceptos de grado exterior y grado interior de un
nodo.
El grado exterior de un nodo es el número de sucesores que posee, es decir, el número de
nodos al que se puede llegar desde dicho nodo. El grado interior de un nodo es el número
de nodos desde los cuales es posible llegar a él, es decir, el número de antecesores.
Este tipo de grafo se emplea para representar aquellas redes sociales en las que las
relaciones no son bidireccionales. Un determinado usuario A puede seguir a uno o más

pág. 90
usuarios B, C…, y sin embargo estos últimos no seguir al usuario A. El grado de un nodo,
ahora, viene dado por el número de usuarios a los que sigue y el número de usuarios que le
siguen a él, con la nota importante que una interconexión mutua entre dos usuarios A y B
debe contabilizarse como dos relaciones, ya que la relación no es bidireccional.

Captura de grafos
Para poder trabajar con un grafo que represente una red social es necesario obtener los
datos de los elementos reales que componen esa red social. Los millones de usuarios que
componen la red poseen atributos como su nombre, fecha de nacimiento, preferencias, sus
publicaciones, etc. y, también, relaciones con otros usuarios y su interacción con los mismos
mediante comentarios y valoraciones de las publicaciones de estos últimos. Estas relaciones
son tan importantes como los atributos del usuario y deben ser recogidas con total fidelidad.
Por lo común la plataforma de una red social pone a disposición de los programadores
funciones y procedimientos que permiten conectarse a la red, recorrerla y obtener
información que puede ser almacenada para propósitos propios.
El formato utilizado para representar los datos obtenidos suele ser JSON, ya que se trata de
un formato de texto que permite representar información semi estructurada de forma legible.

Almacenamiento de grafos
El almacenamiento de grafos en el contexto de big data es complejo, ya que por lo común
no es posible almacenar todos los datos en la misma plataforma, sino que deben repartirse
entre multitud de máquinas, independientemente del sistema de almacenamiento concreto
que se utilice.
Almacenar los nodos (personas y organizaciones) en sí no es un gran problema, ya que se
trata en suma del equivalente a almacenar registros en un sistema de datos distribuido. El
problema surge cuando se trata de representar los arcos que representan las relaciones
entre esos usuarios y los datos que dependen de esa relación, y no estrictamente de los
nodos en sí. Por ejemplo, una valoración que el usuario A efectúa de una publicación del
usuario B no es estrictamente función de los usuarios A y B en sí mismos, sino de la relación
que los une.
Representar y mantener actualizada la representación implica que cualquier cambio en la
estructura del grafo deberá comunicarse a todos los servidores que contengan a los nodos
de forma rápida y fiable, con el fin de impedir la aparición de inconsistencias entre los datos

pág. 91
que podrían originar que la información que sobre los usuarios A y B posee la plataforma no
se presentara de igual forma a dos usuarios C y D que accedieran a diferentes servidores,
en función de su ubicación.

Matriz de adyacencia
La matriz de adyacencia es un sistema de almacenamiento de grafos que puede ser
empleado para almacenar los datos en un archivo de texto. Conceptualmente es algo
sencillo: basta con construir una matriz cuadrada en la que tanto las filas como las columnas
representan los nodos del grafo. Si los nodos no están relacionados entre sí el valor
correspondiente será 0, mientras que si existe relación el valor será 1.
Para los dos grafos mostrados anteriormente se tendrían las siguientes matrices de
adyacencia. En el caso del grafo bidireccional:

Y en el caso del grafo dirigido:

La matriz de adyacencia es siempre simétrica en el caso de grafos bidireccionales, por lo


que bastará con almacenar la mitad de la misma. En el caso de los grafos dirigidos, lo
habitual es que no lo sea.
En cualquier escenario, sin embargo, tanto cuando se trata de grafos dirigidos como
bidireccionales, lo habitual es que la gran mayoría de los valores de la matriz de adyacencia
sean 0 (se dice que la matriz es dispersa) y eso permite optimizar su almacenamiento en
memoria a la hora de realizar operaciones de computación.

pág. 92
Lista de adyacencia
Para cada nodo del grafo, este sistema emplea una lista para almacenar los nodos con los
que está relacionado.

Bases de datos NoSQL en grafo


Este tipo de bases de datos permite almacenar grafos ya que implementan los conceptos de
nodo y arco. Además, es posible vincular a los mismos las propiedades que describen y
caracterizan tanto al nodo (persona) como a los arcos (relaciones).
Al contemplarse de forma natural la existencia de relaciones es relativamente rápido
recuperar elementos relacionados. Téngase presente que en el modelo relacional las
relaciones entre entidades se establecen mediante claves foráneas, que permiten conocer
qué filas de una tabla están relacionadas con otras filas de otra tabla, pero esta forma
implícita de relacionar datos requiere operaciones especiales de recuperación
(combinaciones mediante operaciones JOIN) para poder aprovecharlas.

Procesamiento
Una vez que se dispone de los datos de la red almacenados en forma de grafo es necesario
procesarlos y obtener información de los mismos.
Una de las tareas más importantes es la relacionada con descubrir la importancia que un
nodo de la red posee en la misma. Esta situación es muy común en internet, ya que conocer
qué grupos de usuarios de una red social tienen más importancia es interesante de cara a
campañas publicitarias o de generación de opinión, por ejemplo; asimismo, dentro de la
propia web y considerando a las páginas HTML como nodos de la misma, se pueden
visualizar los enlaces entre las diferentes páginas como arcos direccionales que las
relacionan, obteniéndose así un grafo dirigido del que puede extraerse gran cantidad de
información.
Por ejemplo, los algoritmos PageRank, patentados por Google, se dedican a obtener la
importancia de una página web y la de las páginas relacionadas con ella. Una vez que se
conoce la importancia de una página web, ésta queda posicionada a la hora de responder a
una búsqueda de un usuario en Google: si dos páginas cumplen con las condiciones
establecidas en la búsqueda, se presentará primero la que posee mayor relevancia. El valor
del PageRank de una página A a la que enlazan n páginas viene dado por la expresión:

pág. 93
En la que los PR(i) indican los valores PageRank de cada una de las n páginas que enlazan
a la página A, y los valores C(i) el número de enlaces que cada una de ellas posee hacia
otras páginas, independientemente de si son o no a la página A. Cada uno de estos enlaces
se denomina voto, y se dice que la página vota por aquellas páginas hacia las que mantiene
un enlace. El valor d es un parámetro que indica la probabilidad de que un usuario navegue
por la web a través de los enlaces que se encuentra en las páginas que visita. Dicho de otra
forma, el valor 1-d expresa la probabilidad de que un usuario llegue a una página web
escribiendo la url de forma explícita en la barra del navegador o a través de uno de sus
favoritos, sin utilizar un enlace de la página visible en ese momento. El valor de d es uno de
los secretos protegidos por la patente, pero varios expertos consideran que probablemente
el valor utilizado sea 0.85.
El algoritmo PageRank, obviamente, ha de ser recursivo, ya que si dos páginas se enlazan
mutuamente cada una de ellas intervienen en el PageRank de la otra, y se considera que la
solución converge cuando el incremento entre dos cálculos produce un incremento mínimo
que ya no se considera significativo.

Otra tarea interesante es la de explorar el grafo de una red social y descubrir las
denominadas comunidades dentro de dicho grafo. Una comunidad es un conjunto de nodos
que se encuentran fuertemente relacionados entre sí, pero débilmente conectados al resto
de nodos del grafo. Detectar comunidades y analizar las características de los nodos que las
componen tiene interés tanto sociológico como comercial, ya que normalmente los nodos
(personas y organizaciones) que forman parte de una misma comunidad presentan
propiedades (características, gustos) similares.
La detección de comunidades es una tarea de agrupación en la que el número y
características de cada una de ellas es desconocido. Además, presentan la característica de
que no poseen tamaño constante al poder vincularse o desvincularse continuamente nuevos
nodos.
Para detectar comunidades se utilizan algoritmos jerárquicos, espectrales y dinámicos (ver
glosario), pero cuando se trata con grandes cantidades de datos no todos ellos son

pág. 94
adecuados por su elevado coste computacional. En este escenario pueden utilizarse
algoritmos como el paseo aleatorio (random walk) o el denominado algoritmo de propagación
de etiquetas, más sencillo que el algoritmo de propagación de creencias del que es un caso
especial.

GLOSARIO
 Agrupamiento jerárquico
Método de análisis de grupos puntuales para obtener una jerarquía de grupos.
[Link]

 Agrupamiento espectral
Conjunto de técnicas que emplean los valores propios de una matriz para reducir su
dimensionalidad y agrupar en un menor número de dimensiones.
[Link]

 Algoritmo de propagación de creencias


[Link]

 Algoritmo de propagación de etiquetas


[Link]

 Algoritmo HITS
Algoritmo de análisis de enlaces que valora las páginas web, desarrollado por Jon
Kleinberg.
[Link]

 Algoritmos PageRank
Familia de algoritmos utilizados para asignar de forma numérica la relevancia de los
documentos (o páginas web) indexados por un motor de búsqueda.

pág. 95
[Link]

 Bases de datos NoSQL


Sistemas de gestión de bases de datos que difieren del modelo clásico de SGBDR
(Sistema de Gestión de Bases de Datos Relacionales), destacándose, de ahí su
nombre, que no usan SQL como lenguaje principal de consulta.
[Link]

 Cadena de Márkov
[Link]

 Camino aleatorio
Formalización matemática de la trayectoria que resulta de hacer sucesivos pasos
aleatorios.
[Link]

 Centralidad
En teoría de grafos y análisis de redes la centralidad de un nodo en un grafo es una
medida que determina la importancia relativa del nodo dentro del grafo.
[Link]

 Grado
En un grafo, el grado de un nodo es el número de aristas que inciden en el mismo.
[Link]

 Grafo
En matemáticas y ciencias de la computación, un grafo es un conjunto de objetos
llamados vértices o nodos unidos por enlaces llamados aristas o arcos, que
permiten representar relaciones binarias entre elementos de un conjunto.

pág. 96
[Link]

 JSON
JSON (acrónimo de JavaScript Object Notation, «notación de objeto de JavaScript»)
es un formato de texto sencillo para el intercambio de datos.
[Link]

 Lista de adyacencia
En teoría de grafos, una lista de adyacencia es una representación de todas las
aristas o arcos de un nodo mediante una lista.
[Link]

 Matriz laplaciana
También denominada matriz de admitancia o matriz de Kirchhoff — es una
representación matricial de un grafo especialmente utilizada en el análisis espectral.
[Link]

 Matriz de adyacencia
Matriz cuadrada que se emplea para representar relaciones binarias.
[Link]

pág. 97
BLOQUE 3: Aplicaciones

ANÁLISIS DE SENTIMIENTO
El análisis de sentimiento, también conocido como minería de opiniones, es una
subdisciplina del procesamiento de lenguaje natural. Está relacionado con el análisis de la
polaridad de documentos, que tiene como uno de sus objetivos la clasificación de dichos
documentos en función de la connotación (positiva, negativa o neutra) del lenguaje empleado
en los mismos.
En la era de las redes sociales la opinión de la gente, sus gustos, sus críticas, sus
recomendaciones y, en general, todo lo relacionado con sus opiniones tiene importancia
social y económica. El análisis de sentimiento es la tecnología que permite acceder a esa
información y extraer conclusiones prácticas.

Obtención de datos
Los datos que dan lugar a la tarea de análisis de sentimiento pueden ser obtenidos de
múltiples orígenes, tanto de forma no estructurada como estructurada. Pueden proceder de
redes sociales, de foros, de cadenas de correos, de formularios de sugerencias de clientes
o de evaluación de servicios por parte de los mismos. La lista es variada. En ocasiones
también pueden obtenerse en formato estructurado, ya recopilados por diferentes
organizaciones. Un ejemplo de esto último es la base de datos de películas en internet, más
conocida como IMDb.
Tras recopilar las fuentes de datos apropiadas y obtener los correspondientes datos lo
habitual es procesarlos para darles un formato común y fusionarlos/dividirlos en archivos, en
función del tamaño total y del sistema de almacenamiento empleado.

Limpieza y preparación de los datos


El siguiente paso es el de eliminar de los archivos que almacenan los datos que se van a
analizar todos los elementos que no posean valor lingüístico. Esto incluye caracteres no
alfabéticos que puedan haberse generado al convertir los datos, términos JSON,

pág. 98
marcadores HTML, etc. En ocasiones pueden eliminarse signos de puntuación como “,”, “.”,
“;”, “:”, aunque estos elementos son susceptibles, según se utilicen de transmitir sentimiento.

Utilizar recursos ya existentes


Cuando los textos han sido limpiados ya es posible utilizar librerías existentes para evaluar
el sentimiento del texto y clasificarlo en positivo o negativo (en Python se dispone de NLTK),
pero hay una serie de factores que deben tenerse en cuenta.
En primer lugar, la mayoría de recursos de estas características están en idioma inglés, lo
que implica la necesidad de traducir del idioma original a inglés. Aunque este proceso está
automatizado en muchos casos, la traducción adecuada de una palabra de un idioma a otro
depende, en ocasiones, precisamente del contexto emocional en el que se ubica, contexto
que es precisamente lo que se pretende valorar. Además, las valoraciones de sentimiento
que se llevan a cabo son genéricas, sin tenerse en cuenta el origen de los datos: ¿nos
expresamos igual, utilizamos el mismo vocabulario, cuando se trata de temas financieros,
de salud o de ocio?

Explorar de forma autónoma


Por estos motivos es necesario estar en condiciones de llevar a cabo un proceso de
evaluación de análisis de sentimiento de forma autónoma, a partir de datos textuales
cualesquiera y contando con el menor número posible de herramientas de computación.
Para los siguientes pasos téngase en cuenta el siguiente escenario: se han reunido 200.000
textos a partir de un campo de comentarios existente en un formulario de cierta aplicación
web, que los usuarios cumplimentan para valorar el servicio recibido por parte de una
compañía. Además del texto, el usuario introduce una valoración del servicio mediante
valores numéricos que varían entre 0 (totalmente disconforme con el servicio recibido) y 10
(servicio excelente). Esta valoración se mantiene vinculada al comentario a lo largo del
proceso.

Obtener componentes léxicos


El siguiente paso una vez que se dispone de datos limpios es el de eliminar de todos los
textos las denominadas palabras vacías. Estas son las que están presentes en todos los
textos de un idioma determinado y en la misma proporción, por lo que su presencia en un

pág. 99
texto determinado no aporta información sobre el tema del texto o de su polaridad emocional.
Principalmente son, en español, las preposiciones, conjunciones, determinantes, algunos
adjetivos y los verbos haber, tener, ser y estar.
Tras este filtrado, las palabras se aíslan por sí mismas o mediante su raíz. Según este último
criterio, las palabras “hábito”, “habitual” y “habitualmente” podrían ser representadas
mediante la palabra “hábito”, que contiene el significado que se propaga al adjetivo y al
adverbio. Los textos preparados para ser procesados poseen, al final, sólo los componentes
léxicos considerados relevantes. Por ejemplo, la frase:

“El motivo de mi queja es comunicar la deficiente resolución de mi problema”

Quedaría reducida a:

“motivo queja comunicar deficiente resolución problema”

No hace falta demasiado análisis para aventurar la posible puntuación vinculada a este
comentario.

Bolsa de palabras
Para seguir avanzando en el proceso de análisis es necesario identificar numéricamente
cada componente léxico, de manera que puedan aplicarse a los documentos que los
contienen algoritmos de aprendizaje automático. El principal instrumento para ello es la bolsa
de palabras.
La bolsa de palabras de un grupo documentos -en nuestro caso de los textos de los 200.000
comentarios almacenados y puntuados- es el conjunto de todas los componentes léxicos
diferentes utilizados en esos documentos, a los que se ha asignado un índice numérico
diferente que lo identifica unívocamente dentro del conjunto.

Si se dispone de las “documentos”, ya filtrados de palabras vacías:

“conforme bien satisfecho”, “solucionado bien conforme bien”, “insatisfecho problema”

pág. 100
La bolsa de palabras estaría compuesta por las seis unidades léxicas: conforme, bien,
satisfecho, solucionado, insatisfecho y problema. Asignando valores a cada una de ellas se
obtendría:

1 2 3 4 5 6
conforme bien satisfecho solucionado insatisfecho problema

Y a partir de esos valores los documentos pueden representarse como vectores de seis
componentes:

“conforme bien satisfecho”:

1 1 1 0 0 0

“solucionado bien conforme bien”:

1 2 0 1 0 0

“insatisfecho problema”:

0 0 0 0 1 2

Vectores de características
Los vectores arriba mostrados se denominan vectores de características, y sirven para
representar numéricamente los contenidos de los documentos procesados. Obsérvese que
cada vector no sólo indica qué componentes léxicos se usan en el documento, sino también
el número de veces que aparecen en el mismo.

pág. 101
En un caso real estos vectores están formados por miles de elementos, ya que la longitud
del vector es el número de elementos léxicos diferentes detectados. Además, dado que un
documento en concreto utiliza, generalmente, un número de componentes léxicos mucho
menor que el total, lo habitual es que el vector esté constituido prácticamente por valores 0.
Este hecho permite, a los algoritmos de aprendizaje automático, optimizar el uso de memoria
sustituyendo largas cadenas de valores 0 por un resumen comprimido de las mismas.

tf-idf
Cuando se analizan datos textuales puede ocurrir que aparezcan una o más
palabras/componentes léxicos en la gran mayoría de documentos, independientemente de
su clase. En definitiva, estos componentes léxicos acaban por comportarse como si fueran
palabras vacías, aún sin serlo: están, pero no caracterizan el documento en el que figuran.
En el caso que estamos tratando, dado su contexto, la palabra “motivo” es susceptible de
aparecer en una gran cantidad de comentarios, tanto positivos como negativos, lo que hace
de ella un elemento poco relevante.
La frecuencia de término-frecuencia inversa de documento es una técnica que puede
utilizarse para atenuar el peso de los términos que ocurren con mucha frecuencia en la
colección de documentos e incrementa el peso de los términos que ocurren pocas veces. La
fórmula que expresa este concepto es la siguiente:

Vamos a leerla: el valor de tf-idf del término t en un documento d determinado se obtiene a


partir del producto de dos factores.

Que es el número de veces que el término t aparece en el documento d, y el factor idf(t,d)


dado por:

pág. 102
Donde N es el número total de documentos y DF(t) el número de documentos en los que
aparece el término t.

Aplicando esta fórmula a los datos:

Se obtienen los siguientes valores idf para los mismos:

Se aprecia de inmediato que el valor idf de los términos que aparecen en más ocasiones
adquieren un valor idf menor que el resto, es decir, se considerarán menos significativos.
Este es el objetivo de esta técnica.

Supongamos que estos términos aparecen en los comentarios 1, 2 y 3 el siguiente número


de veces:

pág. 103
El cálculo del valor final tf-idf los convertiría en:

El resultado de este proceso ha sido el de otorgar, a cada término en cada documento, un


nuevo valor de número de apariciones, produciéndose un mayor aumento en aquellos
términos que se dan con poca frecuencia. A partir de estos valores se reconstruyen los
vectores de características obtenidos en primera instancia y se lanza el algoritmo de
aprendizaje que se seleccione.

n-grama
A lo largo de la exposición anterior se ha utilizado tanto el término palabra como componente
léxico a la hora de describir los diferentes pasos que se han ido dando. Esto es así porque,
si bien lo normal es emplear la palabra como componente léxico básico de desglose de los
documentos, es posible utilizar agrupaciones de n palabras o n-gramas para efectuar el
estudio.
Utilizar 1-gramas es el equivalente a emplear las palabras aisladas, mientras que utilizar 2-
gramas tendría como resultado, para la frase “motivo queja comunicar deficiente resolución
problema”, el siguiente conjunto de 2-gramas: “motivo queja”, “queja comunicar”, “comunicar
deficiente”, “deficiente resolución”.
El empleo de un n-grama u otro depende del problema estudiado. Por ejemplo, n-gramas de
tamaño 3 y 4 dan un buen resultado en el filtrado de spam en correos electrónicos. Puede
ser una buena opción modificar el tamaño de los n-gramas utilizados en un proceso de
aprendizaje automático de forma que pueda conocerse la mejor solución.

pág. 104
Proceso de aprendizaje
Cuando ya se han obtenido los vectores de características de los documentos se está en
condiciones de aplicar al conjunto de textos un proceso de aprendizaje automático
supervisado. Cada comentario posee su valoración, por lo que el conjunto de vectores de
características y etiquetas de clase (positivo, negativo) permite construir las muestras
completas, que pueden ser divididas en un conjunto de entrenamiento y un conjunto de
prueba.
En este escenario, obtener un modelo válido que permita prever la etiqueta destino
(positivo/negativo) de un texto escrito por los usuarios del sistema es equivalente a afirmar
que se está en condiciones de evaluar el sentimiento de dichos usuarios.

GLOSARIO
 Análisis de sentimiento
Análisis de sentimiento (también conocido como minería de opinión) se refiere al uso
del procesamiento del lenguaje natural, análisis de texto y lingüística computacional
para identificar y extraer información subjetiva de los recursos.
[Link]

 Internet Movie Database


La Internet Movie Database (IMDb, en español: Base de datos de películas en
Internet) es una base de datos en línea que almacena información relacionada con
películas, personal de equipo de producción (incluyendo directores y productores),
actores, series de televisión, programas de televisión, videojuegos, actores de doblaje
y, más recientemente, personajes ficticios que aparecen en los medios de
entretenimiento visual.
Ofrece a los usuarios de internet la posibilidad de descargar subconjuntos de datos
para uso personal y no comercial.
[Link]
[Link]

pág. 105
[Link]

 Kit de herramientas de lenguaje natural


El kit de herramientas de lenguaje natural, o más comúnmente NLTK, es un conjunto
de bibliotecas y programas para el procesamiento del lenguaje natural (PLN)
simbólico y estadísticos para el lenguaje de programación Python.
[Link]

 Modelo “Bolsa de palabras”


El modelo de bolsa de palabras es una representación simplificada utilizada en el
procesamiento del lenguaje natural. En este modelo, un texto (como una oración o un
documento) se representa como la bolsa (conjunto múltiple) de sus palabras, sin tener
en cuenta la gramática e incluso el orden de las palabras, pero manteniendo la
multiplicidad.
El modelo de bolsa de palabras se usa comúnmente en los métodos de clasificación
de documentos donde la frecuencia de aparición de cada palabra se usa como una
característica para entrenar a un clasificador.
[Link]
[Link]

 Palabra vacía
Nombre que reciben las palabras sin significado como artículos, pronombres,
preposiciones, etc. que son filtradas antes o después del procesamiento de datos en
lenguaje natural.
[Link]

 PNL - Procesamiento de Lenguaje Natural


El procesamiento del lenguaje natural, abreviado PLN —en inglés natural language
processing, NLP— es un campo de las ciencias de la computación, inteligencia
artificial y lingüística que estudia las interacciones entre las computadoras y el
lenguaje humano.
[Link]

pág. 106
 tf-idf - Frecuencia de término-frecuencia inversa de documento
La frecuencia de ocurrencia del término en una colección de documentos es una
medida numérica que expresa cuán relevante es una palabra para un documento en
una colección.
[Link]

pág. 107
EJERCICIOS DE LOS DIFERENTES BLOQUES

BLOQUE 0

Ejercicios de desarrollo

1. Describe brevemente los tipos de datos que manejas en tu día a día en función de
su tipo: ¿son estructurados? ¿no estructurados?
2. Estima el tamaño de dichos datos.
3. ¿Qué sistemas utilizas para su almacenamiento? ¿Basta con dispositivos locales
como hojas de cálculo? ¿Almacenas información en carpetas?

Test

Pregunta Opción A Opción B Opción C

Las tres V
Volatilidad, velocidad, Velocidad, Volumen, Volumen, Veracidad,
asociadas a variedad. Volatilidad. Variedad.
biga data son

Los datos generados en la


Los datos generados en la
Los datos generados en actualidad requieren de
Una frase no actualidad requieren de
la actualidad son formas de procesamiento
es correcta imposibles de procesar.
sistemas de almacenamiento
basadas en algoritmos
adaptados.
paralelos.

Las acciones Ingesta, almacenamiento, Ingesta, almacenamiento,


Ingesta, almacenamiento,
típicas sobre procesamiento, análisis, respaldo, procesamiento,
respaldo, procesamiento
los datos son visualización visualización

Hadoop es un ecosistema
Hadoop implementa el
de código abierto creado
Una frase no paradigma Map Reduce en Hadoop es imprescindible
para procesar y
es correcta almacenar grandes
muchos de los productos que para realizar Data Science.
lo integran.
cantidades de datos.

pág. 108
Cuando una Debe recopilar todos los
Debe procurar centrarse Debe centrarse en aquellos
organización datos disponibles,
en aquellos que tengan que no hayan sido tenidos
quiere extraer significado para los
independientemente de su
en cuenta hasta el
información objetivos de la empresa.
formato, origen y fecha de
momento.
de sus datos creación.

El científico de datos no
necesita conocimientos
El científico de datos debe
Una frase no El científico de datos matemáticos, ya que las
poseer sólidos conocimientos
es correcta genera conocimiento.
matemáticos.
librerías ofrecidas por los
lenguajes de programación
obvian esa necesidad.

Una de las características


de Map Reduce es que el Map Reduce requiere para
Una frase no Map Reduce se basa en el
código que se ejecuta se su ejecución de un gran
es correcta envía a las máquinas que
lenguaje Java.
número de máquinas.
contienen los datos.

Las herramientas más


Es posible hacer ciencia de Es posible hacer ciencia de
Una frase es eficaces para realizar
datos a partir de lenguajes y datos a partir de lenguajes
correcta ciencia de datos son
de productos gratuitos. y de productos gratuitos.
costosas.

Las Pueden ser ampliadas Pueden ser ampliadas para Pueden equipararse a
para procesar big data, procesar big data, a costa de plataformas como Hadoop
plataformas apoyándose en hardware grandes inversiones en si se utilizan lenguajes de
de n-capas ... de bajo coste. hardware y software. programación apropiados.

Un lenguaje de propósito
Una evolución de R,
general, dotado de Un lenguaje funcional
pensada para profesionales
Python es extensiones que lo expresamente creado para la
no expertos en
capacitan para la ciencia ciencia de datos.
programación.
de datos.

pág. 109
BLOQUE 1

Ejercicios de desarrollo

1. Los datos que manejas en tu día a día, ¿los conoces hasta el punto de poder
agruparlos por características? ¿eres capaz de enumerar los grupos en los que
consideras que pueden ser clasificados?
2. ¿Dispones de información suficiente para describir proyectos, proveedores u ofertas
en términos de aprendizaje automático? ¿Puedes, por ejemplo, prever el éxito de un
proyecto en función de proyectos similares y de sus características? Si no es así,
¿qué características consideras necesarias y cómo las obtendrías?

Test

Pregunta Opción A Opción B Opción C


El aprendizaje supervisado El aprendizaje no
El aprendizaje no
implica que las muestras supervisado puede ser
supervisado genera
Una frase no es disponibles deben poseer, llevado a cabo como una
grupos que contemplan
correcta además de características, primera aproximación a
todas las características
un valor destino conocido y datos sobre los que
de los datos iniciales.
veraz. nunca se ha trabajado.
El modelo obtenido se
El modelo obtenido se
ajusta muy bien a los
El overffiting es ajusta muy bien a los datos El modelo obtenido se
datos de entrenamiento,
un efecto que se de entrenamiento y de ajusta mal a los propios
pero fracasa con los
caracteriza por prueba, pero fracasa con datos de entrenamiento.
datos de prueba y con
datos nuevos.
datos nuevos.
Es el proceso por el cual Conlleva procesos de
se obtienen, a partir de reducción de
La extracción las características dimensionalidad, de
Es el proceso opuesto a la
de selección de características.
iniciales de los datos, manera que los datos
características nuevas características pueden ser descritos por
que describen los datos menos características que
con más claridad. las iniciales.
Los algoritmos de
Los árboles de decisión
aprendizaje automático
se crean a partir del Los árboles de decisión
supervisados pueden
Una frase no es criterio de ganancia de pueden mostrar
apoyarse en la
correcta minimización de una
información al pasar de problemas de underfitting
un nodo a un grupo de o ajuste defectuoso.
función de coste para
subnodos.
obtener la función objetivo.
Los árboles de Permiten conocer al detalle Describen cualquier
Sólo son de utilidad
decisión la distribución de las muestra de datos con

pág. 110
características de las suficiente precisión, cuando las muestras son
muestras, aportando incluso cuando no existe linealmente separables.
información a todos los separabilidad lineal de
roles de la organización. ningún tipo.
Permiten conocer con
Se construyen a partir de
Son herramientas óptimas facilidad cuáles son las
Los bosques las características más
para efectuar predicciones características más
aleatorios en tiempo real. significativas de un grupo
significativas de un grupo
de datos.
de datos.
Se descartan las Se dota al modelo de
Mediante la características no nuevas características, Se soluciona el problema
reducción de relevantes en un proceso que se expresan en de underfitting o ajuste
dimensionalidad de agrupación o función de las defectuoso.
clasificación. características iniciales.
A la hora de La media, la moda o la
imputar valores mediana de la Siempre es mejor eliminar
La media, la moda o la
ausentes de una característica, a ser del estudio las muestras
mediana de la
característica característica.
posible calculadas en con valores de
pueden función de la etiqueta características ausentes.
utilizarse destino de las muestras.
Utiliza parte de los datos
Utiliza un 50% de los
disponibles para crear el
Utiliza todos los datos datos como datos de
Un proceso de modelo y parte para
disponibles para crear el entrenamiento, es decir,
aprendizaje modelo, que se testea
verificar su capacidad
para crear el modelo, y un
supervisado después con datos nuevos.
predictiva a partir de la
50% de los datos como
matriz de confusión
datos de prueba.
obtenida.
Los tipos de
error en un
proceso de Sesgo, varianza y error Sesgo, varianza y error
Sesgo y varianza.
aprendizaje cuadrático medio. irreductible.
supervisado
son
Árboles de decisión,
Algoritmos con Regresión logística y
regresión lineal y regresión Árboles de decisión.
bajo sesgo son logística.
lineal.
La regresión logística
La regresión logística, al
permite conocer la La regresión logística es
Una frase no es igual que la regresión
probabilidad de que una un algoritmo de baja
correcta muestra presente cierto
lineal, son modelos
varianza.
clasificatorios continuos.
valor destino.
La
Se emplea para evitar el Se emplea para evitar el No sirve para identificar
regularización ajuste defectuoso. ajuste excesivo. características relevantes.
de un algoritmo
Es un valor atípico cuyo
Es un valor que se presenta
efecto sobre el proceso Son valores atípicos y
en una o en pocas
de aprendizaje puede escasos, que no influyen
Un outlier muestras, y cuya magnitud
evitarse mediante la en un proceso de
difiere mucho de la del resto
normalización de aprendizaje automático.
de datos.
características.
El escalado Se apoya en el valor Se apoya en los valores
Se apoya en el valor medio medio de la característica máximo y mínimo
mediante la de la característica. y en la desviación típica presentados por la
normalización de sus valores. característica.

pág. 111
BLOQUE 2

Ejercicios de desarrollo

Para los siguientes grafos obtener:

 Orden y tamaño.
 Grado, antecesores y sucesores de cada nodo, si aplica.
 Matriz de adyacencia.

pág. 112
Test

Construir un grafo direccional que responda a las siguientes características :

BLOQUE 3

Ejercicios de desarrollo

1. Construir la bolsa de palabras y los vectores de características de las siguientes


frases, considerando cada una como un documento independiente:

 El equipo de instalación no llegó puntualmente.


 La avería fue satisfactoriamente reparada.
 No fue posible conectar el equipo al dispositivo.

Para ello emplea el archivo de palabras vacías que se adjunta (_spanish.txt).

pág. 113
2. Obtener los valores idf para los siguientes términos:

3. Con los valores obtenidos, actualizar la siguiente tabla:

Test

1. Construir la bolsa de palabras y los vectores de características de las siguientes


frases, considerando cada una como un documento independiente:

 Olvidé la contraseña del dispositivo.


 El problema fue resuelto.
 El técnico reparó la conexión del dispositivo.
 El problema sigue produciéndose.

Para ello emplea el archivo de palabras vacías que se adjunta (_spanish.txt).

2. Obtener los valores idf para los siguientes términos:

pág. 114
3. Con los valores obtenidos, actualizar la siguiente tabla:

pág. 115

También podría gustarte