См. Ответ на этот вопрос: Вариант алгоритма K-означает с равным размером кластера для алгоритма кластеризации в кластеры одинакового размера (в вашем случае 4).
Для обработкиограничение "разные города", определить каждого клиента как набор точек, состоящий из их точки получения в городе A и точки высадки в городе B, и определить расстояние между двумя клиентами как сумму расстояния между их пунктами получения ирасстояние между их местами высадки.Среднее значение из списка кортежей будет представлять собой кортеж, составленный из среднего значения местоположений получения и среднего количества мест размещения.Определения этих двух функций должно быть достаточно для реализации K-средних.
Возможно, вы захотите по-разному взвешивать расстояния в двух городах, если путешествие на определенное расстояние в среднем в одном городе занимает больше времени, чем в другом, потому что движение там хуже иливы будете в одном городе в час пик или где-то еще.