¡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. Clasificar bien no es una opción
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

Clasificar bien no es una opción

Lo que vamos a descubrir y requisitos

En el estudio del caso anterior, dedicado a la regresión, hemos recurrido al universo imaginario de los Pokémon. Ahora volvemos a la realidad. El caso de estudio que vamos a seguir durante todo este capítulo nos permitirá clasificar una señal de un sonar a bordo de un buque para determinar si el objeto detectado es una mina o una roca. ¡No hace falta decir que no podemos equivocarnos!

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.

Comienzos y origen del conjunto de observaciones

El conjunto de observaciones que vamos a utilizar procede de los trabajos de investigación de Terry Sejnowski y R. Paul Gordman en 1988, que buscaban determinar los parámetros de una red neuronal capaz de distinguir si un objeto detectado por un sonar es una mina o una roca.

En este capítulo todavía no vamos a abordar el apasionante tema de las redes neuronales. Al principio utilizaremos los algoritmos de Machine Learning para intentar establecer las mejores clasificaciones posibles.

Antes de entrar en materia, es importante recordar el funcionamiento de un sonar para comprender los datos que utilizaremos en nuestra predicción.

El funcionamiento de un sonar es bastante sencillo. En el caso de un sonar submarino activo (hay sonares pasivos que solo escuchan), la antena del sonar envía dentro del agua energía eléctrica convertida en onda sonora a una frecuencia dada. Cuando la onda sonora se encuentra con un objeto, rebota sobre él y luego vuelve a ser captada por la antena del sonar, que se encarga de transformar la onda sonora recibida en energía eléctrica (señal eléctrica).

El conjunto de observaciones que vamos a utilizar contiene 60 medidas para cada predicción (mina o roca). Cada medida corresponde a la intensidad de la señal eléctrica recibida dentro de una banda concreta de frecuencias sonoras.

Para obtener...

Un problema de clasificación y algoritmos de predicción asociados

Nuestro problema consiste en predecir si el objeto detectado por el sonar es una roca o una mina. Solo hay, por tanto, dos opciones posibles, que nos permiten clasificar nuestra predicción en una u otra categoría. Por lo tanto, se trata de un problema de clasificación.

Ahora podemos hacer una lista de los algoritmos de predicción candidatos a la resolución de los problemas de clasificación mencionados en el capítulo Principales algoritmos de Machine Learning:

  • La regresión logística.

  • Los árboles de decisión.

  • Los bosques aleatorios.

  • Los K vecinos más cercanos.

  • Las máquinas de vectores de soporte.

Planteamiento de resolución del problema

1. Definición del problema por resolver

El problema que tenemos que resolver se ha identificado al principio del capítulo y consiste en determinar si el objeto detectado por un sonar a bordo de un buque es una mina o una roca.

Creación de un proyecto Python nuevo

Es evidente que vamos a necesitar un proyecto Python nuevo para dar respuesta a nuestro problema. Le corresponde a usted elegir el nombre para este proyecto nuevo, así como el nombre del archivo de script que contendrá todas las instrucciones.

Como complemento, le invitamos a descargar e instalar los módulos siguientes  (al igual que hemos hecho en los capítulos anteriores):

  • Pandas

  • Numpy

  • MatplotLib

  • Scikit-Learn

2. Adquisición de los datos de aprendizaje

El conjunto de observación que vamos a utilizar se puede descargar en el sitio del editor.

Una vez conseguido el conjunto de observación, es recomendable indexar este archivo dentro de nuestro proyecto creando un directorio nuevo llamado datas y moviendo el archivo a este directorio nuevo.

Mediante las instrucciones que aparecen aquí debajo, tenemos la capacidad de cargar este archivo dentro de un Dataframe del módulo Pandas para analizarlo a continuación:

import pandas as pnd  
observaciones = pnd.read_csv("datas/sonar.all-data.csv") 

3. Preparar y limpiar los datos

a. ¿De qué datos disponemos?

Para conocer los datos de los que disponemos y su significado, vamos a utilizar algunas líneas que aparecen a continuación:

print(observaciones.columnas.valores) 

Que da como resultado:

['0.0200' '0.0371' '0.0428' '0.0207' '0.0954' '0.0986' '0.1539' '0.1601'  
 '0.3109' '0.2111' '0.1609' '0.1582' '0.2238' '0.0645' '0.0660' '0.2273'  
 '0.3100' '0.2999' '0.5078' '0.4797' '0.5783' '0.5071' '0.4328' '0.5550'  
 '0.6711' '0.6415' '0.7104' '0.8080' '0.6791' '0.3857' '0.1307' '0.2604'  
 '0.5121' '0.7547' '0.8537' '0.8507' '0.6692' '0.6097' '0.4943'...

Resumen

En este capítulo, gracias a un conjunto de observaciones un poco especial, hemos podido descubrir el planteamiento común en todas las resoluciones de problemas vinculadas a Machine Learning: la definición del problema, la adquisición y la preparación de los datos, el análisis de los datos y al final la elección del algoritmo.

También hemos abordado el uso de los algoritmos vinculados con la clasificación, sin parametrización particular para ninguno de ellos. Luego hemos modificado un parámetro sencillo del algoritmo máquina de vectores de soporte, lo que ha inclinado la balanza en la elección del algoritmo que hay que utilizar.

Por lo tanto, esto quiere decir que la fase de mejora de los distintos algoritmos utilizados es primordial. Fuera del entorno de este libro dedicado a la difusión del uso de los distintos algoritmos, no se abordarán las etapas de optimización y de mejoras (tuning). Pero podrá encontrar muchos ejemplos en Internet y le invitamos a visitar la página de optimización de los algoritmos propuesta por el módulo Scikit-Learn en esta dirección:

https://scikit-learn.org/stable/modules/grid_search.html

Al final hemos visto que debemos hacer un estudio particular de los datos extremos porque pueden ser importantes en la predicción.

La pregunta a la que tenemos que responder es nuestro...