Saltar al contenido

Algoritmo clasificador de vecinos de radio con pitón

29 de septiembre de 2020

Radius Neighbors Classifier es un algoritmo de aprendizaje de la máquina de clasificación.

Es una extensión del algoritmo de los vecinos más cercanos que hace predicciones utilizando todos los ejemplos en el radio de un nuevo ejemplo en lugar de los vecinos más cercanos.

Por ello, el enfoque basado en el radio para seleccionar a los vecinos es más apropiado para los datos escasos, evitando que los ejemplos que están lejos en el espacio de las características contribuyan a una predicción.

En este tutorial, descubrirá el Clasificador de Vecinos de Radio algoritmo de aprendizaje de la máquina de clasificación.

Después de completar este tutorial, lo sabrás:

  • El Clasificador de Vecinos de Radio Cercano es una simple extensión del algoritmo de clasificación de vecinos de radio cercano.
  • Cómo encajar, evaluar y hacer predicciones con el modelo del Clasificador de Vecinos de Radio con Scikit-Learn.
  • Cómo ajustar los hiperparámetros del algoritmo del Clasificador de Vecinos de Radio en un determinado conjunto de datos.

Empecemos.

Algoritmo clasificador de vecinos de radio con pitón

Algoritmo clasificador de vecinos de radio con pitón
Foto de J. Triepke, algunos derechos reservados.

Resumen del Tutorial

Este tutorial está dividido en tres partes; son:

  1. Clasificador de Vecinos de Radio
  2. El radio clasificador de vecinos con Scikit-Learn
  3. Radio de sintonía Vecinos Clasificador Hiperparámetros

Clasificador de Vecinos de Radio

Vecinos del radio es un algoritmo de aprendizaje de la máquina de clasificación.

Se basa en el algoritmo de los vecinos más cercanos, o kNN. kNN implica tomar todo el conjunto de datos de entrenamiento y almacenarlo. Entonces, en el momento de la predicción, los k-ejemplos más cercanos en el conjunto de datos de entrenamiento se localizan para cada nuevo ejemplo para el que queremos predecir. La etiqueta de clase de modo (valor más común) de los vecinos k se asigna entonces al nuevo ejemplo.

Para más información sobre el algoritmo de los vecinos más cercanos, vea el tutorial:

El Clasificador de Vecinos de Radio es similar en que el entrenamiento implica el almacenamiento de todo el conjunto de datos de entrenamiento. La forma en que el conjunto de datos de entrenamiento se utiliza durante la predicción es diferente.

En lugar de localizar los vecinos k, el Clasificador de Vecinos de Radio localiza todos los ejemplos del conjunto de datos de entrenamiento que están dentro de un radio determinado del nuevo ejemplo. Los vecinos del radio se utilizan entonces para hacer una predicción para el nuevo ejemplo.

El radio se define en el espacio del rasgo y generalmente se supone que las variables de entrada son numéricas y están escaladas al rango 0-1, por ejemplo, normalizadas.

El enfoque basado en el radio para localizar a los vecinos es apropiado para aquellos conjuntos de datos en los que es deseable que la contribución de los vecinos sea proporcional a la densidad de los ejemplos en el espacio de las características.

Dado un radio fijo, las regiones densas del espacio de características contribuirán con más información y las regiones dispersas contribuirán con menos información. Este último caso es el más deseable y evita que los ejemplos muy alejados del espacio del rasgo contribuyan a la predicción.

Como tal, el Clasificador de Vecinos de Radio puede ser más apropiado para problemas de predicción donde hay regiones escasas del espacio de características.

Dado que el radio es fijo en todas las dimensiones del espacio de los rasgos, será menos eficaz a medida que aumente el número de rasgos de entrada, lo que hace que los ejemplos en el espacio de los rasgos se separen cada vez más. Esta propiedad se conoce como la maldición de la dimensionalidad.

El radio clasificador de vecinos con Scikit-Learn

El Clasificador de Vecinos Radius está disponible en la biblioteca de aprendizaje de la máquina Python de scikit-learn a través de la clase RadiusNeighborsClassifier.

La clase permite especificar el tamaño del radio utilizado al hacer una predicción a través de la «radio«que por defecto es 1.0.

Otro importante hiperparámetro es el «pesos» argumento que controla si los vecinos contribuyen a la predicción en ununiformede manera opuesta a la distancia…distancia…del ejemplo. El peso uniforme se utiliza por defecto.

Podemos demostrar el Clasificador de Vecinos de Radio con un ejemplo trabajado.

Primero, definamos un conjunto de datos de clasificación sintética.

Recomendado:  Apple Learning Coach ahora está abierto a más maestros en los EE. UU.

Usaremos la función make_classification() para crear un conjunto de datos con 1.000 ejemplos, cada uno con 20 variables de entrada.

El ejemplo que figura a continuación crea y resume el conjunto de datos.

Ejecutando el ejemplo se crea el conjunto de datos y se confirma el número de filas y columnas del conjunto de datos.

Podemos ajustar y evaluar un modelo de Clasificador de Vecinos de Radio usando la validación cruzada de repetición estratificada k-fold a través de la clase RepeatedStratifiedKFold. Usaremos 10 pliegues y tres repeticiones en el arnés de prueba.

Usaremos la configuración por defecto.

Es importante que el espacio de los rasgos se escale antes de preparar y utilizar el modelo.

