Я хотел бы знать простой алгоритм k-mean в java. Я хочу использовать k-средства только для группировки одномерного массива, а не multi. Например, до группировки массива состоит из 2,4,7,5,12,34,18,25 , если мы хотим четыре группы, тогда мы получили группа 1: 2,4,5 группа 2: 7, 12 группа 3: 18,25 группа 4: 34Как реализовать k-средство для простой группировки в java
ответ
вы можете посмотреть на Weka implementation или просто использовать API Weka, если все, что нужно кластеры и не реализации.
Стандартный (эвристический) алгоритм кластеризации K-средних представлен на Wikipedia page, а также ссылки на варианты и некоторые существующие реализации.
(Это программирование форума, так что разумно предположить, что вы способны писать Java код самостоятельно ... если вы не можете найти существующую реализацию, что она подходит.)
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++;
}
Вы можете проверьте мое программное обеспечение: SPMF data mining software.
Он предлагает эффективную реализацию KMeans всего за 3 файла, поэтому его должно быть легко понять.
Программное обеспечение также предлагает множество других алгоритмов. Но они вам не нужны.
Но еще одно обстоятельство заключается в том, что существует также графический интерфейс пользователя для запуска KMeans и других алгоритмов.
какая библиотека вы используете? – Karussell