十种聚类算法的 Python 完整操作示例

2024-12-31 02:09:08   小编

十种聚类算法的 Python 完整操作示例

在数据挖掘和机器学习领域,聚类算法是一种重要的无监督学习方法,用于将数据集中相似的数据点分组。本文将介绍十种常见聚类算法的 Python 完整操作示例,帮助您更好地理解和应用这些算法。

一、K-Means 聚类 K-Means 是一种基于划分的聚类算法,它通过不断迭代更新聚类中心,将数据点划分到不同的簇中。

from sklearn.cluster import KMeans
import numpy as np

X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]])
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
print(kmeans.labels_)

二、层次聚类 层次聚类通过构建树形结构来进行聚类,分为凝聚型和分裂型两种。

from scipy.cluster.hierarchy import linkage, dendrogram
import matplotlib.pyplot as plt

X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]])
Z = linkage(X, 'ward')
dendrogram(Z)
plt.show()

三、密度聚类(DBSCAN) DBSCAN 基于密度的概念,能够发现任意形状的簇,并处理噪声点。

from sklearn.cluster import DBSCAN
import numpy as np

X = np.array([[1, 2], [2, 2], [2, 3], [8, 7], [8, 8], [25, 80]])
dbscan = DBSCAN(eps=3, min_samples=2).fit(X)
print(dbscan.labels_)

四、均值漂移聚类 均值漂移算法通过不断移动中心点,直到收敛到密度最大的区域。

from sklearn.cluster import MeanShift
import numpy as np

X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]])
meanshift = MeanShift().fit(X)
print(meanshift.labels_)

五、高斯混合模型(GMM)聚类 GMM 假设数据是由多个高斯分布混合而成,通过估计模型参数进行聚类。

from sklearn.mixture import GaussianMixture
import numpy as np

X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]])
gmm = GaussianMixture(n_components=2).fit(X)
print(gmm.predict(X))

六、谱聚类 谱聚类基于图论,将数据看作图中的节点,通过图的拉普拉斯矩阵进行聚类。

from sklearn.cluster import SpectralClustering
import numpy as np

X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]])
spectral = SpectralClustering(n_clusters=2).fit(X)
print(spectral.labels_)

七、OPTICS 聚类 OPTICS 是对 DBSCAN 的一种扩展,能够处理不同密度的簇。

from sklearn.cluster import OPTICS
import numpy as np

X = np.array([[1, 2], [2, 2], [2, 3], [8, 7], [8, 8], [25, 80]])
optics = OPTICS(min_samples=5).fit(X)
print(optics.labels_)

八、AP 聚类 AP 聚类通过消息传递的方式进行聚类,不需要指定聚类的数量。

from sklearn.cluster import AffinityPropagation
import numpy as np

X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]])
ap = AffinityPropagation().fit(X)
print(ap.labels_)

九、BIRCH 聚类 BIRCH 适用于大规模数据,通过构建 CF 树进行聚类。

from sklearn.cluster import Birch
import numpy as np

X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]])
birch = Birch(n_clusters=2).fit(X)
print(birch.labels_)

十、K-Medoids 聚类 K-Medoids 选择实际的数据点作为聚类中心,对噪声的鲁棒性更强。

from pyclustering.cluster.kmedoids import kmedoids
import numpy as np

X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]])
kmedoids_instance = kmedoids(X, [0, 3])
kmedoids_instance.process()
clusters = kmedoids_instance.get_clusters()
print(clusters)

通过以上十种聚类算法的 Python 示例,您可以根据实际数据的特点和需求选择合适的聚类方法,以实现有效的数据分析和挖掘。

TAGS: Python 操作 聚类算法 十种算法 完整示例

欢迎使用万千站长工具!

Welcome to www.zzTool.com