Кластеризация данных в алгоритме KMeans с использованием бинарной древовидной структуры - PullRequest
0 голосов
/ 10 января 2012

У меня проблемы с генерацией кода для кластеризации KMeans в Java.Я уже знал алгоритм, но это очень трудно писать в коде Java.Мое назначение - извлечь данные из базы данных, а затем запустить кластеризацию с помощью KMeans, в этом случае сначала необходимо сформировать данные в рекурсивной двоичной древовидной структуре.сценарий:

  1. сначала создайте родительский узел, если parent равен NULL, затем установите global_iteration = 0

  2. создающий узел и его отношение к родителю

  3. получить все данные из базы данных (я использую JDBC) для родителей (далее мы назовем его набором данных)

  4. если набор данных

  5. , если набор данных

  6. вычисляет центроиднабор данных (в данном случае это 2, потому что мы строим двоичное дерево)

  7. Класс Cal KMeans

  8. global_iteration ++

  9. для каждого набора данных: продолжить повторение.

тогда мы должны создать класс KMeans, который будет вызываться для вставки в узел.

KMeans (набор данных, k, maxIteration, minChange)

примечание: k = номер кластера, minChange: значение во время изменения центроида, чтобы быть параметром, который должен обрабатывать кластеризацию или нет.Кластеризация Kmeans точно такая же, как и у общего алгоритма KMeans.

Большое спасибо за помощь в выполнении этого задания:)

Ответы [ 2 ]

0 голосов
/ 23 марта 2012
You can implement k-means algorithm as:
SimpleKMeans kmeans = new SimpleKMeans();

kmeans.setSeed(10);

// This is the important parameter to set
kmeans.setPreserveInstancesOrder(true);
kmeans.setNumClusters(numberOfClusters);
kmeans.buildClusterer(instances);

// This array returns the cluster number (starting with 0) for each instance
// The array has as many elements as the number of instances
int[] assignments = kmeans.getAssignments();

int i=0;
for(int clusterNum : assignments) {
System.out.printf("Instance %d -> Cluster %d", i, clusterNum);
i++;
}
0 голосов
/ 10 января 2012

Проверка Weka источник код для K-Means , может быть, это поможет вам решить проблему.

...