技术文摘
十种聚类算法的 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 示例,您可以根据实际数据的特点和需求选择合适的聚类方法,以实现有效的数据分析和挖掘。
- 选择手机端CSS框架需重点考虑的5个因素
- Vue与Tailwind CSS完美结合,构建现代化界面
- 移动设备上如何选择适合的CSS框架
- 深度探究CSS框架 增强网页布局与样式能力
- 借助Vue与Bulma打造强大简洁的前端用户界面
- CSS 中 position 定位及其用法学习指引
- Vue与Ant Design助力打造高级企业应用界面
- Vue 与 Bootstrap 携手打造响应式网页设计
- 手机端CSS框架的优点及不足探究
- 手机端CSS框架的5个热门推荐选择
- 剖析position属性于H5页面布局优化的应用
- CSS中position属性详解:relative与absolute定位差异
- CSS 中 sticky 定位属性:用法与效果呈现
- H5里position属性的巧妙运用技巧
- H5开发中position属性的常见应用场景