我在分析PySpark中的K-means聚类算法时遇到了一个语法上的疑问。这是相关代码的一部分:
from pyspark.ml.clustering import KMeansfrom pyspark.ml.clustering import KMeansModelimport numpy as npkmeans_modeling = KMeans(k = 5, seed = 0)model = kmeans_modeling.fit(data.select("parameters"))
seed = 0
是什么意思?当然,我们不可能用同一个点来初始化所有聚类,否则我们将无法得到不同的聚类,对吗?
回答:
根据文档,这个seed
参数确实是一个随机种子,正如评论中所暗示的。种子确保了你的机器学习运行是可复制的,因为它确保了(伪)随机数生成器在每次运行时,只要输入(包括随机种子)相同,就能给出相同的输出。
如果你在寻找聚类初始化的选项,你也可以查看文档。有两个选项:initMode = "random"
或 initMode = "k-means||"
,后者是默认选项。