执行 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 分数?

带有熊猫的剪影分数的正确数据格式

使用 scikit-learn 管道与手动操作时的不同分数

如何在 scikit-learn 中计算正确的交叉验证分数?

如何在 scikit-learn 的分类问题中为 F1 分数做 GridSearchCV?