技术文摘
十种聚类算法的 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 示例,您可以根据实际数据的特点和需求选择合适的聚类方法,以实现有效的数据分析和挖掘。
- Laravel框架下微信支付与支付宝支付的无缝集成方法
- a标签为何要设置宽度才能在img标签中显示SVG图片
- Laravel 框架中轻松集成微信支付与支付宝支付的方法
- 浏览器缩放时避免px出现小数点的方法
- JavaScript中this指向谜团:调用和赋值有何区别
- 浏览器调试台中flex标签的含义
- 无母版页时网站导航栏共用的实现方法
- Vue 项目里阿里 iconfont 文件的放置与引用方法
- Vue实现两张图片融合为一张及跨屏幕自适应方法
- 首个项目的经验与教训
- 在 Vue 项目里怎样动态创建虚拟 Vue 文件
- Vue 文件如何动态生成并存储至特定目录
- jQuery获取多个div中input和select值的方法
- 怎样解决点击页面非指定区域导致的事件错误
- 原生 CSS 怎样实现自增长有序列表