Knn en Sklearn

Knn en Sklearn

“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

    • Un algoritmo simple que solo emplea la función de distancia y el valor de k (el entero impar) (euclidean, como se menciona hoy).
    • Es un enfoque que es efectivo para pequeños conjuntos de datos.
    • Hacer uso de "aprendizaje perezoso."Esto lo hace más rápido que las máquinas vectoriales de soporte (SVM) y la regresión lineal porque el conjunto de datos de capacitación se mantiene y se usa al hacer predicciones.

Contras

    • Procesar conjuntos de datos grandes tardan más.
    • Las llamadas para la escala de características y la falta de hacerlo conducirán a proyecciones inexactas.
    • Los datos ruidosos pueden hacer que los datos estén superpuestos.

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.