Кластеризация связанных групп в Java - PullRequest
1 голос
/ 08 марта 2020

Я очень новичок в Java, поэтому я начну с извинений за отсутствие кода для показа. Некоторое время назад я создал программу кластеризации как в SQL (используя обработку курсора), так и в Python (используя DataFrames) для отношений очереди, и меня попросили преобразовать в Java - без удачи - поэтому я надеюсь, что кто-то хорошая идея, как это сделать.

В этом и заключается проблема - использовать общие переменные человека и страны:

Я пытаюсь объединить каждого человека, который путешествует по стране и путешествовал. в той же стране, так что ниже вы можете видеть, что человек А путешествовал по Германии, и этот человек C также путешествовал (поэтому они должны быть в группе). Человек А и В оба были в Швеции, B и C имели был в США и c., поэтому они должны быть в одном кластере. Лица D и E никогда не были в посещенных странах A, B и C, но оба они были в Исландии, поэтому их следует объединить.

enter image description here

Итак, окончательное решение будет примерно таким:

enter image description here

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

  1. составляют уникальный список стран
  2. l oop по странам (поэтому сначала выбираем Германию, в качестве примера)
  3. Посмотрите всех людей, которые путешествовали в Германию
  4. Затем найдите все другие страны, в которые эти люди побывали
  5. Затем, глядя на новые страны в 4, посмотрите, нет ли дополнительных путешественников включенные ранее должны быть добавлены
  6. Затем go через 4 и 5, пока не будет дополнительных людей и стран, и добавьте номер кластера
  7. Затем удалите страны из первого кластера из списка мы делали это на шаге 1 и повторяем это до тех пор, пока на шаге 1 больше не останется стран

Но для этого я не нашел решения для массивов / списков, а не таблиц и фреймов…

...