Introducción al Machine Learning con MATLAB - Erik Valdemar Cuevas Jiménez - E-Book

Introducción al Machine Learning con MATLAB E-Book

Erik Valdemar Cuevas Jiménez

0,0

Beschreibung

El Machine Learning representa una herramienta importante para la exploración y la extracción de conocimiento. Su principal objetivo es construir modelos que permitan describir posibles patrones estructurales en la información a partir de los datos, con el objetivo de tomar decisiones o hacer predicciones. En la última década, el número de usuarios de Machine Learning ha crecido de forma espectacular, pero muchos han presentado grandes dificultades a la hora de generar un plan adecuado que les permita pasar de los conceptos fundamentales a la solución de problemas en sus áreas de interés. El objetivo de este libro es brindar una visión particular de los principales métodos de Machine Learning y de su implementación, es decir, proveer de los principales conceptos en los que se basan estos métodos y aplicarlos a problemas típicos del procesamiento de datos. El libro se fundamenta en MATLAB, el cual es considerado hoy en día como un estándar en la programación científica e industrial. MATLAB contiene, dentro de sus funciones, poderosos métodos numéricos que pueden ser adaptados a aplicaciones particulares. Bajo estas condiciones, el usuario puede estar más concentrado en la estructura de su aplicación que en la programación misma. Asimismo, el libro es el resultado de un desmantelamiento completo del plan de estudios estándar del Machine Learning en sus componentes más fundamentales, así como de un reensamblaje de esas piezas, cuidadosamente pulidas y organizadas. Contiene descripciones intuitivas y, a su vez, rigurosas de los conceptos imprescindibles para analizar información a partir de datos. Todo esto deviene en una lectura que le permitirá: -Entender los principales conceptos en los que se basa el Machine Learning. -Implementar los métodos de Machine Learning. -Usar los diferentes recursos online que incluyen código fuente y bases de datos. -Comprender las principales técnicas de programación con MATLAB orientadas a la implementación de aplicaciones de Machine Learning. Sin importar si tiene poca o mucha experiencia en programación, con este libro obtendrá las habilidades teóricas y prácticas para emplear el Machine Learning en su totalidad. Hágase con su ejemplar y descubra los detalles estructurales de la información de sus propios proyectos para predecir y manipular con precisión su comportamiento futuro.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 309

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Introducción al Machine Learning con MATLAB

Primera edición, 2021

© 2021 Erik Valdemar Cuevas, Omar Avalos, Primitivo Emanuel,

             Arturo Valdivia y Marco Antonio Pérez

© 2021 MARCOMBO, S.L.

             www.marcombo.com

Diseño de la cubierta: ENEDENÚ DISEÑO GRÁFICO

Corrección: Mónica Muñoz y Héctor Tarancón

