2013-07-13 2 views
1

Я использую алгоритм kmeans2 от scipy до цвета пикселов кластера в изображении, чтобы получить верхние средние цвета на изображении.scipy kmeans Итерационный смысл?

http://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.vq.kmeans2.html#scipy.cluster.vq.kmeans2

Я смущен о значении этого параметра:

iter : int 
Number of iterations of the k-means algrithm to run. Note that this differs in meaning from the iters parameter to the kmeans function. 

Если я хочу алгоритм kmeans работать, пока кластеры не меняют, я бы установить высокий iter значение? Есть ли способ найти лучшийiter значение?

ответ

2

Алгоритм K-средних работает путем инициализации некоторых точек K и группировки ваших данных по их расстоянию от этих точек. Затем он выполняет итерацию, вычисляя центр тяжести каждого кластера и переопределяя кластеры на расстояние от центра тяжести. Это не гарантирует сближение быстро, хотя это часто происходит, поэтому он запрашивает максимальное значение итерации .

Редактировать: максимальная итерационная ценность. неверен Я думаю, буквально идет итерация iter раз. Однако значение по умолчанию 10 является общим значением итера.

Чем выше значение iter, тем лучше кластеризация. Вы можете попробовать использовать K-средства для некоторых ваших данных с различными значениями iter и видеть, где время для вычисления для некоторого усиления в качестве кластера слишком велико для ваших нужд.

+0

Ах, да, если я установил 'iter = 9999', он не будет итерации 9999, но до тех пор, пока он не сходится –

+0

Есть ли способ бесконечного итерации? Также есть способ показать, сколько итераций произошло, когда оно сходится? –

+0

Я не уверен насчет scipy, однако для того, чтобы поддерживать скорость, нужно повторно перевести kmeans по своему вкусу, но с numpy и scipy-модулями. – seth