"How to output the centroids of K-Means Clusters"

Legacy User
Legacy User New Altair Community Member
edited November 5 in Community Q&A
Hello,

I wanna get the output of the clusters' centroids through Java code. I have 10 clusters and about 10,000 attributes. So for each cluster, there should be a row with about 10,000 numbers. 

Does anybody know how should I do that in Java? Which operator should I use?

thanks beforehand,

Qian

Answers

  • IngoRM
    IngoRM New Altair Community Member
    Hi Qian,

    I am assuming that you are familiar with the general way how to use RapidMiner from your Java applications. If not, please read the written tutorial (available from our download page), especially the last two chapters and search in both forums for hints for integration.

    Let's say you managed to load your data set and have them stored in a ExampleSet object called "exampleSet". Then you should try something like

    ExampleSet exampleSet = null; // load your data here
    Operator kMeans = OperatorService.createOperator(KMeans.class);
    CentroidBasedClusterModel clusterModel = (CentroidBasedClusterModel) kMeans.apply(new IOContainer(exampleSet));

    for (int i = 0; i < clusterModel.getNumberOfClusters(); i++) {
    double[] location = clusterModel.getCentroid(i);
    // do whatever you want with the centroid
    }
    Hope that helps,
    Ingo
  • Legacy User
    Legacy User New Altair Community Member
    Thanks a lot. It's quite helpful.