在 Apache Spark Python 中自定义 K-means 的距离公式
Posted
技术标签:
【中文标题】在 Apache Spark Python 中自定义 K-means 的距离公式【英文标题】:Customize Distance Formular of K-means in Apache Spark Python 【发布时间】:2016-04-04 07:06:12 【问题描述】:现在我使用 K-means 进行聚类并关注 this tutorial 和 API。
但我想使用自定义公式来计算距离。那么如何使用 PySpark 在 k-means 中传递自定义距离函数?
【问题讨论】:
【参考方案1】:通常使用不同的距离度量没有意义,因为 k-means(与 k-medoids 不同)算法仅针对欧几里德距离进行了明确定义。
请参阅Why does k-means clustering algorithm use only Euclidean distance metric? 了解说明。
此外,MLlib 算法是在 Scala 中实现的,PySpark 仅提供执行 Scala 代码所需的包装器。因此,如果不对 API 进行重大更改,在技术上将无法将自定义指标作为 Python 函数提供。
请注意,自 Spark 2.4 以来,有两个内置措施可用于 pyspark.ml.clustering.KMeans
和 pyspark.ml.clustering.BisectingKMeans
。 (见DistanceMeasure Param
)。
使用风险自负。
【讨论】:
以上是关于在 Apache Spark Python 中自定义 K-means 的距离公式的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Apache-Spark - Python 在本地比 pandas 慢?