machine-learning - 在 Spark 中使用 Silhouette 聚类

标签 machine-learning apache-spark cluster-analysis distributed-computing k-means

在 Spark 中使用 KMeans 聚类时,我想使用 Silhouette 来确定 k 的最佳值。 有没有最佳的并行化方法?即使其可扩展

最佳答案

不,根据定义,剪影是不可缩放的。

它使用成对距离,这总是需要 O(n^2) 时间来计算。

您将需要使用不同的东西。在大数据上使用 Silhouette 是荒谬的,计算评估度量比运行实际的 k 均值聚类算法需要更长的时间。

或者重新考虑你在做什么。例如,使用剪影是否有意义?您还可以决定在单个节点上运行比 Spark 更快的东西,在那里计算 Silhouette,并通过k简单地并行化,而不需要分布式计算的所有开销。 Spark 可能会战胜 MapReduce-Mahout,但它会输给好的非分布式实现。

关于machine-learning - 在 Spark 中使用 Silhouette 聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31863148/

相关文章:

scala - Spark 数据帧内映射中结构数组的聚合

python - 'local[n]' pyspark 应用程序是否受 GIL 影响?

python - 使用潜在语义分析进行聚类

cluster-computing - Neo4j 和聚类分析

indexing - mahout lucene 文档聚类方法?

python - 调整 cv2.VideoCapture 的帧大小

machine-learning - 尝试MOA流聚类算法denstream.WithDBSCAN时出现java.lang.NullPointerException(如何正确使用它?)

python - sklearn.tree.DecisionTreeRegressor : depth of tree is bigger than specified when max_leaf_nodes ! = 无

machine-learning - 在识别手写数字时,为什么我们应该在输出层使用 10 个神经元,而不是 4 个神经元?

scala - S3A 文件系统上的 Spark 历史服务器 : ClassNotFoundException