技术文摘
十种聚类算法的 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 示例,您可以根据实际数据的特点和需求选择合适的聚类方法,以实现有效的数据分析和挖掘。
- Shell 脚本实现命令自动化的五种途径
- 首个能于条件语句运用的原生 Hook 出现
- 携手迈入 Maven 天地
- 火山引擎韩云飞:数据驱动下的 ROI 潜力无限
- Python 随机密码生成器的制作方法
- Python 惰性导入的实现方法
- 阿里二面:ThreadLocal 内存泄露之因
- 运营活动的设计及实现逻辑漫谈
- Flowable 服务任务的三种执行方式
- Copilot 逐字复制代码或致开源社区覆灭 程序员持律师证发起集体诉讼
- JS 数组判断方法汇总,哪种最可靠?
- 五个必知的 JavaScript 数组方法 轻松生活必备
- 现代 JavaScript 的发布、传输与安装 加速应用程序
- 为 Node.js 打造的低代码框架由我们设计
- Bootstrap 源码分析总结:你掌握了吗?