Blog
Machine Learning Nearest Centroid Classifier
- Publicado por: Rafael Fernandez
- Categoría: Machine Learning scikit-learn
-Aquí aprenderás de que se trata el algoritmo de Nearest Centroid Classifier.
-Ejemplo de Nearest Centroid Classifier.
El clasificador NearestCentroid es un algoritmo simple que representa cada clase por el centroide de sus miembros. En efecto, esto lo hace similar a la fase de actualización de etiquetas del algoritmo sklearn.KMeans. Tampoco tiene parámetros a elegir, por lo que es un buen clasificador de línea de base. Sin embargo, sí sufre en las clases no convexas, así como cuando las clases tienen variaciones drásticamente diferentes, ya que se asume una variación igual en todas las dimensiones. Ver Análisis discriminante lineal (sklearn. discriminant_analysis. LinearDiscriminantAnalysis) y Análisis discriminante cuadrático (sklearn. discriminant_analysis. QuadraticDiscriminantAnalysis) para métodos más complejos que no hacen esta suposición. El uso del NearestCentroid predeterminado es simple.
Ejemplo de Nearest Centroid Classifier
En el siguiente ejemplo hacemos machine learning con dos puntos nuevos p1=(-2,-2) y p2=(5,3). Cada punto cae en un grupo de diferente como se puede ver en la imagen.
from sklearn.neighbors.nearest_centroid import NearestCentroid import numpy as np import matplotlib.pyplot as plt X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]]) y = np.array([1, 1, 1, 2, 2, 2]) clf = NearestCentroid() clf.fit(X, y) NearestCentroid(metric='euclidean', shrink_threshold=None) print(clf.predict([[-2, -2]])) print(clf.predict([[5, 3]])) Grupo1,=plt.plot(X[0:3,0],X[0:3,1],'xr', label='Grupo1') Grupo2,=plt.plot(X[3:7,0],X[3:7,1],'xb', label='Grupo2') plt.plot([-2],[ -2],'or') plt.plot([5],[ 3],'ob') plt.legend(handles=[Grupo1, Grupo2])
➡ Continúa aprendiendo de Machine Learning con nuestro curso: