Los centros más cercanos encogidos con pitón

El Centroide más cercano es un algoritmo de clasificación lineal de aprendizaje de máquinas.

Se trata de predecir una etiqueta de clase para los nuevos ejemplos en función del centroide de clase más cercano al ejemplo del conjunto de datos de entrenamiento.

El Centroides encogidos más cercanos El algoritmo es una extensión que implica el desplazamiento de los centros de las clases hacia el centro de todo el conjunto de datos de entrenamiento y la eliminación de las variables de entrada que son menos útiles para discriminar las clases.

Como tal, el algoritmo del Centroide más cercano realiza una forma automática de selección de características, lo que lo hace apropiado para conjuntos de datos con un gran número de variables de entrada.


Recomendado: ¿Qué es el Big data?.


En este tutorial, descubrirás el algoritmo de aprendizaje de la máquina de clasificación de los centros encogidos más cercanos.

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

  • El centroide encogido más cercano es un simple algoritmo de aprendizaje lineal de la máquina para la clasificación.
  • Cómo encajar, evaluar y hacer predicciones con el modelo de Centroides Encogidos Más Cercanos con Scikit-Learn.
  • Cómo sintonizar los hiperparámetros del algoritmo del Centroide Encogido más Cercano en un determinado conjunto de datos.

Empecemos.

Los centros más cercanos encogidos con pitón

Los centros más cercanos encogidos con pitón
Foto de Giuseppe Milo, algunos derechos reservados.

Resumen del Tutorial

Este tutorial está dividido en tres partes; son:

  1. Algoritmo del Centroides más cercano
  2. Centroides más cercanos con Scikit-Learn
  3. Sintonización de los hiperparámetros del centroide más cercanos

Algoritmo del Centroides más cercano

El Centroide más cercano es un algoritmo de aprendizaje de la máquina de clasificación.

El algoritmo implica primero resumir el conjunto de datos de entrenamiento en un conjunto de centroides (centros), y luego usar los centroides para hacer predicciones para nuevos ejemplos.

Para cada clase, el centroide de los datos se encuentra tomando el valor medio de cada predictor (por clase) en el conjunto de entrenamiento. El centroide general se calcula utilizando los datos de todas las clases.

– Página 307, Applied Predictive Modeling, 2013.

Un centroide es el centro geométrico de una distribución de datos, como la media. En múltiples dimensiones, este sería el valor medio a lo largo de cada dimensión, formando un punto de centro de la distribución a través de cada variable.

El algoritmo de los centrosides más cercanos asume que los centrosides en el espacio de características de entrada son diferentes para cada etiqueta del objetivo. Los datos de entrenamiento se dividen en grupos por etiqueta de clase, luego se calcula el centroide de cada grupo de datos. Cada centroide es simplemente el valor medio de cada una de las variables de entrada. Si hay dos clases, entonces se calculan dos centrosides o puntos; tres clases dan tres centrosides, y así sucesivamente.

Los centroides representan entonces el “modelo.” Con nuevos ejemplos, como los del conjunto de pruebas o los nuevos datos, se calcula la distancia entre una determinada fila de datos y cada centroide y se utiliza el centroide más cercano para asignar una etiqueta de clase al ejemplo.

Las medidas de distancia, como la distancia euclidiana, se utilizan para los datos numéricos o la distancia de martillo para los datos categóricos, en cuyo caso la mejor práctica es escalar las variables de entrada mediante la normalización o la estandarización antes de entrenar el modelo. Esto se hace para asegurar que las variables de entrada con valores grandes no dominen el cálculo de la distancia.

Una extensión del método del centroide más cercano para la clasificación es encoger los centros de cada variable de entrada hacia el centroide de todo el conjunto de datos de entrenamiento. Las variables que se reducen al valor del centroide de los datos pueden entonces eliminarse, ya que no ayudan a discriminar entre las etiquetas de clase.

Como tal, la cantidad de contracción aplicada a los centroides es un hiperparámetro que puede ajustarse para el conjunto de datos y utilizarse para realizar una forma automática de selección de características. Por lo tanto, es apropiado para un conjunto de datos con un gran número de variables de entrada, algunas de las cuales pueden ser irrelevantes o ruidosas.

