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");
}
}