技术文摘
十种聚类算法的 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 示例,您可以根据实际数据的特点和需求选择合适的聚类方法,以实现有效的数据分析和挖掘。
- Nim 语言于蓝军实战的研究汇总
- 面试聚焦:线程休眠的方法数量探究
- 六款超赞的开源 Python Web 框架推荐
- 圣杯布局与双飞翼布局,你更倾向哪种?
- 分段锁在并发资源竞争问题处理中的测试记录
- Python 助力识别花卉种类并自动分类,趣味十足!
- 使用 web3.py 在 Python 中存取 Ethereum
- SDKMAN 助力 JDK 管理之道
- Vue.js 设计与实现之十一:渲染器设计
- 命令解析中回调函数的应用
- 130 行 Python 代码完成核酸统计,两分钟超越人工一小时
- React 18 全面概览
- JavaScript 数组新增的四个非破坏性方法
- 深度解析层次聚类(附 Python 代码)
- Go 语言整洁架构的实践探索