2010-03-09 4 views
3

Я хотел бы знать простой алгоритм 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

ответ

1

вы можете посмотреть на Weka implementation или просто использовать API Weka, если все, что нужно кластеры и не реализации.

1

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

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

1
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++; 
} 
+0

какая библиотека вы используете? – Karussell

0

Вы можете проверьте мое программное обеспечение: SPMF data mining software.

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^