使用sklearn.cluster.KMeans(python + py2exe)时减少dist目录大小

时间:2016-01-25 17:16:07

标签: python scikit-learn py2exe

将python脚本转换为可执行文件时遇到了一些麻烦。 它的大小太大,我无法分发给我的客户。

嗯,问题是我只使用了一些sklearn代码,它在我的分发目录中导致总共240 MB。 我知道这不是因为我只使用了一件我不需要其他东西的东西。 但我正在寻找一种方法来减小这个大小,甚至可以替代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 个答案:

答案 0 :(得分:1)

kmeans是一个非常简单的算法,只是你认识的sklearn的一小部分。如果您受到内存限制,我会避免使用sklearn,这是您使用的整个软件包的唯一部分。您也可能不需要numpyscipy以及可能的其他软件包,除非您在代码中的其他位置使用它们。

您的选择是:

  • 在Python中实现您自己的K-means版本。
  • 使用here中包含KMeans C实现的简单kmeans包。
  • 使用您已经识别的不同轻量级包装。

为减少图书馆档案的大小需要考虑的其他事项here,包括:

  • 不包括各种外部库
  • 排除标准库的部分
  • 压缩存档

哪一项最适合您,取决于您的计划。