详细内容或原文请订阅后点击阅览
BanditPAM:通过多臂老虎机进行几乎线性时间的 k-medoids 聚类
TL;DR想要比 \(k\)-means 更好的东西吗?我们最先进的 NeurIPS \(k\)-medoids 算法 BanditPAM 现已公开!\(\texttt{pip install banditpam}\),您就可以开始了!与 \(k\)-means 问题一样,\(k\)-medoids 问题是一个聚类问题,我们的目标是将数据集划分为不相交的子集。然而,在 \(k\)-medoids 中,我们要求聚类中心必须是实际数据点,这允许对聚类中心进行更好的解释。\(k\)-medoids 还可以更好地处理任意距离度量,因此如果您使用 \(L_1\) 之类的度量,您的聚类对异常值会更稳健。尽管有这些优势,但大多数人不使用 \(k\)-medoids,因为之前的算法太慢了。在我们的 NeurIPS 论文 BanditPAM 中,我们将最知名的算法从 \(O(n^2)\) 加速到 \(O(n\text{log}n)\)。我们发布了我们的实现,可通过 pip 安装。它用 C++ 编写,以提高速度,并支持并行化和智能缓存,不会给最终用户带来额外的复杂性。它的接口也与 \(\texttt{sklearn.cluster.KMeans}\) 接口相匹配,因此只需对现有代码进行最小的更改。有用的链接:3 分钟视频摘要 PyPIGithub 存储库全文 \(k\)-means vs. \(k\)-medoids 如果您是 ML 从业者,您可能熟悉 \(k\)-means 问题。事实上,您可能知道 \(k\)-means 问题的一些常见算法。然而,您不太可能熟悉 \(k\)-medoi
来源:斯坦福人工智能实验室博客