机器学习数据集可能有数百万 但并非所有聚类算法都能高效扩展。大量聚类 算法会计算所有样本对之间的相似度, 意味着它们的运行时间会随样本数量的平方而增加 \(n\), 以复杂度 \(O(n^2)\) 表示。 \(O(n^2)\) 算法并非 适合具有数百万个示例的数据集。
k-means 算法具有 \(O(n)\)的复杂程度,即算法会根据 \(n\)以线性方式扩缩。 本课程将重点介绍此算法。
聚类的类型
有关不同聚类方法的详尽列表,请参阅 聚类算法的全面调查 Xu, D.& Tian, Y. 安,数据。科学(2015) 2:165。每种方法最适合 特定的数据分布。本课程简要介绍了 方法。
基于形心的聚类
聚类的形心是 计算所有数据点的算术平均值 集群。基于形心的聚类将数据整理为不分层的数据 集群。基于形心的聚类算法虽然高效, 初始条件和离群值。其中,k-means 是 广泛使用。需要用户定义形心数、k 和 k 非常适合大小大致相同的集群。
基于密度的聚类
基于密度的聚类将高样本密度的连续区域连接到 集群。这样可以发现任意数量的任意形状的聚类。 离群值不会分配给集群。这些算法难以处理 不同密度的聚类以及具有高维度的数据。
基于分布的聚类
这种聚类方法假设数据由概率分布、 例如 高斯分布。在 图 3 中,基于分布的算法将数据聚类到三类高斯分布图中 分发。随着与分布中心的距离的增加, 某个点属于该分布的概率降低。乐队表演 概率降低的情况。当您不愿假定某个特定的 您应使用其他算法。
层次聚类
分层聚类可创建聚类树。层次聚类, 不出意料的是,它非常适合分层数据,例如分类。请参阅 61 个序列的大肠杆菌基因组的比较 作者:Oksana Lukjancenko、Trudy Wassenaar 和以戴维·乌西里 (Dave Ussery) 为例。 通过在正确的级别切割树,可以选择任意数量的聚类。