Как реализовать K-средства для простой группировки в Java - PullRequest
3 голосов
/ 09 марта 2010

Я хотел бы знать простой алгоритм k-средних в Java. Я хочу использовать k-средства только для группировки одномерного массива, а не нескольких. Например, перед группировкой массив состоит из 2,4,7,5,12,34,18,25 если мы хотим четыре группы, то мы получили группа 1: 2,4,5 группа 2: 7,12 группа 3: 18,25 группа 4: 34

Ответы [ 4 ]

1 голос
/ 09 марта 2010

Стандартный (эвристический) алгоритм для кластеризации K-средних представлен на странице Википедии вместе со ссылками на варианты и некоторыми существующими реализациями.

(Это форум по программированию, поэтому разумно предположить, что вы способны самостоятельно писать код Java ... если вы не можете найти существующую реализацию, которая ему подходит.)

1 голос
/ 23 марта 2012
You can implement k-Means 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++;
}
1 голос
/ 09 марта 2010

Вы можете взглянуть на реализацию Weka или просто использовать Weka API, если вам нужны только кластеры, а не реализация.

0 голосов
/ 18 июля 2012

Вы можете проверить мое программное обеспечение: SPMF Data Mining Software .

Он предлагает эффективную реализацию KMeans всего в 3 файлах, поэтому его должно быть легко понять.

Программное обеспечение также предлагает множество других алгоритмов. Но они вам не нужны.

Но другое дело, что есть также графический интерфейс пользователя для запуска KMeans и других алгоритмов.

...