Diez algoritmos clásicos de aprendizaje automático: KNN (Notas de estudio del vecino más cercano)

Diez algoritmos clásicos de aprendizaje automático: KNN (vecino más cercano)

Recientemente estoy estudiando aprendizaje automático y he consultado blogs de muchas personas. Me he beneficiado mucho. Por lo tanto, también traté de resumir lo que he aprendido. Por un lado, puedo mejorar mi comprensión de los algoritmos que he aprendido, y espero que pueda ayudar. Para los principiantes, anímense unos a otros. . .

1

Principio del algoritmo del vecino más cercano K

Algoritmo de clasificación de K vecino más cercano (kNN, k-NeighborNeighbor), como sugiere el nombre:

Encuentre los k vecinos más cercanos (muestras) y seleccione la categoría con la frecuencia más alta entre las primeras k muestras como la categoría predicha. Por qué es tan incómodo, no hay una imagen para decir una pelota, el siguiente es un ejemplo, será obvio para todos después de un diagrama, como se muestra a continuación:
Diez algoritmos clásicos de aprendizaje automático: KNN (Notas de estudio del vecino más cercano)

Nuestro propósito es predecir las calificaciones de un estudiante en la clase de matemáticas. . .
Primero, permítanme explicar algunos conceptos básicos: cada punto de la figura representa una muestra (aquí, un estudiante), las coordenadas horizontales y verticales representan las características (tasa de asistencia, calidad de la tarea) y diferentes formas representan categorías (es decir: rojo Representa A (excelente), verde representa D (fallido)).

Veamos el punto (10, 20). Significa: en la clase de matemáticas, la tasa de asistencia de un estudiante es del 10% y la calidad de la tarea es de 20 puntos, lo que finalmente lo llevó a su examen final con una calificación de D (mala ). De la misma forma, estos 6 puntos también representan el estado habitual y los resultados finales de los 6 alumnos anteriores, que se denominan muestras formativas. . . .

Ahora es el momento de lograr nuestro objetivo de predicción. Imagínese que casi termina un semestre. Zhang San está a punto de tomar un examen. Quiere saber qué tan bien puede tomar el examen. Encontró su tasa de asistencia a clase de 85 del profesor de matemáticas. %, la calidad del trabajo es 90, entonces, ¿cómo realizar el pronóstico?

Zhang San se puede considerar como el punto (85,90), también llamado muestra de prueba. Primero, calculamos la distancia entre Zhang San y los otros 6 estudiantes (muestras de entrenamiento). Se cree que la distancia de un punto a otro se aprende en la escuela secundaria. Derecha (distancia euclidiana generalmente utilizada).

Luego, seleccione las primeras K distancias más cercanas. Por ejemplo, si elegimos k = 3, descubriremos a qué categoría pertenecen las tres muestras más cercanas. En este ejemplo, naturalmente las tres son A, por lo que podemos predecir Zhang San La calificación final de matemáticas puede ser A (excelente). Si Li Si quiere hacer predicciones ahora, de acuerdo con sus recientes 3, dos D y una A, entonces se predice que la calificación final de matemáticas de Li Si será D. Esto es lo que dije al principio: seleccione la categoría con la frecuencia más alta en las primeras k muestras como categoría predicha. . .

Los pasos de cálculo se resumen a continuación:

1)算距离:给定测试对象,计算它与训练集中的每个对象的距离
2)找邻居:圈定距离最近的k个训练对象,作为测试对象的近邻
3)做分类:根据这k个近邻归属的主要类别,来对测试对象分类

Bueno, después del proceso de apelación, ¿tiene una cierta comprensión de la idea básica del algoritmo KNN?
Eso es todo por el principio. . .

2

Ventajas y desventajas de los vecinos más cercanos K

Ventajas del algoritmo KNN:

1) Simple y eficaz.

2) El costo de la reentrenamiento es bajo (los cambios en el sistema de categorías y los cambios en el conjunto de capacitación son muy comunes en el entorno web y las aplicaciones de comercio electrónico).

