繁体   English   中英

Python KMeans聚类单词

[英]Python KMeans clustering words

我有兴趣在距离测量为Leveshtein的单词列表上执行kmeans聚类。

1)我知道有很多框架,包括具有kmeans实现的scipy和orange。 然而,它们都需要某种矢量作为不适合我的数据。

2)我需要一个很好的集群实现。 我查看了python-clustering并意识到它不会a)返回每个质心的所有距离的总和,并且b)它没有任何类型的迭代限制或切断,这确保了聚类的质量。 python-clustering和daniweb上的聚类算法并不适用于我。

有人能找到我的好lib吗? 谷歌不是我的朋友

是的,我认为我所需要的并没有很好的实施。

我有一些疯狂的要求,比如远程缓存等。

所以我想我会写自己的lib并尽快将它作为GPLv3发布。

不是你的具体问题的答案,但我建议看一下“编程集体智慧” 在每一章的最后,例如,聚类,它徘徊在描述关于该主题的所有最佳阅读。

CrossValidated上这个非常好的答案怎么样?

它使用Affinity Propagation而不是k-means,在这种情况下,您可以将距离度量作为输入。 我不认为任何基于k-means的方法可以在你的情况下工作,因为它基于构建质心,为了做到这一点,你必须在一个向量空间。

亲和力传播具有以下奖励:它自动选择群集的数量,您可以通过更改偏好来调整(具有更多或更少的群集)(默认情况下是所有成对距离的中位数,但您可以选择其他百分位数)。

如果你需要指定集群的确切数量,除了通过试验和错误调整Affinity Propagation之外,你可以寻找k-medoids的实现 (显然在sklearn中没有实现它,但人们已经在这里那里要求它) 。 K-medoids不构建质心,因此它不需要向量空间的概念。 因此,实现可能接受预先计算的距离矩阵作为输入(但是没有检查我给出的引用)。

也许看看Weka吧 它是一个Java库,带有一些无监督的学习实现和很好的可视化工具。 自从我使用它已经有一段时间了,不确定它是否适用于真正的生产环境,但确实是一个很好的起点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM