List of usage examples for weka.clusterers ClusterEvaluation setClusterer
public void setClusterer(Clusterer clusterer)
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); }