Example usage for weka.clusterers ClusterEvaluation setClusterer

List of usage examples for weka.clusterers ClusterEvaluation setClusterer

Introduction

In this page you can find the example usage for weka.clusterers ClusterEvaluation setClusterer.

Prototype

public void setClusterer(Clusterer clusterer) 

Source Link

Document

set the clusterer

Usage

From source file:nl.uva.sne.commons.ClusterUtils.java

public static Map<String, String> bulidClusters(Clusterer clusterer, Instances data, String inDir)
        throws Exception {

    FilteredClusterer fc = new FilteredClusterer();
    String[] options = new String[2];
    options[0] = "-R"; // "range"
    options[1] = "1"; // we want to ignore the attribute that is in the position '1'
    Remove remove = new Remove(); // new instance of filter
    remove.setOptions(options); // set options

    fc.setFilter(remove); //add filter to remove attributes
    fc.setClusterer(clusterer); //bind FilteredClusterer to original clusterer
    fc.buildClusterer(data);/*from w  ww  .java  2  s.c  o  m*/

    Map<String, String> clusters = new HashMap<>();
    for (int i = 0; i < data.numInstances(); i++) {
        Instance inst = data.instance(i);
        int theClass = fc.clusterInstance(inst);
        String s = data.attribute(0).value(i);
        clusters.put(inDir + File.separator + s, String.valueOf(theClass));
        System.err.println(s + " is in cluster " + theClass);
    }
    ClusterEvaluation eval = new ClusterEvaluation();
    eval.setClusterer(fc); // the cluster to evaluate
    eval.evaluateClusterer(data); // data to evaluate the clusterer on
    //        double ll = eval.getLogLikelihood();
    //        Logger.getLogger(ClusterUtils.class.getName()).log(Level.INFO, "LogLikelihood :{0}", ll);
    //
    //        if (clusterer instanceof SimpleKMeans) {
    //            double sqrErr = ((SimpleKMeans) clusterer).getSquaredError();
    //            Logger.getLogger(ClusterUtils.class.getName()).log(Level.INFO, "Squared Error:{0}", sqrErr);
    //        }

    Logger.getLogger(ClusterUtils.class.getName()).log(Level.INFO, "# of clusters: {0}", eval.getNumClusters());
    Logger.getLogger(ClusterUtils.class.getName()).log(Level.INFO, "clusterResults: {0}",
            eval.clusterResultsToString());

    return clusters;
}

From source file:qoala.arff.java

public void SimpleKmeans(int numberOfCLuster) throws Exception {

    Instances train = new Instances(dataSet);

    SimpleKMeans skm = new SimpleKMeans();
    skm.setPreserveInstancesOrder(true);
    skm.setNumClusters(numberOfCLuster);
    skm.buildClusterer(train);/*w w  w . j ava  2 s. c o  m*/
    skm.setSeed(10);
    int[] ClusterSize = skm.getClusterSizes();

    ClusterEvaluation eval = new ClusterEvaluation();
    eval.setClusterer(skm);
    eval.evaluateClusterer(train);

    System.out.println("Cluster Evaluation:" + eval.clusterResultsToString());

    int[] assignments = skm.getAssignments();

    System.out.println("# - cluster - distribution");

    for (int j = 0; j < skm.getNumClusters(); j++) {
        int i = 0;
        for (int clusterNum : assignments) {

            if (clusterNum == j)

                System.out.println("Instance " + i + " -> Cluster number: " + clusterNum);

            i++;
        }
    }
}

From source file:qoala.arff.java

public void EMClustering(int NumberOfCluster) throws Exception {

    Instances train = new Instances(dataSet);
    String[] options = new String[2];
    options[0] = "-I";
    options[1] = "100";

    EM em = new EM();
    em.setOptions(options);/*from w w w .  ja  va2s  .  c  o m*/
    em.setNumClusters(NumberOfCluster);
    em.buildClusterer(train);

    ClusterEvaluation eval = new ClusterEvaluation();
    eval.setClusterer(em);
    eval.evaluateClusterer(train);
    eval.getNumClusters();
    System.out.println("Cluster Evaluation:" + eval.clusterResultsToString());

    System.out.println("# - cluster - distribution");
    for (int j = 0; j < eval.getNumClusters(); j++) {

        for (int i = 0; i < train.numInstances(); i++) {

            int cluster = em.clusterInstance(train.instance(i));
            if (cluster == j)
                System.out.println("Instance " + i + " -> Cluster number: " + cluster);

        }
    }
}

