¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Inteligencia artificial fácil
  3. Machine Learning y los Pokémon: primera parte
Extrait - Inteligencia artificial fácil Machine Learning y Deep Learning prácticos
Extractos del libro
Inteligencia artificial fácil Machine Learning y Deep Learning prácticos
3 opiniones
Volver a la página de compra del libro

Machine Learning y los Pokémon: primera parte

Lo que vamos a descubrir y requisitos

En este capítulo vamos a aprender a través de un caso práctico las primeras etapas para hacer realidad un proyecto de Machine Learning.

El ejemplo que vamos a tratar es un caso típico que se menciona a menudo en la literatura con más o menos facilidades de comprensión para los recién llegados al campo del análisis de datos. A pesar de esta repetición de explicaciones, lo hemos elegido porque permite abordar una gran variedad de técnicas propias de Machine Learning y del análisis de datos. Muchas veces se presenta bajo un punto de vista científico y matemático, pero nosotros vamos a ofrecerle una descripción fácil que le permitirá comprender bien cómo funciona Machine Learning.

Requisitos necesarios para abordar este capítulo correctamente: haber leído los capítulos Los fundamentos del lenguaje Python, Estadísticas para comprender los datos y Principales algoritmos de Machine Learning.

El universo de los Pokémon

Un Pokémon es un animal procedente del mundo de los videojuegos. Cada Pokémon tiene características propias, como su tipo (Pokémon planta, Pokémon fuego…) que les da facultades especiales. El Pokémon Charizard de tipo fuego puede escupir fuego. Además, no hay que olvidar la existencia de los Pokémon legendarios muy raros y poderosos que hacen referencia a un mito en relación con la creación y organización del mundo (Pokémon Diamante, Pokémon Platino…).

Dentro de los Pokémon también hay diferentes generaciones que hacen referencia a la evolución del universo de los Pokémon. Los Pokémon de primera generación son los que nacieron al principio de la creación del universo (creación de 151 Pokémon) y actualmente estamos en la octava generación ¡con más de 800 Pokémon!

En este universo, después vienen los domadores de Pokémon. Los domadores los coleccionan y educan con el propósito de hacerles pelear entre ellos hasta el KO. Durante un combate de Pokémon en el que se enfrentan dos domadores, uno de ellos elige el animal que entrará el primero en la arena. En función de este primer Pokémon, el segundo entrenador elige un animal de su colección que puede derrotar al primer Pokémon....

Nuestra misión: elegir el Pokémon correcto

Como domadores de Pokémon del sigo XXI, vamos a utilizar Machine Learning para que nos ayude a elegir el Pokémon correcto y ganar nuestros combates. Para eso, vamos a apoyarnos en datos procedentes de Pokédex, pero también en datos procedentes de los distintos combates para encontrar el modelo de predicción adecuado que podrá garantizarnos la victoria en todos los combates.

Datos para un aprendizaje supervisado

1. Datos basados en la experiencia

Machine Learning se basa en el uso de datos para permitir que nuestro ordenador aprenda y pueda hacer predicciones. Estos datos deben estar relacionados con la misión que se nos ha confiado y basados en la experiencia.

En nuestro caso, la experiencia consiste en conocer los resultados de los combates de los Pokémon.

2. Disponer de una gran cantidad de datos de aprendizaje

Una máquina no puede aprender con un conjunto de datos pequeño porque debe poder estudiar todas las posibilidades para hacer sus predicciones. Por lo tanto, cuanto mayor sea la cantidad de casos estudiados para resolver un problema, más precisas serán las predicciones.

3. Datos de aprendizaje y datos de pruebas

Al igual que los humanos, hay que validar el aprendizaje de la máquina para poder corregir las desviaciones de aprendizaje (llamadas sesgo) y ajustar o modificar el modelo de dicho aprendizaje. Para eso necesitamos datos de aprendizaje y datos de pruebas.

Pasos para realizar un proyecto de Machine Learning

Realizar un proyecto de Machine Learning consiste en llevar a cabo seis etapas consecutivas:

1 - Definición del problema que se ha de resolver

2 - Adquisición de los datos de aprendizaje y de las pruebas

3 - Preparar y limpiar los datos

4 - Analizar, explorar los datos

5 - Elegir un modelo de aprendizaje

6 - Ver los resultados y ajustar o modificar el modelo de aprendizaje

La fase de preparación de los datos es la más importante en un proyecto de Machine Learning porque como humanos tenemos que intentar encontrar los datos más interesantes que nos permitirán responder al problema propuesto.

Es mucho más que hacer un sencillo análisis de datos, hay que determinar cómo podemos resolver manualmente el problema a partir de la información de la que disponemos y antes de dárselo a la máquina.

De esta manera, el mismo conjunto de datos se puede utilizar de distintas maneras en función del problema planteado.

1. Creación y configuración de un proyecto nuevo de Python

Antes de ir más lejos, tenemos que crear un proyecto nuevo de Python.

 Para ello, abriremos el editor PyCharm y luego, en el menú file, elegiremos la opción New Project.

