Algoritmo k vecinos más próximos (k-NN) (K-Nearest Neighbors) - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Algoritmo k vecinos más próximos (k-NN) (K-Nearest Neighbors)

SageMaker El algoritmo k-NN (Amazon k-Nearest Neighbors) es un algoritmo basado en índices. Utiliza un método no paramétrico para la clasificación o regresión. Para los problemas de clasificación, el algoritmo consulta los k puntos que están más próximos al punto de muestra y devuelve la etiqueta que se utiliza con más frecuencia de su clase como la etiqueta predicha. Para los problemas de regresión, el algoritmo consulta los k puntos que están más próximos al punto de muestra y devuelve la media de sus valores característica como el valor predicho.

La capacitación con el algoritmo k-NN tiene tres pasos: muestreo, reducción de dimensión y construcción de índice. El muestreo reduce el tamaño del conjunto de datos inicial para que se adapte en la memoria. Para la reducción de dimensión, el algoritmo disminuye la dimensión característica de los datos para reducir la huella del modelo k-NN en memoria y latencia de inferencia. Ofrecemos dos métodos de reducción de dimensión: proyección aleatoria y la transformación rápida de Johnson-Lindenstrauss. Por norma general, debe utilizar reducción de dimensión para conjuntos de datos de alto nivel dimensional (d > 1000) para evitar la "maldición de dimensionalidad" que perturba el análisis estadístico de datos que se vuelve disperso cuando aumenta la dimensionalidad. El objetivo principal de la capacitación de k-NN es construir el índice. El índice permite búsquedas eficientes de distancias entre puntos cuyos valores o etiquetas de clase todavía no se han determinado y los k puntos más próximos a utilizar para inferencia.

Interfaz de entrada/salida para el Algoritmo k-NN

SageMaker K-nn admite canales de datos de entrenamiento y prueba.

  • Utilice un canal de capacitación para los datos que desee muestrear y construir en el índice k-NN.

  • Utilice un canal de prueba para emitir puntuaciones en archivos de registro. Las puntuaciones se enumeran como una línea por mini-lote: precisión para classifier, error cuadrático medio (mse) regressor para puntuación.

Para capacitación de entradas, k-NN admite formatos de datos text/csv y application/x-recordio-protobuf. Para tipo de entrada text/csv, las primeras columnas label_size se interpretan como el vector de etiqueta de esa fila. Puede usar el modo de archivo o el modo de canalización para capacitar modelos con datos con formato recordIO-wrapped-protobuf o CSV.

Para entradas de inferencia, k-NN admite los formatos de datos application/json, application/x-recordio-protobuf y text/csv. El formato text/csv acepta un label_size y parámetro de codificación. Asume una codificación label_size de 0 y una de UTF -8.

Para salidas de inferencia, k-NN admite los formatos de datos application/json y application/x-recordio-protobuf. Estos dos formatos de datos también son compatibles con el modo de salida detallado. En el modo de salida detallado, API proporciona los resultados de la búsqueda con el vector de distancias ordenado de menor a mayor y los elementos correspondientes en el vector de etiquetas.

Para transformar por lotes, k-NN admite el formato de datos application/jsonlines tanto para entrada como para salida. Un ejemplo de entrada sería el siguiente:

content-type: application/jsonlines {"features": [1.5, 16.0, 14.0, 23.0]} {"data": {"features": {"values": [1.5, 16.0, 14.0, 23.0]}}

Un ejemplo de salida sería el siguiente:

accept: application/jsonlines {"predicted_label": 0.0} {"predicted_label": 2.0}

Para obtener más información acerca de formatos de archivo de entrada y salida, consulte Formatos de datos para entrada de entrenamiento de k-NN para la capacitación, Formatos de respuesta y solicitud k-NN para inferencia y Cuadernos de ejemplo de k-NN.

Cuadernos de ejemplo de k-NN

Para ver un ejemplo de cuaderno que utiliza el algoritmo SageMaker k-vecino más cercano para predecir los tipos de cobertura silvestre a partir de datos geológicos y del servicio forestal, consulte el tipo de cobertura del vecino más cercano K-Nearest Neighbor.

Usa una instancia de Jupyter notebook para ejecutar el ejemplo. SageMaker Para obtener información sobre cómo crear y abrir una instancia de Jupyter notebook en, consulte. SageMaker Instancias de Amazon SageMaker Notebook Una vez que haya creado una instancia de bloc de notas y la haya abierto, seleccione la pestaña SageMaker Ejemplos para ver una lista de todos los SageMaker ejemplos de libretas. Encuentra los blocs de notas de vecino k más próximo en la sección Introducción a los algoritmos de Amazon. Para abrir un cuaderno, haga clic en la pestaña Usar y seleccione Crear copia.

EC2Recomendación de instancia para el algoritmo k-NN

Recomendamos entrenar en una CPU instancia (como ml.m5.2xlarge) o en una instancia. GPU El algoritmo k-NN admite las familias de instancias P2, P3, G4dn y G5 para el entrenamiento y la inferencia. GPU

Las solicitudes de inferencia CPUs suelen tener una latencia media más baja que las solicitudes de origen, GPUs ya que hay un impuesto sobre la comunicación cuando se utiliza hardware. CPU-to-GPU GPU Sin embargo, GPUs suelen tener un rendimiento superior para lotes más grandes.