El algoritmo de la k vecina más cercana (KNN) en Python en menos de 128 palabras.

El algoritmo k-learning más cercano (KNN) se utiliza para realizar la clasificación de datos.

Para predecir la clasificación de un nuevo dato, el algoritmo se basa en los registros k del conjunto de datos de aprendizaje se encuentran más similares a este nuevo registro.

La similitud entre los registros se puede medir de diferentes maneras. Generalmente un buen punto de partida es la distancia Euclides.

El algoritmo es el siguiente:

Para una entrada x ¿cuál es su clase y si confío en el neighborkk establecido más cercano a x?

  1. Encontrar la parte k introducir los datos de entrenamiento que son los más cercanos a mi entrada x (aquí vamos a utilizar por ejemplo la distancia Euclides)
  2. Haga que cada uno de estos datos de entrenamiento vote por su clase.
  3. Devolver la clase mayoritaria

El éxito del algoritmo dependerá de la cantidad de datos de entrenamiento y de la calidad de la medición de la distancia entre 2 vectores x.

Este es un ejemplo de Uso e implementación de Python en la base de datos que se relaciona con la concesión de un crédito basado en la edad y la cantidad solicitada. La clase es la respuesta Sí o NO.

de matemáticas importación sqrt
 
Hacer una predicción de clasificación
def predire_classification (donnee_test, formación, nombre_voisins_vote):
	vecinos - recherche_voisins (formación, donnee_test, nombre_voisins_vote)
	salida -[vecteur[-1] para vector en vecinos]
	predicción - max (set), key-exit.count)
	predicción de retorno


 euclidiana #Distance de 2 vectores
def distance_euclidienne (vector1, vector2):
	distancia - 0,0
	para i en el rango (len)-1):
		distancia (vecto[i]r1 - vect[i]or2)
	retorno sqrt (distancia)
 

Búsqueda de vecinos
def recherche_voisins (entrenamiento, donnee_test, nbVoisins):
	distancias - list()
	para la formación en línea en formación:
		dist - distance_euclidienne (donnee_test, Línea de entrenamiento)
		distances.append (línea de entrenamiento, dist)
	distances.sort (key-lambda tup: tu[1]p)
	kVoisins - list()
	para i en el rango (nbVoisins):
		kVoisins.append (distancia[i][0]s)
	devolver kVoisins
 
 
Datos de formación
El aprendizaje da[[25,40000,'NON'],
		   [30,60000,'OUI'],
		   ,
		   ,
		   ,
		   ,
		   ,
		   ,
		   ,
		   [32,10000,'NON']]

predicción - predire_classification (aprendizaje, d[1]onación, aprendizaje, 3)
imprimir ('Debemos encontrar %s, la predicción es: %s.' % (dadoSLearning[1][-1], predicción))