01 Algoritmo KNN: descripción general
KNN es un algoritmo básico de aprendizaje automático. Los llamados K vecinos más cercanos son los K vecinos más cercanos. Es decir, cada muestra puede ser reemplazada por muestras en las k posiciones vecinas más cercanas.
KNN es un algoritmo relativamente simple, más simple que el algoritmo de regresión y el algoritmo de clasificación mencionados anteriormente. Si una persona nunca ha estado expuesta a algoritmos de aprendizaje automático, el método de clasificación más simple después de obtener los datos es K vecino más cercano. Por ejemplo, si quieres saber qué tipo de persona soy y luego descubres que todos mis amigos más cercanos son personas divertidas, puedes asumir que yo también soy una persona divertida.
El algoritmo KNN es adecuado tanto para algoritmos de clasificación como para algoritmos de regresión.
La principal diferencia entre la regresión y la clasificación KNN radica en sus diferentes decisiones a la hora de realizar predicciones finales. Al hacer predicciones de clasificación, generalmente se utiliza la votación por mayoría. Al hacer predicciones de regresión, generalmente se utiliza el método del promedio.
Método de votación mayoritaria: al clasificar, qué muestras están más cerca de mi muestra objetivo, es decir, a qué muestra de clasificación está más cerca la muestra objetivo.
Método promedio: predice la altura promedio de una muestra y observa la altura promedio de otras muestras alrededor de la muestra objetivo. Creemos que la altura promedio es la altura de la muestra objetivo.
Otro ejemplo:
Juzga el tipo de alimento en función de las dos características de dulzor y crujiente.
Según las muestras, generalmente encontramos:
Los alimentos más dulces y crujientes son las frutas.
El alimento que no es ni dulce ni crujiente es la proteína.
Los alimentos que no quedan dulces y crujientes son las verduras.
Así podemos clasificar el objetivo según su dulzor y crujiente.
Selección del valor k:
Primero seleccione un valor más pequeño y luego seleccione un valor final apropiado mediante validación cruzada.
Cuanto menor sea k, es decir, utilizando muestras más pequeñas para la predicción, el error de entrenamiento se reducirá, pero el modelo será más complejo y estará sobreajustado.
Cuanto mayor sea k, es decir, utilizando muestras del campo de la Universidad de Jiaotong para predecir, mayor será el error de entrenamiento, el modelo se volverá más simple y fácilmente conducirá a un desajuste.
Medición de distancia:
Utilice distancia euclidiana: la métrica euclidiana (también llamada distancia euclidiana) es una definición de distancia comúnmente utilizada, que se refiere a la distancia real entre dos puntos en M- espacio dimensional, o la longitud natural de un vector (es decir, la distancia desde el punto al origen). La distancia euclidiana en dos y tres dimensiones es la distancia real entre dos puntos.
Planificación de decisiones:
Clasificación: método de votación mayoritaria y método de votación mayoritaria ponderada.
Regresión: método de media y método de media ponderada.
Método de votación por mayoría ponderada:
Método de promedio y método de promedio ponderado:
Mirando la misma imagen, el valor de las tres muestras anteriores es 3, y el valor de las dos muestras siguientes es 3. El valor de la muestra es 2. ¿Cuál es la predicción? valor.
Si no se considera ponderación, se calcula directamente la media:
(3 * 3 + 2 * 2) / 5 = 2,6
Promedio ponderado: la los pesos son 1/7 y 2/7. Calcular el promedio ponderado:
(3 * 3* 1/7 + 2 * 2 * 2/7) / 5 = 2,43
1, Hombre:
Calcule la distancia desde la muestra predicha hasta todas las muestras del conjunto de entrenamiento y luego seleccione las k distancias más pequeñas para obtener los k puntos más cercanos.
Desventajas: cuando hay muchas funciones y muestras, la eficiencia del algoritmo es relativamente baja.
2.Árbol KD (kd_tree):
Primero modele los datos de entrenamiento y construya un árbol KD, y luego obtenga datos de muestra adyacentes según el modelo construido.
El siguiente contenido presentará el método para encontrar el valor mínimo del árbol KD, para que todos puedan sentir intuitivamente cuántos datos debe recuperar el árbol KD en comparación con la implementación de fuerza bruta.