From source file:qoala.arff.java

public void XMenas() throws Exception {

    Instances train = new Instances(dataSet);
    XMeans xm = new XMeans();

    xm.setMaxNumClusters(100);/*from   w w  w.j  av a  2  s. com*/
    xm.setMinNumClusters(2);
    xm.buildClusterer(train);

    ClusterEvaluation eval = new ClusterEvaluation();
    eval.setClusterer(xm);
    eval.evaluateClusterer(train);
    eval.getNumClusters();
    System.out.println("Cluster Evaluation:" + eval.clusterResultsToString());
    System.out.println("# - cluster - distribution");
    for (int j = 0; j < eval.getNumClusters(); j++) {

        for (int i = 0; i < train.numInstances(); i++) {
            int cluster = xm.clusterInstance(train.instance(i));
            if (cluster == j)

                System.out.println("Instance " + i + " -> Cluster number: " + cluster);
        }
    }

}

From source file:rdfsystem.data.DataMining.java

public static String cluster(RdfManager manager) throws Exception {
    Instances ins = transformData(manager, false);
    SimpleKMeans cls = new SimpleKMeans();
    String[] options = "-N 5".split(" ");
    cls.setOptions(options);/*w  w w.  j a va2 s.c  o  m*/
    cls.buildClusterer(ins);
    ClusterEvaluation eval = new ClusterEvaluation();
    eval.setClusterer(cls);
    eval.evaluateClusterer(ins);
    return eval.clusterResultsToString();
}

From source file:sirius.clustering.main.TrainClustererPane.java

License:Open Source License

