2013-07-19 1 views
-2

Google App Engine 앱 (Google Glass 용으로 제작 됨)에서 k-means 클러스터링을하려고합니다. App Engine은 순수한 Python 라이브러리 만 허용합니다.k-means의 빠른 순수 Python 구현

나는 ~ 500,000 X, Y, Z 점에 SciPy의 kmeans 대신 vq의 C 구현의 py_vq를 사용하여 편집 kmeans2, 그러나 너무 오래 걸릴 (~ 백초)를 사용하여 시도하고 난에 DeadlineExceededError을 얻을 내 App Engine Logs.

이미 메모리 제한을 줄이기 위해 샘플 크기를 90 % 줄 였으므로 더 이상 샘플 크기를 줄이려하지 않습니다.

Google App Engine에 충분히 빠른 순수 Python k-means 라이브러리가 있습니까?

+0

다음을 고려해 보셨습니까? http://docs.scipy.org/doc/scipy/reference/cluster.vq.html? – woozyking

+0

죄송합니다, SciPy가'kmeans'와'kmeans2'를 언급하고있었습니다. 제 질문에 그것을 추가 할 것입니다 –

답변

1

DeadlineExceededError가 표시되면 백엔드 사용을 고려하십시오. 백엔드에는 최종 기한 및 구성 가능한 메모리 제한이 없습니다 (최대 1GB 이하는 아님).

참조 : https://developers.google.com/appengine/docs/python/backends/

+0

고마워요! 이것이 옵션인지 몰랐어. –

0

글쎄, C 구현 확실히 수치 물건에 대한 순수 파이썬 구현 ... 보다 빠른 것, 순수한 파이썬은 정말 비싸고 속도가 느려질 수 있습니다. 이것이 바로 numpy 나 scipy와 같은 파이썬 라이브러리가 백엔드의 더 빠른 언어로 구현 된 많은 것들을 가지고있는 이유입니다.

반복 횟수를 제한 할 수도 있습니다. 10 번의 반복 이후의 k- 평균 결과는 실제로 최종 결과만큼 좋을 것입니다. 일이 많이 바뀌는 첫 번째 반복입니다.

관련 문제