python - 分层聚类终止
问题描述
据我了解,凝聚层次聚类首先对彼此最接近的点进行聚类。我试图获得不同的聚类结果,其中只有一定百分比的数据被聚类以进行比较。即40%、50%、60%……
因此,我需要一种方法来终止使用 sklearn 的层次聚类(病房)算法,它已经对指定百分比的数据点进行了聚类。例如,在对 60% 的数据集进行聚类后停止聚类。
请解释这样做的最佳方法是什么?
解决方案
AgglomerativeClustering 对象使用自下而上的方法执行层次聚类:每个观察都在其自己的集群中开始,并且集群依次合并在一起。
因此,您可以通过定义多个集群并适当地设置compute_full_tree
参数(如API中定义)来“提前停止”。从使用全树计算运行算法时获得的集群数量,您可以定义集群数量的比率。
剩下的就是找出聚类的数量与已聚类的数据比例之间的关系;但这可能是做您想做的最直接的方法,无需对实际的凝聚聚类算法进行更改。
推荐阅读
- ios - 返回 GameScene 时内存增加
- c# - 由于每个页面上的表单标签,Web 应用程序项目无法访问
- angular - Angular 7/8 响应开发服务器上的健康检查
- apache-spark - Spark on Yarn 错误:Yarn 应用程序已经结束!它可能已被杀死或无法启动应用程序主控
- go - 欺骗 grpc UnaryHandler 以在 Go 中对 gRPC 进行单元测试
- c# - Azure Functions 无法解释的冷启动
- mysql - 我正在尝试在 sql 中运行查询,在其中将字段更改为小写以使其一致并对不同字段求和
- javascript - 使用 Vue 进行 Firestore 分页
- java - 双击 .jar 文件时程序无法正常运行
- javascript - Javascript Map 函数是异步的吗?