Introducción
¿Por qué un libro sobre aprendizaje automático?
La Inteligencia Artificial (IA) y el Machine Learning (ML) están de moda. Todas las conferencias GAFAM (Google, Amazon, Facebook, Apple y Microsoft) y BATX (sus equivalentes chinos, es decir, Baidu, Alibaba, Tencent y Xiaomi) tienen al menos un tema dedicado a la Inteligencia Artificial, si no es toda la conferencia.
El tema también aparece regularmente en los titulares, desde artículos apocalípticos en los que la IA anuncia el fin de la humanidad hasta textos completamente eufóricos que explican cómo la IA va a salvar el mundo.
La realidad, sin embargo, es bien distinta. Aunque la disciplina se remonta a la década de 1950, no despegó realmente en el mundo profesional hasta 2012 y la CNN (Convolutional Neural Network), las famosas redes de «Deep Learning» (Aprendizaje Profundo) capaces de reconocer objetos en imágenes, con rendimientos muy superiores a todas las técnicas anteriores de visión por ordenador.
Sin embargo, no fue hasta la segunda mitad de 2022, con la llegada masiva de la IA generativa (modelos capaces de generar imágenes, como Dall.e y Midjourney, o textos, como ChatGPT), cuando el gran público tomó conciencia de las posibilidades de la disciplina.
Muy a menudo, cuando se menciona la Inteligencia Artificial en un texto, hay muchas posibilidades de que se trate en realidad...
Python y Scikit-learn: razones para elegirlos
El Machine Learning no depende de ningún lenguaje en particular. Los algoritmos pueden codificarse en C/C++, Java o C#.
Sin embargo, los Datos Scientists (Científicos de Datos) actuales utilizan principalmente dos lenguajes de programación (además de herramientas gráficas): R y Python.
En casos concretos se utilizan otros lenguajes:
-
C/C++: lenguaje de bajo nivel, rápido y optimizado. Esto lo convierte en el lenguaje ideal para desplegar modelos en dispositivos limitados (como la Raspberry Pi).
-
Scala (derivado de Java): un lenguaje reciente (2004) que permite manipular grandes cantidades de datos gracias a su biblioteca Spark. Muchos desarrolladores procedentes de Java elegirán por tanto Spark para Big Data, aunque Spark también puede utilizarse en Python.
Estos dos lenguajes no tienen que ver con la creación de modelos, sino más bien con los conductos de datos ascendentes o su despliegue, por lo que no se desarrollarán más en este libro.
El lenguaje R data de 1993. Muy popular entre la comunidad científica, cuenta con numerosos paquetes, entre ellos varios para ML. Hasta 2017, R seguía siendo el principal lenguaje utilizado por los Data Scientists.
Python es un lenguaje de programación que se remonta a 1991. Su sintaxis clara y su potencia lo convirtieron rápidamente en un lenguaje ideal para aprender a programar....
¿A quién va dirigido este libro?
En primer lugar, este libro no está dirigido a Data Scientists o Analistas profesionales. De hecho, no contiene documentación exhaustiva sobre Scikit-Learn ni cubre todos los algoritmos existentes.
Por tanto, se dirige en particular a:
-
estudiantes de asignaturas científicas relacionadas con la Data Science (matemáticas, sobre todo estadística, física, etc.) que quieran saber más sobre este campo,
-
desarrolladores existentes y Data Engineers en activo o en ejercicio que quieran aprender más sobre la disciplina de la Data Science y, en particular, sobre la creación de modelos,
-
personas en busca de un cambio profesional que quieran dar un primer paso hacia la Data Science, con el fin de validar o iniciar una trayectoria de cambio profesional,
-
directivos de empresas que utilizan o necesitarán utilizar soluciones de Machine Learning y que desean comprender un poco mejor lo que ocurre en su interior ,
-
y, por último, a todos aquellos que simplemente sientan curiosidad y quieran descubrir un nuevo campo de exploración.
Este libro no tiene requisitos previos particulares. De hecho, en la gran mayoría de los casos, el nivel de matemáticas requerido no supera el bachillerato, ya que el libro da más importancia a los conceptos que a las ecuaciones.
Tampoco hay ningún prerrequisito de conocimiento de Python. Entender al menos un lenguaje...
Organización del libro y elementos que se pueden descargar
Junto con la introducción y la conclusión, el libro contiene once capítulos:
-
Los dos capítulos que siguen a esta Introducción presentan información general tanto sobre el Machine Learning (capítulo Machine Learning: una visión general) como sobre la pila tecnológica utilizada (capítulo La pila tecnológica en Python). Las personas que ya estén familiarizadas con estos temas pueden saltarse estos capítulos.
-
Los tres capítulos siguientes tratan de las primeras fases técnicas del método CRISP-DM (Cross Industry Standard Process for Data Mining; proceso industrial estándar para la extracción de datos): Comprimir datos (capítulo sobre Cargar y analizar datos), Preparar datos (capítulo del mismo nombre) y Modelización (capítulo Modelizar y evaluar). Estos capítulos pueden leerse de forma secuencial.
-
Le siguen tres capítulos centrados en los principales algoritmos para las tres áreas principales del Machine Learning: clasificación (capítulo Algoritmos de clasificación), regresión (capítulo Algoritmos de regresión) y aprendizaje no supervisado, que abarca la agrupación (capítulo Algoritmos de aprendizaje no supervisados). De este modo, los lectores interesados en una tarea determinada podrán...
Datasets utilizados en este libro
Este libro utiliza numerosos ejemplos para ilustrar los distintos códigos en Python. Tradicionalmente, los Data Scientists utilizan datasets (conjuntos de datos), es decir, juegos de datos conocidos y bien controlados, para comparar resultados.
Se utilizan tres dasets: Iris de Fisher (conocido simplemente como «Iris»), Titanic y Boston.
De vez en cuando se utilizan otros juegos de datos, en cuyo caso se indican y se emplean solo para ilustrar un punto concreto de un capítulo. También se facilitan para su descarga (si son reales) o el código para recrearlos está disponible (si se trata de simulaciones).
1. Iris de Fisher, 1936
El juego de datos Iris se utiliza con frecuencia para tareas de clasificación. El objetivo es clasificar las flores de iris en la especie correcta midiendo las flores: anchura y longitud de los sépalos, anchura y longitud de los pétalos.
Están representadas tres especies: Iris Versicolor, Iris Virginica e Iris Setosa.
Este datasets es muy antiguo (1936 para los datos iniciales) y es muy sencillo de utilizar: cada especie está representada por 50 flores, cada una con las cuatro medidas proporcionadas, agrupadas por tipo de flor. No faltan datos.
De las tres especies, una es muy diferente de las demás y, por tanto, muy fácil de detectar (Iris Setosa). Las otras dos están en general más emparentadas (Iris Versicolor e Iris Virginica), lo que ayuda a ilustrar algunos puntos concretos de los conceptos subyacentes de los algoritmos.
La versión utilizada es la que está disponible gratuitamente en el sitio web del Repositorio de Aprendizaje Automático de la UCI: https://archive.ics.uci.edu/ml/datasets/iris
2. Titanic, 1994
El transatlántico Titanic se hundió en el mar en 1912, muriendo unas 1.500 de las 2.200 personas que iban a bordo.
El dataset original data de 1994 y proporciona abundante información sobre los pasajeros. La tarea consiste en clasificar a los pasajeros según su probabilidad de supervivencia.
Este dataset es más complejo para un algoritmo de Machine Learning porque la supervivencia de los pasajeros depende de un factor de casualidad que no puede incluirse en los datos y que, por tanto...