Directora de producción: M.ª Rosa Castillo

Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a Cedro (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra.

 

ISBN: 978-84-267-3282-8

Producción del ePub: booqlab

Índice general

Prólogo

CAPÍTULO 1. Fundamentos del Machine Learning

1.1. Introducción

1.2. Conceptos sobre datos

1.3. Conceptos sobre aprendizaje

1.4. Tipos de problemas

1.5. Tipos de datos

1.6. Tipos de aprendizajes

1.7. Etapas de implementación del aprendizaje máquina

1.8. Exploración y preparación de datos

1.9. Visualización de datos

Referencias

CAPÍTULO 2. Bases matemáticas

2.1. Introducción

2.2. Probabilidad

2.2.1. Variables aleatorias discretas

2.2.2. Reglas fundamentales

2.2.2.1. Probabilidad de la unión de dos elementos

2.2.2.2. Probabilidad de la intersección de dos elementos

2.2.2.3. Probabilidad condicional

2.2.3. Algunas distribuciones comunes

2.2.3.1. Distribución binomial y Bernoulli

2.2.3.2. Distribución multinomial

2.2.3.3. Distribución de Poisson

2.2.3.4. Distribución uniforme

2.2.3.5. Distribución normal (gaussiana)

2.3. Estadística

2.3.1. Medidas de tendencia central

2.3.1.1. Media aritmética

2.3.1.2. Mediana

2.3.1.3. Moda

2.3.2. Medidas de variabilidad

2.3.2.1. Varianza

2.3.2.2. Desviación estándar

2.3.2.3. Rango

2.3.3. Herramientas gráficas

2.3.3.1. Gráfica de líneas

2.3.3.2. Gráfica de barras

2.3.3.3. Gráfica de cajas

2.3.3.4. Histograma

2.4. Álgebra lineal

2.4.1. Vectores y matrices

2.4.2. Suma, resta y producto escalar de vectores

2.4.3. Norma vectorial

2.4.3.1. Norma L1

2.4.3.2. Norma L2

2.4.4. Matrices

2.4.4.1. Suma, resta y multiplicación de matrices

2.4.4.2. Multiplicación escalar de una matriz

2.4.4.3. Multiplicación de matrices

2.4.5. Tipo de matrices

2.4.6. Descomposición de matrices

2.4.6.1. Descomposición LU

2.4.6.2. Descomposición de los valores y vectores propios

Referencias

CAPÍTULO 3. Clasificación

3.1. Introducción

3.2. Vecinos cercanos (k-NN)

3.2.1. Ejemplo de clasificación utilizando k-NN en MATLAB

3.3. Regresión logística

3.3.1. Ejemplo de clasificación utilizando la regresión logística en MATLAB

3.4. Naive Bayes

3.4.1. Teorema de Bayes

3.4.2. Clasificador Naive Bayes

3.4.3. Ejemplo de clasificación Naive Bayes utilizando MATLAB

3.5. Análisis del discriminante de Fisher

3.5.1. Ejemplo de clasificación mediante discriminante de Fisher utilizando MATLAB

3.6. Máquina de vector soporte (SVM)

3.6.1. Ejemplo de clasificación con máquina vector soporte utilizando MATLAB

Referencias

CAPÍTULO 4. Regresión lineal

4.1. Introducción

4.2. Regresión lineal simple

4.3. Mínimos cuadrados

4.4. Gradiente descendente en regresión lineal simple

4.5. Ecuación normal en regresión lineal simple

4.6. Regresión lineal múltiple

Referencias

CAPÍTULO 5. Agrupamiento (clustering)

5.1. Introducción

5.2. Algoritmo de K-means

5.2.1. El uso de K-means en MATLAB

5.3. Método de expectación-maximización

5.3.1. Modelos de mezclas gaussianas

5.3.2. Estimación de máxima probabilidad

5.3.3. EM en una dimensión

5.3.4. EM en varias dimensiones

5.4. Agrupación jerárquica

5.4.1. Medidas de similaridad entre los clústeres

5.5. El algoritmo de Fuzzy C-means

Referencias

CAPÍTULO 6. Reducción de dimensionalidad

6.1. Introducción

6.2. Análisis de componentes principales (PCA)

6.2.1. Ejemplo en MATLAB de análisis de componentes principales (PCA)

6.3. Análisis de componentes independientes (ICA)

6.3.1. Distribuciones gaussianas no permitidas

6.3.2. Estimación de máxima probabilidad

6.3.3. Ejemplo en MATLAB de análisis de componentes independientes (ICA)

6.4. Análisis de factor (FA)

6.4.1. Ejemplo en MATLAB de análisis de factor (FA)

Referencias

CAPÍTULO 7. Métodos unidos

7.1. Árboles de decisión

7.2. Algoritmo CART

7.3. Árboles de decisión para clasificación

7.4. Árboles de decisión para regresión

7.5. Funciones de MATLAB para árboles de decisión

7.6. El método Bootstrap

Referencias

CAPÍTULO 8. Reconocimiento de objetos

8.1. Comparación en imágenes a escala de grises

8.2. Distancia entre patrones

8.3. Distancia y correlación

8.4. La correlación cruzada normalizada

8.5. Coeficiente de correlación

8.6. Reconocimiento de patrones usando el coeficiente de correlación

8.7. Comparación de imágenes binarias

8.7.1. La transformación de distancia

8.7.2. El algoritmo de Chamfer

8.8. Índice de relación de Chamfer

Referencias

CAPÍTULO 9. Estadística inferencial

9.1. Introducción

9.2. Distribución de muestreo

9.2.1. Distribución normal

9.2.2. Distribución t

9.3. Estimación de parámetros

9.3.1. Estimación por intervalos

9.4. Pruebas de hipótesis

Referencias

CAPÍTULO 10. Evaluación del desempeño

10.1. Introducción

10.2. Ajustes sobre las predicciones de un clasificador

10.2.1. Tipos de errores

10.2.2. Matriz de confusión

10.3. Métricas para clasificadores

10.3.1. Exactitud (ACC)

10.3.2. Razón de falsos positivos (FPR)

10.3.3. Sensibilidad (VPR)

10.3.4. Especificidad (SPC)

10.3.5. Precisión

10.3.6. F1

10.3.7. F2

10.4. Curva ROC

10.5. El balance entre el sesgo y la varianza

10.6. Evaluación de modelos

10.6.1. Técnicas comunes de validación cruzada

10.7. Métricas de error en regresores lineales

Referencias

PRÓLOGO

Durante muchos años, los humanos hemos buscado detalles estructurales en la información, tales como reglas o patrones con los que describir, con precisión, la manera en cómo funcionan los sistemas importantes que nos rodean, sean estos sistemas agrícolas, biológicos, físicos, financieros, etc. Estos detalles estructurales de la información permiten comprender mejor un sistema, predecir con precisión su comportamiento futuro y, en última instancia, manipularlo. Sin embargo, el proceso de encontrar la estructura adecuada que parece describir un sistema dado no ha sido históricamente una tarea sencilla. Todavía, en el pasado reciente, los datos disponibles que registran alguna característica emitida por un sistema han sido un elemento extremadamente escaso. Además, la capacidad para calcular, para probar varios métodos y verificar cuál presenta un mejor funcionamiento se ha limitado a lo que se podía lograr con calculadoras o equipos con escasos recursos informáticos. Ambos factores limitaron la gama de problemas que, en el pasado, se pudieron investigar y los forzaron, inevitablemente, a utilizar enfoques filosóficos y/o visuales para la extracción de conocimiento a partir de la información. Hoy, sin embargo, se tiene un mundo inundado de datos, y tenemos un poder informático impresionante al alcance de la mano. Bajo estas condiciones, se puede actualmente abordar una gran gama de problemas mucho más compleja, y adoptar un enfoque mucho más empírico para la extracción de información que en el pasado. El Machine Learning (o «aprendizaje de máquinas», en castellano), el tema de este libro, es una expresión usada para describir una colección amplia (y cada día creciente) de métodos de extracción de conocimiento diseñados para identificar, adecuadamente, información del sistema de manera empírica a partir de un conjunto de datos.

El Machine Learning representa una herramienta importante para la exploración de la extracción de conocimiento. Su principal objetivo reside en construir modelos que permitan describir posibles patrones estructurales en la información a partir de los datos, con el objetivo de tomar decisiones o hacer predicciones. El Machine Learning es un área que ha crecido vertiginosamente en los últimos años requiriendo, cada vez más, de técnicas sofisticadas que puedan tratar problemas más complejos de una manera flexible y con capacidades de adaptación. El Machine Learning abarca un numeroso conjunto de disciplinas tales como las matemáticas, la estadística, la informática, la ingeniería, etc.

El objetivo de este libro radica en brindar una visión particular de los principales métodos de Machine Learning y su implementación. La idea es proveer de los principales conceptos en los que se basan dichos métodos, y aplicarlos a problemas típicos del procesamiento de datos. Existe una gran cantidad de libros centrados solo en los aspectos teóricos de las técnicas de Machine Learning. Por otro lado, existe también una gran cantidad de bibliografía que brinda únicamente un nivel introductorio, sin considerar los principales detalles de los métodos. En general, en tales libros no se considera ni siquiera el aspecto práctico ni de implementación. Bajo dichas condiciones, con este libro se pretende llenar el espacio entre esas dos perspectivas. De esta manera, se intenta abordar específicamente las características importantes de los enfoques del Machine Learning, de tal modo que el lector pueda implementarlos y utilizarlos sin problemas a casos reales.

En la última década, el número de usuarios de Machine Learning ha crecido de forma espectacular. Partiendo de un círculo relativamente pequeño en los departamentos de Informática, Ingeniería y Matemáticas, los usuarios de Machine Learning ahora incluyen a estudiantes e investigadores de todas las áreas del conocimiento, así como a miembros de la industria, científicos de datos, emprendedores y entusiastas del Machine Learning. Este libro es el resultado de un desmantelamiento completo del plan de estudios estándar del Machine Learning en sus componentes más fundamentales, y un reensamblaje de esas piezas (cuidadosamente pulidas y organizadas), que creemos beneficiarán más a la audiencia cada vez mayor de estudiantes. Contiene descripciones intuitivas, pero rigurosas, de los conceptos más fundamentales y necesarios para analizar información a partir de datos.

En esta obra se presentan enfoques para la exploración y el análisis de datos. En particular, se discute acerca de los esquemas de Machine Learning y de Data Mining. Aunque el libro incluye diferentes aspectos matemáticos de la teoría de Machine Learning y de los operadores de reconocimiento de patrones, no debe ser considerado un libro meramente teórico. Su contenido se encuentra más relacionado con los aspectos prácticos de tales métodos, y su aplicación como herramientas de ciencias de la computación. El principal objetivo reside en brindar una visión unificada de los métodos de Machine Learning, de tal forma que se presentan los principios fundamentales, así como los métodos considerados esenciales.

Los esquemas de Machine Learning tratados en este libro son examinados con el objetivo de que sean implementados y utilizados. Esta obra, a diferencia de otras existentes sobre Machine Learning o ciencia de datos, ha sido escrita desde una perspectiva pedagógica. Su material ha sido tratado de tal forma que el lector es asistido para obtener una idea clara, pero, al mismo tiempo, rigurosa de cada método. En muchos libros se discute acerca de una gran variedad de métodos como un recetario sin ningún soporte teórico. Por otro lado, en otros libros también se consideran los enfoques de Machine Learning de forma solamente teórica, siendo no totalmente accesibles a estudiantes o profesionales de otras áreas ajenos a las ciencias de la informática, como lo son la administración o la economía. Por el contrario, se pretende hacer un compromiso entre ambos objetivos, presentando cada enfoque con el contenido teórico necesario, además de información de fácil implementación.

El libro provee, así, de los conceptos necesarios que habilitan al lector a implementar y modificar los métodos de Machine Learning, con el fin de obtener las habilidades proyectadas en las necesidades específicas de cada problema. Para ello, se introducen numerosos ejemplos de problemas y soluciones, con los que se demuestra la potencia de tales métodos. Se provee también, con cada enfoque, de ejemplos simples fáciles de entender, preparados de una manera intuitiva al lector, con los que esperar el resultado fácilmente. Esto contrasta con la mayoría de los libros de esta área, donde se presentan ejemplos de tal complejidad que resulta difícil el entendimiento del propio problema, sin contar con la comprensión de su solución.

La obra se basa enteramente en el software MATLAB®, el cual es considerado hoy día como un estándar en la programación científica e industrial. MATLAB contiene ya, dentro de sus funciones, poderosos métodos numéricos, que pueden ser adaptados a aplicaciones particulares. Bajo tales condiciones, el usuario puede estar más concentrado en la estructura de su aplicación que en la programación misma. Presentar el código de los programas como ayuda al lector constituye uno de los principales puntos del libro en el área de las ciencias de la informática. Además, colgarlos en una página web puede derivar en su desaparición con el transcurso de los años. Así, una de las principales características de este libro reside en que todos los enfoques presentados han sido programados en MATLAB, y su código se presenta impreso en el libro. Resulta importante hacer notar, igualmente, que los códigos contenidos en el libro no intentan ser eficientes o competitivos, desde la perspectiva de la programación. En lugar de esto, se ha decidido presentar el código de la implementación de cada método de una forma pedagógica, de tal manera que el lector comprenda cómo el método se comporta y ejecuta.

Con la notación usada en el libro, se asume que el lector se halla familiarizado con conceptos básicos de álgebra, geometría, teoría de conjuntos y cálculo. En términos generales, un lector no aprovechará esta obra si no tiene la intención de implementar informáticamente los métodos presentados. Bajo tales condiciones, se considera como prerrequisito contar con conocimientos básicos de programación.

Debido a su contenido y a la estructura del libro, este resulta adecuado para estudiantes y profesionales en el área de ciencias de la informática, inteligencia artificial, investigación de operaciones, matemáticas aplicadas y algunas otras disciplinas. De igual manera, muchos ingenieros que trabajan en la industria pueden encontrar interesante el contenido de la obra. En este caso, las sencillas exposiciones y el código provisto pueden servir de ayuda para la rápida solución a problemas de extracción de información a partir de datos que, normalmente, surgen en varios nichos y proyectos industriales o comerciales.

Escribir un libro de Machine Learning parece intrascendente. Existen ya varios libros de texto y de consulta dirigidos a lectores con diferentes niveles de conocimiento en la materia. Sin embargo, de las decenas de obras que existen, estos se reducen a prácticamente muy pocos, si se restringen las opciones a los escritos en español. Bajo tales circunstancias, cuando se concibió el proyecto de escritura se decidió que era necesario tener algo que decir sobre el orden, la profundidad y la manera de exponer los conceptos del Machine Learning en nuestro idioma.

Nuestra premisa original fue que los métodos de Machine Learning pueden exponerse de manera comprensible para lectores con poco entrenamiento matemático. En consecuencia, intentamos escribir un libro cuyo contenido fuese no solo entendible, sino aplicable por cualquier estudiante de licenciatura. Aunque algunos conceptos pueden ser complejos para su comprensión cabal, tratamos de exponerlos con claridad y sin pretender disimular su dificultad implícita. Sin sacrificar las necesidades inmediatas del lector, subrayamos la importancia de que se comprendan los métodos descritos, bajo el supuesto de que, a veces, resulta preferible no usar tales métodos a usarlos mal.

En el largo proceso de escribir el libro, nuestra perspectiva ha variado. Planeado para un curso completo, el material que presentamos puede cubrirse en un semestre. El libro se compone de 10 capítulos. Los detalles en el tratamiento de cada uno de ellos se describen a continuación.

En el capítulo 1 se presentan los conceptos básicos del aprendizaje máquina, que permitirán al lector familiarizarse con el tema. Además, se introducen los pasos básicos en la aplicación del aprendizaje máquina. Por último, se discute acerca de la importancia de los tipos de datos, su preprocesamiento y su despliegue. Los objetivos principales de este capítulo residen en aprender, de forma rápida y sencilla, el proceso de aplicación del aprendizaje máquina, así como comprender sus principios.

El capítulo 2 es considerado también introductorio. En él se abordarán las herramientas matemáticas, las cuales nos ayudarán a comprender, de una mejor manera, las técnicas de aprendizaje máquina que se revisarán en capítulos posteriores. En este capítulo se tratarán las bases de probabilidad, álgebra lineal y estadística.

En el capítulo 3, por su parte, se estudiará la problemática de la clasificación, uno de los principales temas del aprendizaje máquina. El concepto principal de la clasificación es la correcta separación de elementos en grupos o clases, de modo que, cuando un nuevo elemento es adquirido, pueda etiquetarse dentro del grupo con el cual comparta más características, esto con el mínimo error posible en la clasificación. Ciertamente, la clasificación no representa una tarea fácil de realizar, debido a muchos factores que han de ser considerados, por lo que existe una amplia variedad de técnicas para llevar a cabo dicho trabajo. En este capítulo se describen diferentes métodos de clasificación para distintos esquemas, en los que un solo clasificador no podría realizar la separación de manera correcta.

En el capítulo 4 se analizan diversas técnicas clásicas de predicción mediante el ajuste de parámetros lineales. Este tipo de metodologías son muy populares dentro del área de aprendizaje automático debido, principalmente, a que la matemática con que se las describe se presenta relativamente sencilla y de fácil implementación. La idea fundamental en este tipo de metodologías de regresión resulta muy similar a la de clasificación analizada en el capítulo anterior. La diferencia radica en que, mientras que con la clasificación se predice una variable de tipo categórica, en la regresión se infiere una variable de respuesta continua. En el desarrollo del capítulo se analiza de manera detallada las bases matemáticas de las distintas técnicas de regresión, así como su implementación en el ambiente del software MATLAB®.

En el capítulo 5 se realiza una introducción a varios paradigmas de agrupamiento y asociación de datos. En él se analizan los principales enfoques de agrupamiento, como lo son los basados en centroide, los jerárquicos, los basados en principios difusos y aquellos en los que se considera la optimización de una función objetivo. En la estructura del capítulo, cada técnica es tratada de forma individual analizando primeramente sus conceptos teóricos. Después, un ejemplo numérico tiene el objetivo de facilitar su comprensión. Finalmente, una implementación sencilla en MATLAB es incorporada y discutida.

En el capítulo 6 se aborda el tema de la reducción de dimensionalidad, proceso en el cual, teniendo datos con altas dimensiones, estos son mapeados en un espacio con una menor dimensionalidad. Tales técnicas se emplean cuando se tiene una gran cantidad de datos en altas dimensiones, esto se hace para poder tratar dichos datos de una manera más práctica con un esfuerzo computacional menor, al igual que se evita para ciertos casos la mala generalización para técnicas de aprendizaje. Existen varias técnicas para llevar a cabo dicha reducción, en este capítulo se analizarán las técnicas más utilizadas para la reducción de dimensionalidad.

En el capítulo 7 se expone una introducción a varios paradigmas importantes del Machine Learning, como lo son los árboles de decisión y el método Bootstrap. Los árboles de decisión son herramientas importantes para la clasificación y estimación de datos. Estos presentan una estructura de subdivisión de la información a partir de umbrales, y aportan información completa acerca de cómo los datos se dividen para efectuar su propósito de clasificación o estimación. Esta información resulta importante para analizar la naturaleza del conjunto de datos. Por otro lado, el enfoque de Bootstrap permite caracterizar el valor medio y el error producido por la estimación de un parámetro estadístico obtenido de un conjunto de datos. Su uso es importante en el Machine Learning, ya que obtener esta información por medios estadísticos tradicionales resulta extremadamente complejo.

En el capítulo 8 se analiza el problema de la comparación de patrones a través de imágenes, o bien la localización de una parte conocida de la imagen, la cual normalmente se describe como «patrón». Este tipo de problema aparece normalmente en aplicaciones tales como la búsqueda de puntos de referencia en visión estéreo, la localización de un determinado objeto en una escena, o bien el seguimiento de objetivos en una secuencia de imágenes. La idea fundamental de la comparación de imágenes (Template Matching) es sencilla: el patrón (template) que hay que encontrar en la imagen se mueve sobre todos los píxeles de la imagen, como si fuera un filtro lineal, y se mide la semejanza entre el patrón y los correspondientes píxeles de la imagen que abarca. Evidentemente, la determinación de semejanza entre el patrón y cada uno de los puntos de la imagen no resulta sencilla, ya que debe considerarse que tal medida de semejanza sea confiable en casos como que el patrón se encuentre la imagen escalada, rotada o distorsionada. En el capítulo se hará una descripción de las diferentes medidas de semejanza utilizadas para la comparación de imágenes.

En el capítulo 9 se introduce la estadística inferencial, la cual tiene por objetivo fundamental determinar ciertas particularidades sobre una población, a partir de un número limitado de elementos. En el desarrollo del capítulo se analizan las bases matemáticas de los principales métodos y procedimientos de la estadística inferencial, así como su implementación mediante la herramienta de softwareMATLAB®. El capítulo se inicia con una descripción de las distribuciones de muestreo comunes; posteriormente, se aborda la estimación de los parámetros de la población para dar paso a los intervalos de confianza y pruebas de hipótesis.

Finalmente, en el capítulo 10 se analiza la evaluación de los modelos producidos mediante una técnica de Machine Learning. La evaluación de un modelo entrenado resulta vital para determinar si su funcionamiento es excelente o regular, al realizar predicciones con nuevos datos o instancias. Debido a que las futuras instancias tienen valores desconocidos para nuestro modelo, es necesario emplear métricas sobre el funcionamiento del modelo de Machine Learning, para determinar si este tendrá la capacidad de generalizar exitosamente datos con los que no fue entrenado.

Durante más de diez años hemos ensayado múltiples maneras de exponer este material a auditorios disímiles. En el camino se ha contado con la invaluable tolerancia de nuestros alumnos, principalmente del Cucei, de la Universidad de Guadalajara en México. Se agradece, de manera especial, a nuestros compañeros profesores del Centro Universitario de Ciencias Exactas e Ingenierías. Tantas colaboraciones, ayudas y discusiones con colegas ameritarían un capítulo adicional. A todos, nuestro testimonio de gratitud.

Erik CuevasOmar AvalosPrimitivo DíazArturo ValdiviaMarco Pérez

Cucei, Universidad de GuadalajaraGuadalajara, Jal, México

CAPÍTULO 1

Fundamentos del Machine Learning

En este capítulo se presentan los conceptos básicos del aprendizaje máquina, que permitirán al lector familiarizarse con el tema. Además, se introducen los pasos básicos en la aplicación del aprendizaje máquina. Por último, se discute acerca de la importancia de los tipos de datos, su preprocesamiento y su despliegue. Los objetivos principales de este capítulo son: aprender de forma rápida y sencilla el proceso de aplicación del aprendizaje máquina, así como comprender sus principios.

Objetivos:

• Conocer los conceptos del aprendizaje máquina

• Entender las diferentes etapas del aprendizaje máquina

• Aprender a utilizar las herramientas en la preparación de datos para el aprendizaje máquina en problemas reales

1.1. Introducción

A fin de responder «¿qué es el aprendizaje máquina?», es necesario partir de la siguiente definición dada por Bostjan Kaluza (2016) [1]:

El aprendizaje máquina es un subcampo de la inteligencia artificial. Este ayuda a los ordenadores a aprender y actuar como seres humanos con la ayuda de algoritmos y datos. Dado un conjunto de datos, un algoritmo de aprendizaje máquina aprende diferentes propiedades de los datos e infiere las propiedades de los datos que se pueden presentar en el futuro.

A partir de la definición anterior, se puede inferir que el objetivo del aprendizaje máquina es desarrollar sistemas que permitan a los ordenadores aprender y generalizar comportamientos. En la actualidad, el aprendizaje máquina se aplica en diversas áreas: en medicina, como auxiliar en el diagnóstico de diversas patologías y como clasificador de secuencias de ADN; en sistemas financieros, analizando el mercado de valores y detectando fraudes en el uso de tarjetas de crédito; o en informática, aplicado en sistemas de reconocimiento de habla y lenguaje escrito, entre otras.

Existen conceptos clave en el aprendizaje máquina que sientan las bases para comprender este campo. Estos pueden dividirse en dos áreas sustanciales: los conceptos sobre datos y los conceptos sobre aprendizaje. Los conceptos sobre datos otorgan la nomenclatura apropiada para describir los datos y sus conjuntos. Los conceptos sobre aprendizaje describen el aprendizaje obtenido a partir de los datos.

1.2. Conceptos sobre datos

Como se mencionó anteriormente, los métodos de aprendizaje máquina aprenden a partir de los ejemplos. Resulta importante tener una buena comprensión de los datos de entrada y la variada terminología utilizada al describir los datos. Los datos pueden estructurarse en filas y columnas, como una tabla de base de datos o como una hoja de cálculo. Estos son conocidos como «estructura tradicional de datos», y son comunes en el campo del aprendizaje máquina.

Los conceptos básicos para datos del aprendizaje máquina se definen a continuación:

Observación: es la entidad más pequeña, con propiedades de interés para un estudio que puede ser registrado.

Características: son las propiedades o atributos de las observaciones que pueden ser útiles para el aprendizaje.

Tipo de datos: las características tienen un tipo de datos. Estos pueden ser de valor real o entero, o pueden tener un valor categórico u ordinal.

Conjuntos de datos: una colección de observaciones es un conjunto de datos y, cuando se trabaja con métodos de aprendizaje máquina, generalmente se requieren algunos conjuntos de datos para diferentes propósitos.

Datos de entrenamiento: conforman un conjunto de datos que se incorpora al algoritmo de aprendizaje máquina para entrenar al modelo.

Datos de prueba: constituyen un conjunto de datos utilizado para validar la precisión del modelo, pero que no se emplea para entrenar al modelo. Se lo conoce también como «conjunto de datos de validación».

Además de los datos mencionados con anterioridad, existen otros, como imágenes, vídeos y texto. Estos son llamados «datos no estructurados», para poder ser aplicados a métodos de aprendizaje máquina, los cuales deben ser transformados a una forma estructurada de datos. Los datos no estructurados no se consideran en este libro.

1.3. Conceptos sobre aprendizaje

En este apartado, se consideran algunos conceptos de alto nivel sobre el aprendizaje. El aprendizaje máquina se apoya/basa en el aprendizaje con algoritmos. Los conceptos básicos sobre aprendizaje se definen a continuación:

Inducción: los algoritmos de aprendizaje máquina aprenden a través de un proceso llamado «inducción del aprendizaje». Este es un proceso de razonamiento donde se realiza un modelo de la información (datos de entrenamiento).

Generalización: el objetivo de la generalización reside en encontrar el patrón o modelo más significativo para las instancias del entrenamiento. A partir de este modelo, se realizan predicciones o decisiones.

Sobreentrenamiento: se conoce como sobreentrenamiento al hecho de que un modelo aprenda los datos de entrenamiento de una manera tan precisa o exacta que pierda la capacidad de generalizar. El resultado es un bajo rendimiento en datos que no sean del conjunto de entrenamiento.

Subentrenamiento: se refiere a cuando un modelo no ha aprendido suficientemente la estructura de la base de datos, debido a que el proceso de aprendizaje finalizó de forma temprana o inesperada. El resultado que otorga el subentrenamiento resulta bueno en términos de generalización, pero su rendimiento es deficiente en la mayoría de los datos, incluido el conjunto de datos de entrenamiento.

Aprendizaje en línea: el aprendizaje en línea se lleva a cabo cuando un método de aprendizaje máquina se alimenta con observaciones de datos del tema en cuestión, a medida que estén disponibles. El aprendizaje en línea requiere métodos que sean robustos para los datos ruidosos, pero también puede producir modelos que sean más afines con el estado actual del conjunto de datos del tema en cuestión.

Aprendizaje fuera de línea: el aprendizaje fuera de línea se produce cuando el método se alimenta con datos preparados previamente, que, luego, se utilizan de manera operacional en datos no observados. El proceso de entrenamiento puede controlarse y puede ajustarse de forma cuidadosa, porque el alcance de los datos de entrenamiento es conocido [2].

Una vez definidos los conceptos básicos, tanto para los datos como para el aprendizaje, se puede pasar a conocer los tipos de problemas existentes dentro del entorno del aprendizaje máquina, así como los tipos de datos y tipos de aprendizaje utilizados en el desarrollo de los algoritmos del aprendizaje máquina.

1.4. Tipos de problemas

Existen varias clases comunes de problemas en el aprendizaje máquina. Las clases de problemas que se mencionan a continuación son arquetipos para la mayoría de los problemas, a los que nos referimos cuando el aprendizaje máquina es implementado:

Clasificación: se produce cuando los datos tienen una etiqueta, lo que significa que se les asignó una clase; por ejemplo, fraude/no fraude. La decisión que se modela consiste en asignar etiquetas a nuevos datos no etiquetados. Esto puede ser considerado como un problema al generar un discriminante y modelar las diferencias o similitudes entre grupos [3].

Regresión: los datos se encuentran etiquetados con un valor real en lugar de una etiqueta. Los ejemplos, fáciles de entender, son datos de series de tiempo, como el precio de un producto y sus variaciones, dentro de una ventana de tiempo. La decisión que se modela es la relación entre entradas y salidas.

Agrupamiento: en el agrupamiento, los datos no están etiquetados, pero se pueden dividir en grupos según la similitud y otras medidas de estructura natural en los datos. Un claro ejemplo reside en la segmentación de clientes en grupos con datos demográficos similares.

Extracción de reglas: en este tipo de problema, los datos se utilizan como base para la extracción de reglas proposicionales (antecedente/consecuente o si/entonces). Normalmente, estas reglas no están dirigidas, lo que significa que, con los métodos, se descubren relaciones estadísticamente compatibles entre atributos en los datos, que no necesariamente implican algo que se está prediciendo. Un ejemplo es el descubrimiento de la relación entre la compra de cerveza y pañales.

1.5. Tipos de datos

Para cumplir con los propósitos del análisis de datos y del modelado predictivo, resulta importante conocer el tipo de dato que se va a seleccionar, con el fin de ayudar a determinar el tipo de visualización, análisis de datos o modelo estadístico.

Continuo: lo constituyen los datos que pueden tomar cualquier valor dentro de un intervalo. Entre algunos ejemplos se encuentran la velocidad del viento, la distancia recorrida por un coche o la estatura de una persona.

Discreto: este tipo de datos puede tomar solo valores enteros; por ejemplo, el conteo de recurrencia de un evento o el número de clics de un sitio web.

Categórico: son datos que pueden tomar solo un conjunto específico de valores, los cuales representan un conjunto de categorías posibles, tales como el tipo de sangre o los estados de un país, entre otros.

Binario: los datos binarios suponen un caso especial dentro de los datos categóricos. Estos cuentan con solo dos categorías de valores: verdadero o falso; entre algunos ejemplos, enfermo/saludable, día/noche o activo/inactivo.

Ordinal: son datos categóricos que tienen un orden explícito; por ejemplo, la talla de ropa o la calificación numérica de un producto (1.°, 2.°, 3.°, 4.° o 5.°).

1.6. Tipos de aprendizajes

En el aprendizaje máquina se conocen tres tipos de aprendizaje: aprendizaje supervisado, aprendizaje no supervisado y aprendizaje por refuerzo. A continuación, se define cada uno de estos tipos de aprendizaje.

Aprendizaje supervisado: se corresponde con el proceso donde se generalizan las relaciones entre las observaciones de sus características de entrada y salida (etiqueta), donde este modelo de «relación» especula una salida (etiqueta) para producir nuevas observaciones. Este tipo de aprendizaje se utiliza cuando se requiere la predicción [4].

Aprendizaje no supervisado: este es un proceso de aprendizaje para generalizar la estructura en los datos donde no se requiere predicción. Las estructuras naturales son identificadas y explotadas para relacionar ciertas observaciones respecto a otras.

Aprendizaje por refuerzo: con este sistema de aprendizaje, llamado agente, se puede observar el entorno, seleccionar y realizar acciones, con la finalidad de obtener recompensas a cambio (o sanciones en forma de recompensas negativas). Luego, debe aprender por sí mismo cuál es la mejor estrategia, llamada política, para obtener la mayor recompensa con el paso del tiempo. Con una política, se define qué acción debe hacer el agente cuando se encuentra en una situación dada [5].

Una vez definidos y comprendidos los tipos de problemas, los tipos de datos y los tipos de aprendizajes, se puede pasar a conocer cuáles son las etapas requeridas para el desarrollo de sistemas basados en el aprendizaje máquina.

1.7. Etapas de implementación del aprendizaje máquina

La implementación de algoritmos de aprendizaje máquina implica una serie de pasos que son muy similares al proceso de modelado estadístico. Estos se dividen en cinco etapas: recopilación de datos, exploración y preparación de datos, entrenamiento, evaluación del modelo y, por último, mejora del modelo. En la figura 1.1 se pueden observar las etapas de implementación del aprendizaje máquina de una forma esquemática. Cada etapa se define a continuación.

Recopilación de datos: este paso implica reunir el material de aprendizaje que implementará un algoritmo para generar un conocimiento procesable. En la mayoría de los casos, los datos deberán combinarse en una sola fuente, como un archivo de texto, hoja de cálculo o base de datos.

Exploración y preparación de datos: la calidad de cualquier proyecto de aprendizaje automático se basa, en gran medida, en la calidad de sus datos de entrada. Para mejorar la calidad de los datos, estos requieren de una preparación especial para el proceso de aprendizaje. Esta preparación implica arreglar o limpiar los llamados datos «desordenados», eliminando datos innecesarios, y recodificando los datos para ajustarse a las entradas esperadas de la técnica de aprendizaje máquina.

Entrenamiento: ya que los datos han sido preparados, estos alimentan a la técnica o algoritmo específico, el cual construirá un modelo con base en los datos de entrenamiento.

Evaluación del modelo: debido a que cada modelo da como resultado un sesgo en la construcción del modelo que otorga la solución al problema, resulta importante evaluar cómo de eficiente es el aprendizaje del algoritmo durante su etapa de entrenamiento. Dependiendo del tipo de modelo utilizado, es posible valorar la precisión del modelo mediante una evaluación con los datos de prueba. En algunos casos, se requiere del desarrollo de medidas de rendimiento específicas para la aplicación prevista.

Mejora del modelo: si se necesita un mejor rendimiento, resulta fundamental utilizar estrategias más avanzadas para aumentar el rendimiento del modelo. Algunas veces, puede ser necesario cambiar a un tipo diferente de algoritmo de aprendizaje, con la finalidad de que el nuevo algoritmo pueda realizar la misma tarea de una manera más precisa. A su vez, puede que se requiera complementar los datos de entrenamiento con datos adicionales más representativos del problema abordado, o realizar un trabajo preparatorio adicional, como se indica en el paso 2 de este proceso (véase figura 1.1).

Figura 1.1. Etapas de implementación de un algoritmo de aprendizaje máquina.

1.8. Exploración y preparación de datos

La importancia de tener datos limpios y confiables resulta vital en cualquier proyecto de aprendizaje máquina. La falta de limpieza y confiabilidad en los datos que serán suministrados a nuestro algoritmo de aprendizaje máquina podría tener fuertes repercusiones, desde el mal empleo de recursos materiales hasta pérdidas humanas. Es bien sabido que cualquier proyecto de aprendizaje máquina emplea casi el 80 % de su tiempo en el proceso de preparación de datos, y solo el 20 % en el modelado de los datos y los resultados derivados de la técnica implementada de aprendizaje máquina. La limpieza o preparación de datos involucra procesos de detección, así como el abordaje de errores, omisiones e inconsistencias dentro de un conjunto de datos. La preparación de datos consta de procesos independientes, que son la «depuración de datos» y el «llenado de datos faltantes».

Importación de datos en MATLAB

Antes de llevar a cabo los procesos de depuración y llenado de datos faltantes, se deben obtener los datos que procesar; para ello, se importan los datos de diferentes formatos (csv o xlsx, etc.) al entorno de MATLAB. Esta es una tarea bastante sencilla, gracias a que MATLAB ya cuenta con un importador de datos integrado. Para este ejemplo se importarán datos que se encuentran en un formato común, que es el csv. Los pasos se describen a continuación.

El primer paso para importar los datos consiste en tener el entorno de MATLAB listo para usarse. Nos ubicamos en la «ventana de archivos» y hacemos doble clic sobre el archivo en cuestión que, para este caso, es «conjunto de datos Iris.csv», como se muestra en la figura 1.2. Enseguida se abrirá el «asistente de importación de datos», el cual nos presentará la información de forma matricial, donde las columnas son los campos de características, y las filas las observaciones.

Figura 1.2. Ventanas del entorno de MATLAB.

El objetivo es exportar los datos de las primeras siete observaciones, con sus cuatro primeros campos de características. Comenzamos al especificar un rango de observaciones deseadas (B2:E8). Después, definimos el nombre de la variable que contendrá la información seleccionada; para este ejemplo se llamará «datos». Luego, se elegirá el tipo de formato en el que se desea que se importe la información seleccionada. Los formatos posibles son: vectores columna, matriz numérica, arreglo de celdas o tabla. Para nuestro ejemplo se seleccionará la opción «Matriz numérica», y, finalmente, se presionará sobre la opción «importar». La secuencia de pasos para la importación de datos se muestra en la figura 1.3.

Figura 1.3. Pasos para importar datos al entorno de MATLAB.

Depuración de datos

La depuración de datos persigue los siguientes objetivos:

• Identificar datos atípicos, inexactos, incompletos, irrelevantes o corruptos, para eliminarlos de un procesamiento posterior

• Analizar datos, extraer información de interés o validar si los datos se encuentran en un formato aceptable

• Transformar los datos en un formato de escala de tiempo o rango normalizado

Llenado de valores perdidos

Los algoritmos del aprendizaje máquina, generalmente, no funcionan bien si se tienen valores faltantes. Es muy importante entender por qué falta un valor. Puede hacerlo debido a varias razones, tales como un error aleatorio, un fallo sistemático o ruido del sensor. Una vez identificada la razón, existen múltiples formas de lidiar con los valores que faltan, como se muestra en la siguiente lista:

Eliminar la observación: si se cuenta con suficientes datos y solo un par de las observaciones no relevantes tienen algunos valores faltantes, entonces es seguro eliminar estas observaciones.

Eliminar el atributo: eliminar un atributo tiene sentido cuando la mayoría de los valores faltan, los valores son constantes o el atributo se halla fuertemente correlacionado con otro atributo.

Asignar un valor especial N/D: