2014-09-04 3 views
4

Я прочитал много примеров использования этой библиотеки в Java, и кластеризация возможна из файла данных ARFF, и она работает.k-mean weka java code

Но у меня есть свои данные в списке двойника, который генерируется при работе с моей программой, и я не знаю, как я могу использовать этот алгоритм k-средних для кластеризации моих данных. Это одномерный список.

Это мой код:

Instances dataa = DataSource.read("C:\\Users\\Ew\\Documents\\iris.arff"); 


    // create the model 
    kMeans = new SimpleKMeans(); 
    kMeans.setNumClusters(3); 
    kMeans.buildClusterer(dataa); 

    // print out the cluster centroids 
    Instances centroids = kMeans.getClusterCentroids(); 
    for (int i = 0; i < centroids.numInstances(); i++) { 
     System.out.println("Centroid " + i+1 + ": " + centroids.instance(i)); 
    } 

    // get cluster membership for each instance 
    for (int i = 0; i < dataa.numInstances(); i++) { 
     System.out.println(dataa.instance(i) + " is in cluster " + kMeans.clusterInstance(dataa.instance(i)) + 1); 

    } 

я читать данные из файла iris.arff, и это работает. Теперь я хочу указать в качестве параметра k-значение my List of double. Как мне это сделать?

Заранее благодарим за ответы.

С уважением.

+1

Что вы не поняли в значении k? –

+0

Если вы можете показать мне, как я могу использовать свои собственные данные в этом алгоритме в библиотеке weka вместо файла arff – darson1991

ответ

1

Если вы не хотите, чтобы создать набор Instances путем чтения из DataSource, вы также можете создать его вручную, с помощью любого из классов, реализующих интерфейс Instance, например a DenseInstance. См. Пример кода из javadoc:

// Create empty instance with three attribute values 
Instance inst = new DenseInstance(3); 

// Set instance's values for the attributes "length", "weight", and "position" 
inst.setValue(length, 5.3); 
inst.setValue(weight, 300); 
inst.setValue(position, "first"); 

// Set instance's dataset to be the dataset "race" 
inst.setDataset(race); 

Надеюсь, что это поможет.

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