2016-01-25 3 views
3

У меня небольшие проблемы при превращении скрипта python в исполняемый файл. Это размер слишком большой для меня для распространения на моего клиента.Уменьшить размер каталога dist при использовании sklearn.cluster.KMeans (python + py2exe)

Ну, проблема в том, что я использую только несколько кода sklearn, и это приводит к сумме 240 МБ внутри моего каталога распространения. Я знаю, что это не потому, что я использую только одно, что мне не нужны другие. Но я ищу способ уменьшить этот размер или даже иметь альтернативу классу KMeans, с более легким пакетом машинного обучения для python.

При необходимости, части кода, которые используют эту функцию, являются:

from sklearn.cluster import KMeans 
... 
# clus is just hanging an object instance of KMeans 
clus = KMeans(n_clusters = _numBlocks, random_state = 1, n_jobs = 1) 
# and here, I just call its method 
_hourmap = clus.fit_predict(Load2Clus) 
... 

ответ

1

Ну kmeans очень простой алгоритм и лишь малая часть sklearn, как вы узнаете. Я бы не использовал sklearn, если вы ограничены в памяти, и это единственная часть всего пакета, который вы используете. Вам также может не понадобиться numpy, scipy и, возможно, другие пакеты, если вы не используете их в другом месте вашего кода.

варианты:

  • Реализовать свою собственную версию K-средства в Python.
  • Используйте простой пакет kmeans от here, который завершает реализацию C в KMeans.
  • Используйте различные легкие пакеты, как вы уже определили.

Другие вещи, которые необходимо учитывать для уменьшения размера библиотеки архива приведены here, в том числе:

  • За исключением различных внешних библиотек
  • За исключением части стандартной библиотеки
  • сжимающих архив

Какой из них подойдет вам лучше всего, зависит от вашей программы.