Podemos lograrlo usando el MinMaxScaler para normalizar las características de entrada y usar un Pipeline para aplicar primero la escalada, y luego usar el modelo.

El ejemplo completo de la evaluación del modelo del Clasificador de Vecinos de Radio para la tarea de clasificación binaria sintética se enumera a continuación.

La ejecución del ejemplo evalúa el algoritmo del Clasificador de Vecinos de Radio en el conjunto de datos sintéticos e informa de la precisión media en las tres repeticiones de validación cruzada de 10 veces.

Sus resultados específicos pueden variar dada la naturaleza estocástica del algoritmo de aprendizaje. Considere ejecutar el ejemplo unas cuantas veces.

En este caso, podemos ver que el modelo alcanzó una precisión media de alrededor del 75,4 por ciento.

Podemos decidir usar el Clasificador de Vecinos del Radio como nuestro modelo final y hacer predicciones sobre nuevos datos.

Esto puede lograrse ajustando el conducto modelo a todos los datos disponibles y llamando al predecir() función pasando en una nueva fila de datos.

Podemos demostrarlo con un ejemplo completo que se enumera a continuación.

Ejecutando el ejemplo se ajusta al modelo y hace una predicción de etiqueta de clase para una nueva fila de datos.

A continuación, podemos ver la configuración de los hiperparámetros del modelo.

Radio de sintonía Vecinos Clasificador Hiperparámetros

Los hiperparámetros del método del Clasificador de Vecinos del Radio deben ser configurados para su conjunto de datos específico.

Tal vez el hiperparámetro más importante es el radio controlado a través de la «radio«argumento». Es una buena idea probar un rango de valores, quizás alrededor del valor de 1.0.

Exploraremos valores entre 0,8 y 1,5 con una cuadrícula de 0,01 en nuestro conjunto de datos sintéticos.

Note que estamos buscando en la cuadrícula de la «radio» hiperparámetro de la RadioNeighborsClassifier dentro de la Oleoducto donde el modelo se llama «modelo» y, por lo tanto, se accede al parámetro del radio a través de modelo->radio con un doble subrayado (__) separador, por ejemplo «radio modelo“.

El siguiente ejemplo lo demuestra utilizando la clase GridSearchCV con una cuadrícula de valores que hemos definido.

Al ejecutar el ejemplo se evaluará cada combinación de configuraciones utilizando una validación cruzada repetida.

Sus resultados específicos pueden variar dada la naturaleza estocástica del algoritmo de aprendizaje. Intente ejecutar el ejemplo unas cuantas veces.

En este caso, podemos ver que obtuvimos mejores resultados usando un radio de 0,8 que dio una precisión de alrededor de 87,2 por ciento en comparación con un radio de 1,0 en el ejemplo anterior que dio una precisión de alrededor de 75,4 por ciento.

Recomendado:  Las escuelas están gastando miles de millones en defensa de alta tecnología para tiroteos masivos

Otro hiperparámetro clave es la manera en que los ejemplos en el radio contribuyen a la predicción a través del «pesos«argumento». Esto se puede establecer como «uniforme” (el valor por defecto), «distancia» para la distancia inversa, o una función personalizada.

Podemos probar estos dos pesos incorporados y ver cuál funciona mejor con nuestro radio de 0,8.

El ejemplo completo figura a continuación.

Ejecutando el ejemplo se ajusta al modelo y descubre los hiperparámetros que dan los mejores resultados usando la validación cruzada.

Sus resultados específicos pueden variar dada la naturaleza estocástica del algoritmo de aprendizaje. Intente ejecutar el ejemplo unas cuantas veces.

En este caso, podemos ver un aumento adicional en la precisión de la clasificación media de alrededor del 87,2 por ciento conuniformeen el ejemplo anterior a un 89,3 por ciento condistancia…pesos en este caso.

Otra métrica que podrías querer explorar es la métrica de la distancia usada a través de la ‘métrico…argumento que por defecto es…minkowski‘.

Podría ser interesante comparar los resultados coneuclidiano…la distancia y tal vez…Cityblock‘.

Más lecturas

Esta sección proporciona más recursos sobre el tema si desea profundizar en él.

Tutoriales

Libros

APIs

Artículos

Resumen

En este tutorial, descubriste el algoritmo de aprendizaje de la máquina de clasificación del Clasificador de Vecinos del Radio.

Específicamente, aprendiste:

  • El Clasificador de Vecinos de Radio Cercano es una simple extensión del algoritmo de clasificación de vecinos de radio cercano.
  • Cómo encajar, evaluar y hacer predicciones con el modelo del Clasificador de Vecinos de Radio con Scikit-Learn.
  • Cómo ajustar los hiperparámetros del algoritmo del Clasificador de Vecinos de Radio en un determinado conjunto de datos.

¿Tiene alguna pregunta?
Haga sus preguntas en los comentarios de abajo y haré lo posible por responder.

Descubre el aprendizaje rápido de la máquina en Python!

Aprendizaje de la máquina maestra con Python

Desarrolle sus propios modelos en minutos

…con sólo unas pocas líneas de código de aprendizaje científico…

Aprende cómo en mi nuevo Ebook:
Dominio de la máquina de aprendizaje con la pitón

Cubre Tutoriales de auto-estudio y proyectos integrales como:
Cargando datos, visualización, modelado, tuningy mucho más…

Finalmente traer el aprendizaje automático a
Sus propios proyectos

Sáltese los académicos. Sólo los resultados.

Ver lo que hay dentro