我希望在Google App Engine应用程序(专为Google Glass构建)上进行k-means群集。 App Engine只接受纯Python库。
我尝试使用SciPy的kmeans
和kmeans2
编辑使用py_vq
而不是vq
的C实现,但它们花费的时间太长(~100秒) ~500,000 x,y,z点,我的App Engine日志中得到DeadlineExceededError
。
为了节省内存限制,我已经减少了90%的样本量,所以我想回避减少样本量。
是否有任何纯粹的Python k-means库对Google App Engine来说足够快?
答案 0 :(得分:1)
如果遇到DeadlineExceededError,请考虑使用后端。后端没有截止日期和可配置的内存限制(不是很高,但最大1GB)。
请参阅:https://developers.google.com/appengine/docs/python/backends/
答案 1 :(得分:0)
嗯,C实现肯定比纯python实现更快...... 对于数字的东西,纯python可能非常昂贵而且速度慢。这就是为什么像numpy和scipy这样的python库在后端用更快的语言实现了很多东西。
您也可以尝试限制迭代次数。 10次迭代后的k均值结果可能与实际中的最终结果一样好。这是事情发生很大变化的第一次迭代。