Python scikit-learn KMeans在计算轮廓分数时被杀死(9)

时间:2015-05-19 09:28:00

标签: python scikit-learn k-means sigkill

我目前正在研究一个图像数据集(250 000个图像,所以与特征向量一样多,每个图像由132个特征组成)并尝试使用sklearn提供的KMeans函数。

我在Mac OS X 10.10,Python 2.7和sklearn 0.15.2上运行它,过了一段时间我只获得了一个:

  

被杀:9

运行这些命令行时出错:

nb_cls = int(raw_input("Number of clusters chosen :"))
clusterer = sklearn.cluster.KMeans(n_clusters=nb_cls)
clusters_labels = clusterer.fit_predict(X)
silhouette = sklearn.metrics.silhouette_score(X, clusters_labels)
print "n clusters =", nb_cls, "/ silhouette_score =", silhouette

请注意,在计算轮廓分数时,代码不会被杀死

对于较小的数据集(±2 500张图像),相同的算法是有效的,并且没有这样的Python错误。

我怎么能避免这个Killed 9错误?这个计算对我的笔记本来说太雄心勃勃了吗?

1 个答案:

答案 0 :(得分:1)

这意味着您的脚本被操作系统杀死了。在大多数情况下,这是因为它使用了太多内存。在您的情况下似乎很可能因为您只使用了2 500个图像时代码正常工作。

如果是内存问题,您将需要获得更多RAM(在Mac上无法实现?),使用具有更多RAM的另一台计算机或减小数据集的大小。