private void start() {
    if (this.fileTextField.getText().length() == 0) {
        JOptionPane.showMessageDialog(parent, "Please choose training file!", "Error",
                JOptionPane.ERROR_MESSAGE);
        return;//ww  w.  j  a va2  s. com
    }
    if (m_ClustererEditor.getValue() == null) {
        JOptionPane.showMessageDialog(parent, "Please choose clustering method!", "Error",
                JOptionPane.ERROR_MESSAGE);
        return;
    }
    if (clusterThread != null) {
        JOptionPane.showMessageDialog(parent, "Cannot start training of Clusterer as another is running!",
                "Error", JOptionPane.ERROR_MESSAGE);
        return;
    }
    this.startButton.setEnabled(false);
    this.stopButton.setEnabled(true);
    this.numberOfClusterTextField.setText("");
    clusterThread = (new Thread() {
        public void run() {
            try {
                Instances inst = new Instances(new BufferedReader(new FileReader(fileTextField.getText())));
                inst.setClassIndex(m_ClassCombo.getSelectedIndex());
                if (inst.classAttribute().isNumeric()) {
                    JOptionPane.showMessageDialog(parent, "Class must be nominal!", "Error",
                            JOptionPane.ERROR_MESSAGE);
                } else {
                    outputTextArea.setText("");
                    clusterer = (Clusterer) m_ClustererEditor.getValue();
                    statusLabel.setText(" Training Clusterer..");
                    clusterer.buildClusterer(removeClass(inst));
                    ClusterEvaluation eval = new ClusterEvaluation();
                    eval.setClusterer(clusterer);
                    eval.evaluateClusterer(inst);
                    outputTextArea.append(eval.clusterResultsToString());
                    outputTextArea.append("\n");
                    if (clusterer != null) {
                        numberOfClusterTextField.setText("" + clusterer.numberOfClusters());
                        statusLabel.setText(" Clusterer Trained..");
                    }
                }
                startButton.setEnabled(true);
                stopButton.setEnabled(false);
                clusterThread = null;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
    clusterThread.setPriority(Thread.MIN_PRIORITY); // UI has most priority
    clusterThread.start();
}

From source file:soccer.core.ASimplePractice.java

public void evaluate() throws IOException, Exception {
    Instances data = loader.getInstances();
    SimpleKMeans cluster = new SimpleKMeans();
    cluster.setNumClusters(4);/*from  w w  w  .  j  av a 2s  .c om*/
    cluster.buildClusterer(data);
    ClusterEvaluation eval = new ClusterEvaluation();
    eval.setClusterer(cluster);
    eval.evaluateClusterer(data);
    System.out.println(eval.clusterResultsToString());
}

From source file:soccer.core.classifiers.BookKeeperConsistencyClassifier.java

public static void main(String[] args) throws Exception {
    BookKeeperConsistency bkc = new BookKeeperConsistency();
    Instances data = bkc.getInstances();

    RemoveWithValues rwv = new RemoveWithValues();
    rwv.setOptions(new String[] { "-C", "4", "-S", "6", "-V" });
    rwv.setInputFormat(data);//from   ww w .  j  a  v  a 2s .  com
    data = Filter.useFilter(data, rwv);
    RemoveWithValues rwv1 = new RemoveWithValues();
    rwv1.setOptions(new String[] { "-C", "6", "-S", "6", "-V" });
    rwv1.setInputFormat(data);
    data = Filter.useFilter(data, rwv1);

    //        Normalize nm = new Normalize();
    //        nm.setOptions(new String[]{
    //            "-S", "100"
    //        });
    //        nm.setInputFormat(data);
    //        data = Filter.useFilter(data, nm);

    Remove rm = new Remove();
    rm.setOptions(new String[] { "-R", "2-last" });
    rm.setInputFormat(data);
    Instances newData = Filter.useFilter(data, rm);

    SimpleKMeans cluster = new SimpleKMeans();
    cluster.setOptions(new String[] { "-N", "2", "-A", "weka.core.ManhattanDistance" });

    cluster.buildClusterer(newData);
    ClusterEvaluation eval = new ClusterEvaluation();
    eval.setClusterer(cluster);
    eval.evaluateClusterer(newData);
    System.out.println(eval.clusterResultsToString());
    //        for (int i = 0; i < newData.size(); i++) {
    //            Instance instance = newData.get(i);
    //            if (cluster.clusterInstance(instance) == 0) {
    //                System.out.println(data.get(i).toString());
    //            }
    //        }
}

From source file:soccer.core.models.PlayerModel.java

public static void main(String[] args) throws Exception {
    PlayerModel pm = new PlayerModel();
    Instances data = pm.buildInstance();
    SimpleKMeans cluster = new SimpleKMeans();
    cluster.setNumClusters(4);//w  ww  .ja v  a 2s.co m
    cluster.buildClusterer(data);
    ClusterEvaluation eval = new ClusterEvaluation();
    eval.setClusterer(cluster);
    eval.evaluateClusterer(data);
    System.out.println(eval.clusterResultsToString());
}

From source file:tr.gov.ulakbim.jDenetX.experiments.wrappers.EvalActiveBoostingID.java

License:Open Source License

public Instances clusteredInstances(Instances data) {
    if (data == null) {
        throw new NullPointerException("Data is null at clusteredInstances method");
    }/*  w w  w  . j av a 2  s .  co  m*/
    Instances sampled_data = data;
    for (int i = 0; i < sampled_data.numInstances(); i++) {
        sampled_data.remove(i);
    }

    SimpleKMeans sKmeans = new SimpleKMeans();
    data.setClassIndex(data.numAttributes() - 1);
    Remove filter = new Remove();
    filter.setAttributeIndices("" + (data.classIndex() + 1));
    List assignments = new ArrayList();

    try {
        filter.setInputFormat(data);
        Instances dataClusterer = Filter.useFilter(data, filter);
        String[] options = new String[3];
        options[0] = "-I"; // max. iterations
        options[1] = "500";
        options[2] = "-O";
        sKmeans.setNumClusters(data.numClasses());
        sKmeans.setOptions(options);
        sKmeans.buildClusterer(dataClusterer);
        System.out.println("Kmeans\n:" + sKmeans);
        System.out.println(Arrays.toString(sKmeans.getAssignments()));
        assignments = Arrays.asList(sKmeans.getAssignments());
    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println("Assignments\n: " + assignments);
    ClusterEvaluation eval = new ClusterEvaluation();
    eval.setClusterer(sKmeans);
    try {
        eval.evaluateClusterer(data);
    } catch (Exception e) {
        e.printStackTrace();
    }
    int classesToClustersMap[] = eval.getClassesToClusters();
    for (int i = 0; i < classesToClustersMap.length; i++) {
        if (assignments.get(i).equals(((Integer) classesToClustersMap[(int) data.get(i).classValue()]))) {
            ((Instances) sampled_data).add(data.get(i));
        }
    }
    return ((Instances) sampled_data);
}