Por consiguiente, el modelo centroide encogido más cercano también realiza la selección de características durante el proceso de entrenamiento del modelo.

– Página 307, Applied Predictive Modeling, 2013.

Este enfoque se conoce como “Centroides encogidos más cercanos“y fue descrito por primera vez por Robert Tibshirani y otros en su artículo de 2002 titulado “Diagnóstico de múltiples tipos de cáncer por centros de expresión genética reducidos”.

Centroides más cercanos con Scikit-Learn

El Centroide encogido más cercano está disponible en la biblioteca de aprendizaje de la máquina de Python a través de la clase del Centroide más cercano.

La clase permite la configuración de la métrica de distancia usada en el algoritmo a través de la “métrico” argumento, que por defecto eseuclidiano…para la métrica de la distancia euclidiana.

Esto puede ser cambiado a otras métricas incorporadas como ‘manhattan.’

Por defecto, no se utiliza la contracción, pero la contracción puede ser especificada a través de la opción “umbral_de_retracción“que toma un valor de punto flotante entre 0 y 1.

Podemos demostrar los centrosides más cercanos con un ejemplo trabajado.

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

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 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 encajar y evaluar un modelo de Centroides Encogidos más cercanos usando la validación cruzada de pliegueK repetido estratificado a través de la clase de pliegueK repetido. Usaremos 10 pliegues y tres repeticiones en el arnés de prueba.

Usaremos la configuración por defecto de la distancia euclidiana y sin encogimiento.

El ejemplo completo de la evaluación del modelo de centros de encogimiento más cercano para la tarea de clasificación binaria sintética se enumera a continuación.

La ejecución del ejemplo evalúa el algoritmo de los centrosides más reducidos en el conjunto de datos sintéticos e informa de la precisión media en las tres repeticiones de la 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 71%.

Podríamos decidir usar los Centroides Encogidos más Cercanos como nuestro modelo final y hacer predicciones sobre nuevos datos.

Esto puede lograrse ajustando el 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.

Sintonización de los hiperparámetros del centroide más cercanos

Los hiperparámetros del método del centroide encogido más cercano deben ser configurados para su conjunto de datos específico.

Quizás el hiperparámetro más importante es la contracción controlada a través de la “umbral_de_retracción“argumento”. Es una buena idea probar valores entre 0 y 1 en una cuadrícula de valores como 0.1 o 0.01.

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 conseguimos resultados ligeramente mejores que el predeterminado, con un 71,4 por ciento frente a un 71,1 por ciento. Podemos ver que el modelo asignó un umbral_de_retracción valor de 0,53.

La otra configuración clave es la medida de distancia utilizada, que puede elegirse en función de la distribución de las variables de entrada.

Se puede utilizar cualquiera de las medidas de distancia incorporadas, como se indica aquí:

Las medidas de distancia comunes incluyen:

  • “Cityblock”, “coseno”, “euclidiano”, “l1”, “l2”, “manhattan

Para más información sobre cómo se calculan estas medidas de distancia, vea el tutorial:

Dado que nuestras variables de entrada son numéricas, nuestro conjunto de datos sólo soporta…euclidianoy…manhattan.’

Podemos incluir estas métricas en nuestra búsqueda en la cuadrícula; el ejemplo completo se muestra 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 que obtenemos una precisión ligeramente mejor del 75 por ciento al no utilizar la medida de la distancia euclidiana y el manhattan.

Una buena extensión de estos experimentos sería añadir la normalización o estandarización de los datos como parte de un Pipeline de modelización.

Más lecturas

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

Tutoriales

Documentos

Libros

APIs

Artículos

Resumen

En este tutorial, descubriste el algoritmo de aprendizaje de la máquina de clasificación de los centros encogidos más cercanos.

Específicamente, aprendiste:

  • El centroide encogido más cercano es un simple algoritmo de aprendizaje lineal de la máquina para la clasificación.
  • Cómo encajar, evaluar y hacer predicciones con el modelo de Centroides Encogidos Más Cercanos con Scikit-Learn.
  • Cómo sintonizar los hiperparámetros del algoritmo del Centroide Encogido más Cercano 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