第3章 高级聚类
在本章中,我们将继续探索可用于非凸任务(例如K-means 无法同时获取内聚和分离,典型的示例是交错的几何结构)的更加复杂的聚类算法。我们还将演示如何将基于密度的算法应用于复杂数据集,以及如何根据所需结果正确选择超参数和评估性能。通过这种方式,数据科学家可以在面对不同类型的问题时,排除价值较低的解决方案,而只专注于最有希望的解决方案。
本章将着重讨论以下主题。
- 谱聚类。
- 均值漂移。
- 基于密度的噪声应用空间聚类(Density-based Spatial Clustering of Applications with Noise,DBSCAN)。
- 其他评估指标:Calinski-Harabasz分数和聚类不稳定性。
- K-medoids。
- 联机聚类(Mini-batch K-means以及使用层次结构的平衡迭代减少和聚类(Balanced Iterative Reducing and Clustering using Hierarchies,BIRCH))。
3.1 技术要求
本章中的代码需求如下。
- Python 3.5+(强烈推荐Anaconda发行版)。
- 库。
- SciPy 0.19+。
- NumPy 1.10+。
- scikit-learn 0.20+。
- pandas 0.22+。
- Matplotlib 2.0+。
- seaborn 0.9+。
数据集可以通过UCI数据集获得,除了在加载阶段添加列名外,不需要任何预处理。
示例代码可在本书配套的代码包获得。
3.2 谱聚类
可以管理非凸簇的最常见的一种算法是谱聚类。其主要思想是将数据集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.