“El algoritmo KNN hace una suposición de que los nuevos datos y los datos existentes son comparables. Hace uso de las métricas de vecinos más cercanos para esto. Este artículo discutirá el algoritmo KNN y la implementación de Sklearn."
Que es knn?
Este algoritmo utiliza datos etiquetados porque es un modelo de aprendizaje automático supervisado. La ubicación del número de vecinos más cercano "K" del nuevo punto de datos determina cómo el algoritmo KNN lo clasifica. La distancia euclidiana se usa para lograr esto. La fórmula para la distancia euclidiana entre dos puntos (a, b) y (x, y) es √ (a-x)2 + (por)2.
Donde se usa knn?
KNN se puede usar para abordar una variedad de problemas. Por ejemplo, en la clasificación, se puede clasificar un nuevo punto simplemente mirando la clase de sus vecinos más cercanos. Los documentos más comparables a un documento dado se pueden encontrar utilizando KNN para verificar el plagio, descubrir espejos, etc. KNN se puede usar en sistemas de recomendación para identificar productos que se parecen más a un producto que un usuario no ha evaluado y luego determinar si el usuario lo disfrutará o no. Existen muchas otras aplicaciones, incluidos los métodos de agrupación, donde puede aplicarlas.
Pros y contras de knn?
Pros
Contras
Implementación de KNN en Sklearn
Importar los métodos y clases requeridos
de Sklearn.ENEMBLE DE IMPORTACIÓN ROLLIONFORESTCLASIFICADOR
de Sklearn.DataSets Import Make_Classification
de Sklearn.Los vecinos importan KneighborsClasifier
Creando el conjunto de datos
X, y = make_classification (n_samples = 500, n_feature = 4, n_informative = 2, n_redundant = 0, random_state = 0, shuffle = false)
Imprimir ('Las características son')
Imprimir (x)
Imprimir ('Las etiquetas son')
Imprimir (y)
Producción
Las características son
Array ([[0.44229321, 0.08089276, 0.54077359, -1.81807763],
[1.34699113, 1.48361993, -0.04932407, 0.2390336],
[-0.54639809, -1.1629494, -1.00033035, 1.67398571],
… ,
[0.8903941, 1.08980087, -1.53292105, -1.71197016],
[0.73135482, 1.25041511, 0.04613506, -0.95837448],
[0.26852399, 1.70213738, -0.08081161, -0.70385904]])
Las etiquetas son
Array ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
Crear el modelo y hacer predicciones
modelo = KneighBorsClassifier (n_neighbors = 5)
modelo.Fit (x, y)
impresión (modelo.Predecir ([[0.5, 0.3, 0.2, 0.1]])
impresión (modelo.Predicte_proba ([[0.5, 0.3, 0.2, 0.1]])
Producción
[0]
[[0.8 0.2]]
Conclusión
Discutimos el algoritmo KNN, que es un algoritmo de aprendizaje automático supervisado. Vimos dónde podría ser útil o puede fallar. Más tarde, también discutimos su implementación en Sklearn Python.