Алгоритм Python MLLib KMeans - определение максимальных значений - PullRequest
0 голосов
/ 31 декабря 2018

Я впервые использую MLlib с Python, и я борюсь с простой задачей: мне нужно определить число maxIterations для алгоритма KMean.В то время как в Scala это работает хорошо:

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

Тот же подход для Python не:

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

И я получил ошибку:

AttributeError: У объекта 'KMeans' нет атрибута 'setMaxIterations'

Я не смог найти в документации (возможно, по моей вине), но в основном мой вопрос: Как мне определить, (в Python) MaxIterations для алгоритма KMeans?

Ответы [ 2 ]

0 голосов
/ 31 декабря 2018

Вы можете создать свою модель kmeans, используя: -

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

, где data - данные вашей тренировки.дополнительные параметры см. ссылка .

0 голосов
/ 31 декабря 2018

Ну, я нашел способ:

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)
...