Search code examples
weka

Cannot handle string attributes! Clustering eroor


Please Help ! This is my code :

    SimpleKMeans kmeans = new SimpleKMeans();

    kmeans.setSeed(10);

    //important parameter to set: preserver order, number of cluster.
    kmeans.setPreserveInstancesOrder(true);
    kmeans.setNumClusters(5);


    BufferedReader datafile = readDataFile("newfile.arff"); 
    Instances data = new Instances(datafile);

    System.out.println("weather");
    kmeans.buildClusterer(data);

    // 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 \n", i, clusterNum);
        i++;

And this is my exception :

Exception in thread "main" weka.core.UnsupportedAttributeTypeException: weka.clusterers.SimpleKMeans: Cannot handle string attributes!


Solution

  • It does not not cluster the data if any of the values are missing . Therefore the error . If you add a value in the file or db then it processes the data and does the clustering .