Python MLLib KMeans 算法 - maxIterations 定义

Python MLLib KMeans algorithm - maxIterations definition

我第一次使用 MLlib 和 Python 并且我正在努力完成一个简单的任务:我需要为 [= 定义一些 maxIterations 15=]算法。而在 Scala 中它运行良好:

val kmeans = new KMeans
kmeans.setK(K)
kmeans.setMaxIterations(maxNumIters)

Python 的相同方法不会:

kmeans = KMeans().setK(K).setMaxIterations(maxNumIters)

我得到了错误:

AttributeError: 'KMeans' object has no attribute 'setMaxIterations'

我在文档中找不到(可能是我的错),但基本上,我的问题是:我如何定义(在 Python 中),MaxIterations 对于 KMeans 算法?

好吧,我找到了一个方法:

kmeans = KMeans().setK(K).setMaxIter(maxNumIters)

顺便说一句,更注重细节,我可以在下面的命令中找到一些有用的信息,让我看到它不是 setMaxIterations 而是 setMaxIter:

kmeans = KMeans()
print(kmeans.explainParams())

解释:

featuresCol: features column name. (default: features)
initMode: The initialization algorithm. This can be either "random" to choose random points as initial cluster centers, or "k-means||" to use a parallel variant of k-means++ (default: k-means||)
initSteps: The number of steps for k-means|| initialization mode. Must be > 0. (default: 2)
k: The number of clusters to create. Must be > 1. (default: 2)
maxIter: max number of iterations (>= 0). (default: 20)
predictionCol: prediction column name. (default: prediction)
seed: random seed. (default: -7649703878154674547)
tol: the convergence tolerance for iterative algorithms (>= 0). (default: 0.0001)

您可以使用以下方法制作您的 kmeans 模型:-

model = KMeans.train(sc.parallelize(data), maxIterations=10)

其中数据是您的训练数据。有关更多参数,请参阅 link