Нахождение центра кластера

единственной вещью, на которой я когда-либо использовал внутреннее ключевое слово, является проверяющий лицензию код в моем продукте;-)

7
задан Ankur 10 August 2009 в 09:04
поделиться

4 ответа

Насколько я понимаю, это похоже на кластеризацию K-средств, и то, что вы ищете, обычно известно как «Медоиды».

См. Здесь: http: // en .wikipedia.org / wiki / Medoids или здесь: http://en.wikipedia.org/wiki/K-medoids

8
ответ дан 6 December 2019 в 19:40
поделиться

Возможно, у меня вот-вот начнется дрожь, которая возникает как раз перед тем, как проявить полную глупость. Но разве это не поддается грубой силе? В Python:

distances = [
[ 0 , 2 , 1 , 3 , 2 , 3 , 3 , 2 , 3 , 4 , ],
[ 2 , 0 , 1 , 3 , 2 , 3 , 3 , 2 , 3 , 4 , ],
[ 1 , 1 , 0 , 2 , 0 , 1 , 2 , 1 , 2 , 3 , ],
[ 3 , 3 , 2 , 0 , 1 , 2 , 3 , 2 , 3 , 4 , ],
[ 2 , 2 , 1 , 1 , 0 , 1 , 2 , 1 , 2 , 3 , ],
[ 3 , 3 , 2 , 2 , 1 , 0 , 3 , 2 , 3 , 4 , ],
[ 3 , 3 , 2 , 3 , 2 , 3 , 0 , 1 , 2 , 3 , ],
[ 2 , 2 , 1 , 2 , 1 , 2 , 1 , 0 , 1 , 2 , ],
[ 3 , 3 , 2 , 3 , 2 , 3 , 2 , 1 , 0 , 1 , ],
[ 4 , 4 , 3 , 4 , 3 , 4 , 3 , 2 , 1 , 0 , ],
]

currentMinimum = 99999

for point in range ( 10 ) :
    distance_sum = 0
    for second_point in range ( 10 ) :
        if point == second_point : continue
        distance_sum += distances [ point ] [ second_point ]
    print '>>>>>', point, distance_sum 

    if distance_sum < currentMinimum :
        currentMinimum = distance_sum 
        centre = point

print centre
4
ответ дан 6 December 2019 в 19:40
поделиться

a)

  • найти медианные или средние значения всех расстояний. = avgAll
  • Для каждого p найдите среднее расстояние до других машин. = avgP (i)
  • Выберите ближайший как центр. avgAll ~ = avgP (i)

б) пока не знаю ..

может быть, для каждого p найти более близкую машину.

с помощью этой логики построить граф.

чем как-нибудь (я еще не знаю) разделить граф

1
ответ дан 6 December 2019 в 19:40
поделиться

То, что вы пытаетесь сделать, или, по крайней мере, (б) относится к кластерному анализу. Раздел математики / статистики / эконометрики, где точки данных (например, точки в n-мерном пространстве) разделены между группами или кластерами. Как это сделать - нетривиальный вопрос, существует много-много возможных способов.

Подробнее читайте в статье в Википедии о кластерном анализе .

0
ответ дан 6 December 2019 в 19:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: