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.
¿Cómo funciona el Algoritmo k-NN?
El algoritmo k-NN (k-NN) de Amazon SageMaker AI sigue un proceso de entrenamiento de varios pasos que incluye el muestreo de los datos de entrada, la reducción de dimensiones y la creación de un índice. A continuación, los datos indexados se utilizan durante la inferencia para encontrar de manera eficiente los k vecinos más cercanos de un punto de datos determinado y realizar predicciones basadas en las etiquetas o valores vecinos.
Paso 1:Muestreado
Para especificar el número total de puntos de datos que se van a muestrear a partir de conjuntos de datos de capacitación, utilice el parámetro sample_size
. Por ejemplo, si el conjunto de datos inicial tiene 1000 puntos de datos y el sample_size
se fija en 100, donde el número total de instancias es 2, cada trabajador debería muestrear 50 puntos. Se recopilaría un conjunto total de 100 puntos de datos. El muestreo se ejecuta en tiempo lineal con respecto a la cantidad de puntos de datos.
Paso 2: Realizar reducción de dimensión
La implementación actual del algoritmo k-NN tiene dos métodos de reducción de dimensión. Especifique el método en el hiperparámetro dimension_reduction_type
. El método sign
especifica una proyección aleatoria, que utiliza una proyección lineal con una matriz de señales aleatorias y el método fjlt
especifica una transformación rápida de Johnson-Lindenstrauss, un método basado en la transformación de Fourier. Ambos métodos conservan las distancias de producto interno y L2. El método fjlt
debe utilizarse cuando la dimensión de destino es grande y tiene un mejor rendimiento con inferencia de CPU. Los métodos difieren en su complejidad informática. El método sign
requiere tiempo O(ndk) para reducir la dimensión de un lote de n puntos de dimensión d en una dimensión de destino k. El método fjlt
requiere tiempo O(nd log (d)), pero las constantes implicadas son mayores. El uso de reducción de dimensión introduce ruido en los datos y este ruido puede reducir la precisión de la predicción.
Paso 3: Construir un índice
Durante la inferencia, el algoritmo consulta el índice en busca de un punto de k-nearest-neighbors muestra. En función de las referencias a los puntos, el algoritmo hace la clasificación o predicción de regresión. Hace la predicción en función de las etiquetas de clase o valores proporcionados. k-NN ofrece tres tipos diferentes de índices: un índice plano, un índice invertido y un índice invertido con cuantificación del producto. Especifique el tipo con el parámetro index_type
.
Serializar el modelo
Cuando el algoritmo k-NN termina la capacitación, serializa tres archivos para preparar para realizar inferencias.
-
model_algo-1: Contiene el índice serializado para computar los vecinos más próximos.
-
model_algo-1.labels: Contiene etiquetas serializadas (formato binario np.float32) para computar la etiqueta predicha a partir del resultado de la consulta del índice.
-
model_algo-1.json: Contiene el modelo con formato JSON que almacena los metadatos
k
epredictor_type
hiperparámetros de capacitación para inferencia junto con otros estados pertinentes.
Con la implementación actual de k-NN, puede modificar el archivo de metadatos para cambiar el modo en que se calculan las predicciones. Por ejemplo, puede cambiar k
a 10 o cambiar predictor_type
a regresor.
{ "k": 5, "predictor_type": "classifier", "dimension_reduction": {"type": "sign", "seed": 3, "target_dim": 10, "input_dim": 20}, "normalize": False, "version": "1.0" }