Aller au contenu principal

Comment effectuer le regroupement et la classification à l'aide de SciPy.

Voici un tutoriel étape par étape sur la façon d'effectuer le regroupement et la classification à l'aide de SciPy.

Introduction au regroupement et à la classification

Le regroupement et la classification sont deux techniques couramment utilisées en apprentissage automatique pour regrouper des points de données similaires et faire des prédictions. Le regroupement consiste à diviser un ensemble de données en groupes ou en clusters en fonction de la similarité des points de données, tandis que la classification consiste à attribuer des étiquettes ou des catégories aux points de données en fonction de leurs caractéristiques.

Étape 1: Importation des bibliothèques requises

Pour effectuer le regroupement et la classification à l'aide de SciPy, nous devons importer les bibliothèques requises. Les principales bibliothèques que nous utiliserons sont numpy, scipy et sklearn.

import numpy as np
from scipy.cluster import hierarchy
from scipy.spatial import distance
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

Étape 2: Génération de données

Pour démontrer le regroupement et la classification, générons un ensemble de données d'exemple à l'aide de la fonction make_blobs de sklearn.datasets. Cette fonction crée un nombre spécifié de clusters, chacun avec un nombre spécifié de points de données.

# Générer des données d'exemple
X, y = make_blobs(n_samples=100, centers=3, random_state=0)

Étape 3: Regroupement avec le regroupement hiérarchique agglomératif

Le regroupement hiérarchique agglomératif est une méthode de regroupement populaire qui fusionne de manière récursive des clusters similaires jusqu'à ce qu'un critère d'arrêt soit atteint. Nous pouvons effectuer le regroupement hiérarchique agglomératif à l'aide des fonctions linkage et dendrogram de scipy.cluster.hierarchy.

# Calculer la matrice de distance par paires
dist_matrix = distance.pdist(X)

# Effectuer le regroupement hiérarchique
linkage_matrix = hierarchy.linkage(dist_matrix, method='complete')

# Tracer le dendrogramme
dendrogram = hierarchy.dendrogram(linkage_matrix)

Étape 4: Regroupement K-Means

Le regroupement K-Means est un autre algorithme de regroupement populaire qui partitionne les données en un nombre spécifié de clusters. Nous pouvons effectuer le regroupement K-Means à l'aide de la classe KMeans de sklearn.cluster.

# Effectuer le regroupement K-Means
kmeans = KMeans(n_clusters=3, random_state=0)
labels = kmeans.fit_predict(X)

# Tracer les clusters
plt.scatter(X[:, 0], X[:, 1], c=labels)

Étape 5: Classification des données avec les plus proches voisins (K-Nearest Neighbors)

Les plus proches voisins (KNN) est un algorithme de classification simple qui attribue des étiquettes aux points de données en fonction du vote majoritaire de leurs voisins les plus proches. Nous pouvons effectuer la classification KNN à l'aide de la classe KNeighborsClassifier de sklearn.neighbors.

# Diviser les données en ensembles d'entraînement et de test
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

# Effectuer la classification KNN
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

# Faire des prédictions sur l'ensemble de test
y_pred = knn.predict(X_test)

Conclusion

Dans ce tutoriel, nous avons appris comment effectuer le regroupement et la classification à l'aide de SciPy. Nous avons abordé le regroupement hiérarchique agglomératif, le regroupement K-Means et la classification des plus proches voisins (KNN). Ces techniques sont largement utilisées dans diverses applications d'apprentissage automatique et peuvent être appliquées à un large éventail d'ensembles de données.