Introducción
Esta práctica te guiará a través de la implementación de la clasificación por centroide más cercano utilizando Scikit-learn. La clasificación por centroide más cercano es un método de clasificación simple que funciona calculando el centroide para cada clase y luego clasificando nuevos puntos de datos basados en cuál centroide está más cerca de ellos.
Consejos sobre la VM
Una vez que se haya iniciado la VM, haz clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.
A veces, es posible que tengas que esperar algunos segundos para que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.
Si tienes problemas durante el aprendizaje, no dudes en preguntar a Labby. Proporciona retroalimentación después de la sesión y resolveremos rápidamente el problema para ti.
Importar las bibliotecas necesarias
Primero, necesitamos importar las bibliotecas necesarias, que incluyen Numpy, Matplotlib, conjuntos de datos de Scikit-learn, NearestCentroid y DecisionBoundaryDisplay.
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
from sklearn import datasets
from sklearn.neighbors import NearestCentroid
from sklearn.inspection import DecisionBoundaryDisplay
Cargar los datos
A continuación, cargamos el conjunto de datos iris de Scikit-learn y seleccionamos solo las primeras dos características para fines de visualización.
iris = datasets.load_iris()
X = iris.data[:, :2]
y = iris.target
Crear mapas de colores
Creamos dos mapas de colores para fines de visualización utilizando la función ListedColormap de Matplotlib.
cmap_light = ListedColormap(["naranja", "cian", "azul de margarita"])
cmap_bold = ListedColormap(["naranja oscuro", "c", "azul oscuro"])
Crear y ajustar el clasificador
Creamos una instancia del clasificador Nearest Centroid con un valor de contracción de 0,2 y ajustamos los datos.
clf = NearestCentroid(shrink_threshold=0.2)
clf.fit(X, y)
Predecir y medir la precisión
Predecimos las etiquetas de clase para los datos de entrada y medimos la precisión del clasificador.
y_pred = clf.predict(X)
print("Precisión: ", np.mean(y == y_pred))
Visualizar los límites de decisión
Visualizamos los límites de decisión del clasificador utilizando la función DecisionBoundaryDisplay de Scikit-learn.
_, ax = plt.subplots()
DecisionBoundaryDisplay.from_estimator(
clf, X, cmap=cmap_light, ax=ax, response_method="predict"
)
Graficar los puntos de datos
Graficamos los puntos de datos de entrada utilizando la función scatter de Matplotlib.
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=cmap_bold, edgecolor="k", s=20)
Agregar título y etiquetas de eje
Agregamos un título y etiquetas de eje a la gráfica utilizando las funciones title, xlabel e ylabel de Matplotlib.
plt.title("Nearest Centroid Classification")
plt.xlabel("Sepal length")
plt.ylabel("Sepal width")
Mostrar la gráfica
Mostramos la gráfica utilizando la función show de Matplotlib.
plt.show()
Resumen
En este laboratorio, aprendimos cómo implementar la clasificación por centroides cercanos utilizando Scikit-learn. Cargamos el conjunto de datos iris, creamos un clasificador, predecimos las etiquetas de clase, midimos la precisión y visualizamos los límites de decisión y los puntos de datos de entrada.