Maison  >  Article  >  développement back-end  >  Exemples d'analyse de cluster en Python

Exemples d'analyse de cluster en Python

王林
王林original
2023-06-10 12:30:072983parcourir

L'analyse cluster est une méthode d'analyse de données courante qui peut diviser des ensembles de données en différents groupes ou catégories. Python fournit une variété d'algorithmes de clustering et nous pouvons choisir différents algorithmes d'analyse en fonction de différents besoins. Cet article présentera certains algorithmes de clustering couramment utilisés en Python et donnera des exemples d'applications.

1. Algorithme K-Means

L'algorithme K-Means est un algorithme de clustering couramment utilisé qui regroupe les données en fonction de la distance euclidienne. Cet algorithme divise l'ensemble de données en k clusters, où le point central de chaque cluster est la moyenne de tous les membres du cluster. Les étapes spécifiques de l'algorithme sont les suivantes :

  1. Sélectionnez au hasard k points comme centres de cluster initiaux.
  2. Calculez la distance de tous les points de données par rapport au centre du cluster et classez chaque point de données dans le cluster le plus proche.
  3. Recalculez le point central de chaque cluster en fonction des nouveaux résultats de classification.
  4. Répétez les étapes 2 et 3 jusqu'à ce que les clusters ne changent plus ou que le nombre d'itérations spécifié soit atteint.

Ce qui suit est un exemple Python d'analyse de cluster utilisant l'algorithme K-Means :

import numpy as np
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

# 生成随机数据
X, y = make_blobs(n_samples=300, centers=4, random_state=42)

# 运行 K-Means 算法
kmeans = KMeans(n_clusters=4, random_state=42)
y_pred = kmeans.fit_predict(X)

# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.title("K-Means Clustering")
plt.show()

Dans le code ci-dessus, la fonction make_blobs est utilisée pour générer un ensemble de données contenant 300 points d'échantillonnage, contenant un total de 4 clusters. Utilisez ensuite la fonction KMeans pour effectuer le clustering, spécifiez le nombre de clusters sur 4 et obtenez le résultat de la classification de chaque point de données via la méthode fit_predict. Enfin, utilisez Matplotlib pour tracer les résultats du clustering.

2. Algorithme de clustering hiérarchique

L'algorithme de clustering hiérarchique est un algorithme de clustering ascendant qui fusionne progressivement les données en clusters plus grands en fonction de la similarité des données. Les étapes spécifiques de cet algorithme sont les suivantes :

  1. Traitez chaque point de données comme un cluster distinct.
  2. Calculez la distance entre les deux clusters les plus proches.
  3. Fusionnez les deux clusters les plus proches dans un nouveau cluster.
  4. Répétez les étapes 2 et 3 jusqu'à ce que tous les clusters soient fusionnés en un seul cluster ou que le nombre spécifié de clusters soit atteint.

Ce qui suit est un exemple Python d'utilisation d'un algorithme de clustering hiérarchique pour l'analyse de cluster :

from sklearn.cluster import AgglomerativeClustering
from sklearn.datasets import make_moons
import matplotlib.pyplot as plt

# 生成随机数据
X, y = make_moons(n_samples=200, noise=0.05, random_state=42)

# 运行层次聚类算法
agglomerative = AgglomerativeClustering(n_clusters=2)
y_pred = agglomerative.fit_predict(X)

# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.title("Agglomerative Clustering")
plt.show()

Dans le code ci-dessus, la fonction make_moons est utilisée pour générer un ensemble de données contenant 200 points d'échantillonnage, et la fonction AgglomerativeClustering est utilisée pour le clustering, en spécifiant que le nombre de clusters est 2. Enfin, utilisez Matplotlib pour tracer les résultats du clustering.

3. Algorithme DBSCAN

L'algorithme DBSCAN est un algorithme de clustering basé sur la densité qui peut diviser les points de données en différents clusters en fonction de la densité de l'ensemble de données. Les étapes spécifiques de l'algorithme sont les suivantes :

  1. Sélectionnez au hasard un point de données non visité comme point central.
  2. Trouvez tous les points dont la distance par rapport au point central ne dépasse pas le rayon donné en tant que zone de densité accessible centrée sur le point central.
  3. Si un point se trouve dans la zone de densité accessible d'un autre point central, fusionnez-le ainsi que le point central en un seul cluster.
  4. Répétez les étapes 1 à 3 jusqu'à ce qu'aucun nouveau point central ne soit visité.

Ce qui suit est un exemple Python d'utilisation de l'algorithme DBSCAN pour l'analyse de cluster :

from sklearn.cluster import DBSCAN
from sklearn.datasets import make_moons
import matplotlib.pyplot as plt

# 生成随机数据
X, y = make_moons(n_samples=200, noise=0.05, random_state=42)

# 运行 DBSCAN 算法
dbscan = DBSCAN(eps=0.2, min_samples=5)
y_pred = dbscan.fit_predict(X)

# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.title("DBSCAN Clustering")
plt.show()

Dans le code ci-dessus, la fonction make_moons est utilisée pour générer un ensemble de données contenant 200 points d'échantillonnage, et la fonction DBSCAN est utilisée pour le clustering, en précisant le rayon et le nombre minimum d’échantillons. Enfin, utilisez Matplotlib pour tracer les résultats du clustering.

Résumé

Cet article présente trois algorithmes de clustering couramment utilisés en Python et donne des exemples d'applications correspondants. Les algorithmes de clustering sont une méthode d'analyse de données très utile qui peut nous aider à découvrir des modèles et des relations cachés dans les données. Dans les applications pratiques, nous pouvons choisir différents algorithmes d’analyse en fonction des caractéristiques et des besoins des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn