KMeans 的上手门槛比较低,代码也简单,适合初学者练手。层次聚类有点像“画家分组”,逻辑清晰,适合样本量不大的时候用。DBSCAN挺适合那种数据不太规则的情况,能自动噪声。BIRCH也蛮有意思,大规模数据的时候表现还不错。
如果你正纠结选哪个,不妨都试一遍,顺便看看数据的分布特性,说不定有惊喜。
文中给了不少Python代码示例,比如sklearn.cluster.KMeans
和DBSCAN
的调用方式,配合实战数据一块看,更直观。
我推荐的这篇文章,不只是把算法丢给你,还结合了实际应用场景,讲清楚怎么选、怎么调参,比较适合需要快速落地的小伙伴。
你也可以顺手看看这些文章:Python KMeans 聚类与应用探讨、探究层次聚类、优化后的 BIRCH 聚类算法,都还不错。
如果你数据杂、量大、不知道该用哪个聚类算法,可以从 KMeans 和 DBSCAN 开始试手,效率和效果兼顾。