Introducción
En este laboratorio, aprenderemos sobre el agrupamiento inductivo, un método que extiende el agrupamiento mediante la inducción de un clasificador a partir de las etiquetas de los clusters. Usaremos la librería scikit-learn en Python para implementar un meta-estimador que extiende el agrupamiento.
Consejos sobre la VM
Una vez finalizada la inicialización de la VM, haga 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 tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.
Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje su retroalimentación después de la sesión y resolveremos rápidamente el problema para usted.
Generar datos de entrenamiento
En este paso, generaremos algunos datos de entrenamiento a partir del agrupamiento. Usaremos la función make_blobs de scikit-learn para generar 5000 muestras con 3 clusters que tienen desviaciones estándar y centros diferentes.
X, y = make_blobs(
n_samples=5000,
cluster_std=[1.0, 1.0, 0.5],
centers=[(-5, -5), (0, 0), (5, 5)],
random_state=42,
)
Entrenar el algoritmo de agrupamiento
En este paso, entrenaremos un algoritmo de agrupamiento con los datos de entrenamiento generados y obtendremos las etiquetas de los clusters. Usaremos AgglomerativeClustering de scikit-learn para entrenar el algoritmo con 3 clusters.
clusterer = AgglomerativeClustering(n_clusters=3)
cluster_labels = clusterer.fit_predict(X)
Generar nuevas muestras
En este paso, generaremos nuevas muestras y las graficaremos junto con el conjunto de datos original. Usaremos nuevamente la función make_blobs para generar 10 nuevas muestras.
X_new, y_new = make_blobs(
n_samples=10, centers=[(-7, -1), (-2, 4), (3, 6)], random_state=42
)
Declarar el modelo de aprendizaje inductivo
En este paso, declararemos el modelo de aprendizaje inductivo que se utilizará para predecir la pertenencia a un cluster de instancias desconocidas. Usaremos RandomForestClassifier de scikit-learn como clasificador.
classifier = RandomForestClassifier(random_state=42)
inductive_learner = InductiveClusterer(clusterer, classifier).fit(X)
Predecir la pertenencia a un cluster para instancias desconocidas
En este paso, usaremos el modelo de aprendizaje inductivo para predecir la pertenencia a un cluster de las nuevas muestras generadas. Usaremos la función predict de la clase InductiveClusterer y graficaremos las nuevas muestras con sus posibles clusters.
probable_clusters = inductive_learner.predict(X_new)
plt.subplot(133)
plot_scatter(X, cluster_labels)
plot_scatter(X_new, probable_clusters)
plt.title("Classify unknown instances")
Resumen
En este laboratorio, aprendimos sobre el agrupamiento inductivo, un método que extiende el agrupamiento mediante la inducción de un clasificador a partir de las etiquetas de los clusters. Usamos la biblioteca scikit-learn en Python para implementar un meta-estimador que extiende el agrupamiento y entrenamos un algoritmo de agrupamiento con los datos de entrenamiento generados. También generamos nuevas muestras y usamos el modelo de aprendizaje inductivo para predecir la pertenencia a un cluster de las nuevas muestras.