执行 scikit-learn 剪影分数时如何修复内存错误?
Posted
技术标签:
【中文标题】执行 scikit-learn 剪影分数时如何修复内存错误?【英文标题】:How can I fix a MemoryError when executing scikit-learns silhouette score? 【发布时间】:2013-05-01 17:48:20 【问题描述】:我运行了一个聚类算法,并希望通过在 scikit-learn 中使用轮廓分数来评估结果。但是在scikit-learn中,需要计算距离矩阵:distances = pairwise_distances(X, metric=metric, **kwds)
由于我的数据是300K量级,而我的内存是2GB,结果内存不足。而且我无法评估聚类结果。
有人知道如何解决这个问题吗?
【问题讨论】:
【参考方案1】:在对silhouette_score
的调用中将sample_size
参数设置为小于300K 的某个值。使用此参数将从X
中采样数据点,并在这些而不是整个数组上计算silhouette_score
。
【讨论】:
感谢您的回复。我认为这将是一个很好的解决方案。我会尝试多次迭代,然后取平均分。 这适用于 silhouette_score 但不适用于 silhouette_samples 没有这样的 sample_size 参数以上是关于执行 scikit-learn 剪影分数时如何修复内存错误?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Python (scikit-learn) 计算 FactorAnalysis 分数?