List of usage examples for weka.clusterers DensityBasedClusterer buildClusterer
void buildClusterer(Instances data) throws Exception;
From source file:core.ClusterEvaluationEX.java
License:Open Source License
/** * Perform a cross-validation for DensityBasedClusterer on a set of instances. * * @param clusterer the clusterer to use * @param data the training data/*from w w w . j ava 2 s . c o m*/ * @param numFolds number of folds of cross validation to perform * @param random random number seed for cross-validation * @return the cross-validated log-likelihood * @throws Exception if an error occurs */ public static double crossValidateModel(DensityBasedClusterer clusterer, Instances data, int numFolds, Random random) throws Exception { Instances train, test; double foldAv = 0; ; data = new Instances(data); data.randomize(random); // double sumOW = 0; for (int i = 0; i < numFolds; i++) { // Build and test clusterer train = data.trainCV(numFolds, i, random); clusterer.buildClusterer(train); test = data.testCV(numFolds, i); for (int j = 0; j < test.numInstances(); j++) { try { foldAv += ((DensityBasedClusterer) clusterer).logDensityForInstance(test.instance(j)); // sumOW += test.instance(j).weight(); // double temp = Utils.sum(tempDist); } catch (Exception ex) { // unclustered instances } } } // return foldAv / sumOW; return foldAv / data.numInstances(); }
From source file:detplagiasi.EMClustering.java
EMClustering() { addd = ct.getAddress();/*from w ww. j a v a 2s.c o m*/ try { ClusterEvaluation eval; Instances data; String[] options; DensityBasedClusterer cl; File he = getArffFile(); data = new Instances(new BufferedReader(new FileReader(he))); System.out.println("-----EM Clustering-----"); // normal try (BufferedWriter out = new BufferedWriter(new FileWriter(addd + "\\output.txt", true))) { out.write("\r\n--> normal\r\n"); options = new String[2]; options[0] = "-t"; options[1] = he.getAbsolutePath(); out.write("\r\n" + ClusterEvaluation.evaluateClusterer(new EM(), options) + "\r\n"); out.write("\r\n"); // manual call out.write("\n--> manual\r\n"); cl = new EM(); out.write("\r\n"); cl.buildClusterer(data); getDataUji(); getDataTraining(); System.out.println("jumlah kluster = " + cl.numberOfClusters()); noClusterUji = cl.clusterInstance(dataUji.instance(0)); totalCluster = cl.numberOfClusters(); System.out.println("kluster = " + cl.clusterInstance(dataUji.instance(0))); for (int b = 0; b < dataTraining.numInstances(); b++) { System.out.print("file " + td.fileName[b] + " termasuk cluster ke "); array1[b] = td.fileName[b]; array2[b] = cl.clusterInstance(dataTraining.instance(b)); System.out.println(cl.clusterInstance(dataTraining.instance(b))); //simpan nilai instance ke dalam sebuah array int buat dikirim ke detplaggui } out.write("\r\n"); eval = new ClusterEvaluation(); eval.setClusterer(cl); eval.evaluateClusterer(new Instances(data)); out.write("\r\n\n# of clusters: " + eval.getNumClusters()); } catch (Exception e) { System.err.println(e.getMessage()); System.out.println("error2 em cluster"); } } catch (IOException ex) { Logger.getLogger(EMClustering.class.getName()).log(Level.SEVERE, null, ex); System.out.println("errorrrr null em"); } }