Le dejamos a usted el trabajo de elegir el nombre del proyecto. Como indicación, le diremos que al nuestro lo hemos llamado Pokemon.

a. Instalación de módulos...

Primera etapa: definir el problema que hay que resolver

Como ya se ha mencionado al principio de este capítulo, la problemática a la que tenemos que responder consiste en recomendar al domador de los Pokémon el animal que debe utilizar en un combate para ganar.

Segunda etapa: adquirir datos de aprendizaje y de pruebas

Los archivos que hemos descargado y copiado en nuestro proyecto contienen los datos necesarios para la resolución de nuestro problema.

El archivo Pokedex.csv contiene la lista de los Pokémon y de sus características. El archivo Combates.csv es nuestra base de conocimiento y de aprendizaje porque contiene una lista de combates de los Pokémon y el resultado de todos ellos. Por último, el archivo tests.csv nos permitirá validar el modelo de aprendizaje.

Listado de los archivos de los que disponemos

Con la ayuda del módulo OS que nos permite utilizar las funcionalidades de nuestro sistema operativo, podemos hacer una lista de los archivos contenidos dentro del directorio datas de nuestro proyecto, como se muestra en el programa que aparece aquí debajo:

#------------------------------------------  
# IMPORTAR MÓDULOS  
#------------------------------------------  
import os #Uso del módulo OS (operating system)  
  
  
#------------------------------------------  
# ANÁLISIS DE LOS DATOS  
#------------------------------------------  
  
#Recuperación de los archivos contenidos dentro del directorio datas  
#de nuestro proyecto  
listaDeArchivos = os.listdir("datas")  
  
#¿Cuál...

Tercera etapa: preparación de los datos

En esta tercera etapa vamos a hacer una lectura en profundidad de nuestros datos para comprender su función y los impactos que pueden tener en el objetivo de predicción que nos hemos fijado. Por decirlo de algún modo, vamos a intentar resolver el problema «manualmente» formulando hipótesis y probando a seleccionar los datos que responderán a ellas.

El estudio de los datos pasa principalmente por su descripción (nombre, tipo…), así como por diversos procesos de tratamiento, como la limpieza (eliminación de los datos inútiles y búsqueda de datos que faltan) y finalmente la combinación entre ellos, también llamada agregación de datos. Todo ello con el fin de disponer de un conjunto de conocimientos (observaciones) útiles y apropiadas para el aprendizaje y para alcanzar nuestro objetivo.

1. ¿De qué datos disponemos?

Los archivos de datos de los que disponemos llevan la extensión CSV (Comma Separated Value). Es decir, que los datos contenidos en los archivos están separados por comas. Para darle una pequeña idea del contenido de estos archivos, puede abrirlos con el programa Excel o mediante un sencillo editor de texto como Notepad o incluso directamente dentro del programa PyCharm.

En nuestro ejemplo, los archivos tienen un tamaño pequeño que permite abrirlos y explotarlos con programas. Pero en la mayor parte de casos relacionados con Machine Learning, los archivos contienen cantidades enormes de datos y ya no se pueden explotar con los programas tradicionales.

El proceso de preparación de los datos se llevará a cabo suponiendo que los archivos de los que disponemos son demasiado voluminosos para abrirlos en Excel o con la herramienta Notepad de Windows. En ese caso, trabajaremos a ciegas y luego procederemos a descubrir nuestros datos de manera progresiva.

Vamos a utilizar el módulo Pandas para poder analizar y manipular los datos fácilmente. Este módulo dispone de una función de lectura de archivos CSV (read_csv), capaz de trocear el contenido del archivo y almacenarlo dentro de una tabla llamada Dataframe.

Un Dataframe es, en el sentido Python del término, un diccionario donde las claves son los nombres de las características y los valores son los datos contenidos en las características....

Hagamos una pausa

Antes de ir más lejos, vamos a tomarnos un momento para volver sobre lo que hemos aprendido.

En este capítulo hemos aprendido la implantación de las primeras etapas para realizar un proyecto de Machine Learning, que son las siguientes: 

  • La definición del problema que hay que resolver.

  • La adquisición de datos.

  • La preparación de los datos.

Como puede comprobar, el tiempo de preparación de los datos es bastante importante. Y es así para todos los proyectos de Machine Learning. En efecto, como ya hemos explicado antes, sin datos no hay Machine Learning. Sin olvidar que estos datos deben ser de buena calidad gracias a que han sido bien preparados.

Asimismo, hemos tratado algunas funciones del módulo Pandas de Python, que permite interrogar a los datos para comprenderlos mejor, pero también modificarlos y agregarlos para obtener un conjunto de datos cualitativo.

En el capítulo siguiente vamos a centrarnos en la visualización de los datos, el análisis en profundidad de la visualización y terminaremos con la búsqueda de un modelo de predicción capaz de responder al problema dado. Un programa muy completo.