2016-12-01 2 views
1

Я хотел бы понять параметр max_iter из класса sklearn.cluster.KMeans.Scikit-learn, KMeans: Как использовать max_iter

Согласно документации:

max_iter : int, default: 300 
Maximum number of iterations of the k-means algorithm for a single run. 

Но по-моему, если у меня есть 100 объектов код должен работать в 100 раз, если у меня есть 10000 объектов код должен работать 10000 раз cassify каждый объект. И, с другой стороны, нет смысла запускать несколько раз над всеми объектами.

Каково мое заблуждение и как мне интерпретировать этот параметр?

ответ

1

Посмотрите здесь:

https://www.naftaliharris.com/blog/visualizing-k-means-clustering/

Каждый раз, когда вы нажимаете обновления центроиды, новая итерация выполняется. Это имеет смысл, потому что, когда центроиды перемещаются, расстояния до этих центроидов также изменяются, и некоторые точки могут менять кластер.

+0

Спасибо! Похоже, что разница между k-средствами от sklearn и Mac Queen (стр. 283 его публикации: http://projecteuclid.org/download/pdf_1/euclid.bsmsp/1200512992) –

+0

Можно ли с уверенностью сказать, что больше значение max_iter, лучшие результаты вы получите? – Eddy

1

Да, вы неверно истолковываете параметр.

Одна итерация один проход через всего набор данных. Если у вас есть 100 объектов, одна итерация назначает 100 очков. если у вас есть 10000 объектов, одна итерация обрабатывает 10000 объектов.

Есть более умные алгоритмы; но sklearn k-mean обрабатывает каждый объект на каждой итерации.

Смежные вопросы