Clasificación por centroides cercanos

Machine LearningMachine LearningBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/neighbors("Nearest Neighbors") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/inspection("Inspection") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/neighbors -.-> lab-49226{{"Clasificación por centroides cercanos"}} sklearn/inspection -.-> lab-49226{{"Clasificación por centroides cercanos"}} ml/sklearn -.-> lab-49226{{"Clasificación por centroides cercanos"}} end

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.