k-means的快速纯Python实现

时间:2013-07-19 04:05:42

标签: python google-app-engine cluster-analysis k-means

我希望在Google App Engine应用程序(专为Google Glass构建)上进行k-means群集。 App Engine只接受纯Python库。

我尝试使用SciPy的kmeanskmeans2编辑使用py_vq而不是vq的C实现,但它们花费的时间太长(~100秒) ~500,000 x,y,z点,我的App Engine日志中得到DeadlineExceededError

为了节省内存限制,我已经减少了90%的样本量,所以我想回避减少样本量。

是否有任何纯粹的Python k-means库对Google App Engine来说足够快?

2 个答案:

答案 0 :(得分:1)

如果遇到DeadlineExceededError,请考虑使用后端。后端没有截止日期和可配置的内存限制(不是很高,但最大1GB)。

请参阅:https://developers.google.com/appengine/docs/python/backends/

答案 1 :(得分:0)

嗯,C实现肯定比纯python实现更快...... 对于数字的东西,纯python可能非常昂贵而且速度慢。这就是为什么像numpy和scipy这样的python库在后端用更快的语言实现了很多东西。

您也可以尝试限制迭代次数。 10次​​迭代后的k均值结果可能与实际中的最终结果一样好。这是事情发生很大变化的第一次迭代。