第3章 高级聚类

在本章中,我们将继续探索可用于非凸任务(例如K-means 无法同时获取内聚和分离,典型的示例是交错的几何结构)的更加复杂的聚类算法。我们还将演示如何将基于密度的算法应用于复杂数据集,以及如何根据所需结果正确选择超参数和评估性能。通过这种方式,数据科学家可以在面对不同类型的问题时,排除价值较低的解决方案,而只专注于最有希望的解决方案。

本章将着重讨论以下主题。

  • 谱聚类。
  • 均值漂移。
  • 基于密度的噪声应用空间聚类Density-based Spatial Clustering of Applications with NoiseDBSCAN)。
  • 其他评估指标:Calinski-Harabasz分数和聚类不稳定性。
  • K-medoids。
  • 联机聚类(Mini-batch K-means以及使用层次结构的平衡迭代减少和聚类Balanced Iterative Reducing and Clustering using HierarchiesBIRCH))。

本章中的代码需求如下。

  • Python 3.5+(强烈推荐Anaconda发行版)。
  • 库。
    • SciPy 0.19+。
    • NumPy 1.10+。
    • scikit-learn 0.20+。
    • pandas 0.22+。
    • Matplotlib 2.0+。
    • seaborn 0.9+。

数据集可以通过UCI数据集获得,除了在加载阶段添加列名外,不需要任何预处理。

示例代码可在本书配套的代码包获得。

可以管理非凸簇的最常见的一种算法是谱聚类。其主要思想是将数据集X投影到可以通过超球体捕获聚类的空间(例如使用K-means)。用不同的方式都可以实现这一结果,但是由于算法的目标是去除通用形状区域的凹陷,第一步始终是用图形 ...

Get Python无监督学习 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.