gpt4 book ai didi

python - IPython 笔记本内核在运行 Kmeans 时死机

转载 作者:太空狗 更新时间:2023-10-30 01:28:22 24 4
gpt4 key购买 nike

我正在使用 12 个变量对大约 40 万个观测值运行 K 均值聚类。最初,当我用 Kmeans 代码运行单元时,它会在 2 分钟后弹出一条消息,说内核被中断并将重新启动。然后它需要很长时间,就像内核死了一样,代码将不再运行。

所以我尝试了 125k 个观察结果,结果相同。的变量。但我仍然收到同样的信息。

这是什么意思?这是否意味着 ipython notebook 无法在 125k 观测值上运行 kmeans 并杀死内核?

如何解决?到今天为止,这对我来说非常重要。 :(

请指教。

我使用的代码:

从 sklearn.cluster 导入 KMeans从 sklearn.metrics 导入 silhouette_score

    # Initialize the clusterer with n_clusters value and a random generator
# seed of 10 for reproducibility.
kmeans=KMeans(n_clusters=2,init='k-means++',n_init=10, max_iter=100)
kmeans.fit(Data_sampled.ix[:,1:])
cluster_labels = kmeans.labels_
# The silhouette_score gives the average value for all the samples.
# This gives a perspective into the density and separation of the formed
# clusters
silhouette_avg = silhouette_score(Data_sampled.ix[:,1:],cluster_labels)

最佳答案

根据一些调查,这可能与 iPython Notebook/Jupyter 无关。这似乎是 sklearn 的问题,它可以追溯到 numpy 的问题。查看相关github问题 sklearn herehere ,以及潜在的 numpy 问题 here .

最终,计算 Silhouette Score 需要计算一个非常大的距离矩阵,并且距离矩阵似乎在您的系统上为大量行占用了太多内存。例如,在类似计算的两次运行期间查看我的系统(OSX,8GB ram)上的内存压力 - 第一个尖峰是具有 10k 记录的 Silhouette Score 计算,第二个......高原......具有 40k 记录:

memory pressure

根据相关的 SO 回答 here ,您的内核进程可能会被操作系统杀死,因为它占用了太多内存。

最终,这将需要对 sklearn 和/或 numpy 的底层代码库进行一些修复。您可以在此期间尝试的一些选项:

  • 关闭计算机上运行的所有无关程序(spotify、slack 等),希望释放足够的内存,并在脚本运行时密切监控内存
  • 在内存比你的机器多的临时远程服务器上运行计算,看看是否有帮助(尽管我认为内存使用至少是样本数量的多项式,这可能行不通)<
  • 使用完整数据集训练分类器,然后使用数据的随机子集计算剪影分数。 (大多数人似乎能够通过 20-30k 的观察来解决这个问题)

或者,如果你比我聪明并且有空闲时间,可以考虑尝试为 sklearn 和/或 numpy 贡献一个修复 :)

关于python - IPython 笔记本内核在运行 Kmeans 时死机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32573948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com