3) El tiempo y el espacio de cálculo son lineales al tamaño del conjunto de entrenamiento (no demasiado grande en algunos casos).

4) Dado que el método KNN se basa principalmente en las muestras circundantes limitadas, en lugar del método de discriminar el dominio de clase para determinar la categoría, el método KNN es mejor que otros conjuntos de muestras que se dividen para el cruce o superposición del dominio de clase. El método es más adecuado.

5) Este algoritmo es más adecuado para la clasificación automática de dominios de clase con un tamaño de muestra relativamente grande, y es más probable que aquellos con un tamaño de muestra pequeño se clasifiquen erróneamente con este algoritmo.

Desventajas del algoritmo KNN:

1) El algoritmo KNN es un método de aprendizaje perezoso (aprendizaje perezoso, básicamente no aprendizaje), y algunos algoritmos de aprendizaje activo son mucho más rápidos.

2) Los puntajes de categoría no están estandarizados (a diferencia de los puntajes de probabilidad).

3) La interpretabilidad del resultado no es fuerte, por ejemplo, la interpretabilidad del árbol de decisiones es fuerte.

4) La principal desventaja del algoritmo en clasificación es que cuando la muestra está desequilibrada, por ejemplo, el tamaño de la muestra de una clase es muy grande, mientras que el tamaño de la muestra de otras clases es muy pequeño, lo que puede resultar en la entrada de una nueva muestra. Entre los K vecinos, las muestras de clases de gran capacidad representan la mayoría.

El algoritmo sólo calcula las muestras vecinas "más cercanas". Si el número de muestras de un determinado tipo es grande, entonces dichas muestras no están cerca de la muestra objetivo o tales muestras están muy cerca de la muestra objetivo. En cualquier caso, la cantidad no afecta los resultados de la operación. Se puede mejorar utilizando el método del peso (el vecino con una pequeña distancia de la muestra tiene un gran peso).

5) Gran cantidad de cálculos. La solución común actual es editar los puntos de muestra conocidos por adelantado y eliminar por adelantado las muestras que tienen poco efecto en la clasificación.

3

Implementación en Python del algoritmo de vecino más cercano K

Recordatorio amistoso: este código se basa en Python2.7, y la biblioteca de funciones numpy debe instalarse con anticipación (este es un poderoso paquete de computación científica que usamos comúnmente). . . .

3.1 Primero, presentamos los pasos de implementación del código:

1)计算已知类别数据集中的点与当前点之间的距离
2)按距离递增次序排序
3)选取与当前点距离最小的k个点
4)统计前k个点所在的类别出现的频率
5)返回前k个点出现频率最高的类别作为当前点的预测分类

3.2 Implementación: Primero creamos un archivo llamado knn.py, el código de implementación general es el siguiente:

Diez algoritmos clásicos de aprendizaje automático: KNN (Notas de estudio del vecino más cercano)
Diez algoritmos clásicos de aprendizaje automático: KNN (Notas de estudio del vecino más cercano)

Vista previa de artículos recientes:
"Explicación popular de la razón por la cual la inicialización de parámetros de la red neuronal no puede ser todo 0"
"Pytorch de inicio rápido de 10 minutos (1)"
"Explicación popular del modelo de Markov oculto (HMM) -algoritmo hacia atrás "
"Explicación popular de Marco oculto Modelo (HMM) -Algoritmo Viterbi "
Artículo de lectura recomendado:
un artículo para comprender el algoritmo de k vecino más cercano (k-NN) (1) el
final | un artículo para comprender el algoritmo de k vecino más cercano (k-NN) algoritmo (2)
modelo de Markov oculto
-Para enviar el algoritmo de reenvío , comuníquese con la cuenta de WeChat qinlibo20133868 o [email protected]

全是通俗易懂的硬货!只需置顶~欢迎关注交流~

Diez algoritmos clásicos de aprendizaje automático: KNN (Notas de estudio del vecino más cercano)

Supongo que te gusta

Origin blog.51cto.com/15009309/2553583
Recomendado
Clasificación