List of usage examples for weka.core Instances setClassIndex
public void setClassIndex(int classIndex)
From source file:at.tuflowgraphy.semanticapps.semdroid.DalvikBaseAnalyzer.java
License:Apache License
public Instances getWekaInstances() { Instances instances = null; List<DActivationPatternPackage> dActivationPatternPackages = mAnalysisChain.getFinalLayers().get(0) .getResultAnalysisPackage().getActivationPatternPackages(); int counter = 0; for (DActivationPatternPackage dActivationPatternPackage : dActivationPatternPackages) { if (counter > 0) { throw new RuntimeException("More than one DActivationPatternPackage found!"); }/*from w w w . j a va 2 s . com*/ counter++; DActivationPattern activationPatternTemp = dActivationPatternPackage.getActivationPatterns().get(0); FastVector fvWekaAttributes = new FastVector(activationPatternTemp.getRawPattern().length); for (int j = 0; j < activationPatternTemp.getRawPattern().length; j++) { Attribute attribute = new Attribute(j + ""); fvWekaAttributes.addElement(attribute); } Set<String> labelSet = getLabelSet(dActivationPatternPackage); FastVector classValues = new FastVector(labelSet.size()); for (String label : labelSet) { classValues.addElement(label); } Attribute classAttribute = new Attribute("Class", classValues); fvWekaAttributes.addElement(classAttribute); instances = new Instances(mAnalysisConfig.getApplicationAnalysisName(), fvWekaAttributes, dActivationPatternPackage.getActivationPatterns().size()); instances.setClassIndex(instances.numAttributes() - 1); for (int i = 0; i < dActivationPatternPackage.getActivationPatterns().size(); i++) { DActivationPattern activationPattern = dActivationPatternPackage.getActivationPatterns().get(i); Instance instance = new Instance(fvWekaAttributes.size()); for (int j = 0; j < activationPattern.getRawPattern().length; j++) { instance.setValue((Attribute) fvWekaAttributes.elementAt(j), activationPattern.getRawPattern()[j]); } instance.setDataset(instances); DSimpleStringMetaData metadata = (DSimpleStringMetaData) activationPattern.getMetaData(); List<String> keys = metadata.getMetaDataKeys(); for (int k = 0; k < keys.size(); k++) { if (keys.get(k).equals(DalvikInputPlugin.TAG_LABEL)) { String label = metadata.getMetaDataEntries().get(k); instance.setClassValue(label); break; } } instances.add(instance); } } return instances; }
From source file:at.tuflowgraphy.semanticapps.semdroid.DalvikBaseAnalyzer.java
License:Apache License
protected Instances generateInstancesHeader(DActivationPatternPackage dActivationPatternPackage) { DActivationPattern activationPatternTemp = dActivationPatternPackage.getActivationPatterns().get(0); FastVector fvWekaAttributes = new FastVector(activationPatternTemp.getRawPattern().length); for (int j = 0; j < activationPatternTemp.getRawPattern().length; j++) { Attribute attribute = new Attribute(j + ""); fvWekaAttributes.addElement(attribute); }/* ww w . ja v a 2 s . c o m*/ Set<String> labelSet = getLabelSet(dActivationPatternPackage); FastVector classValues = new FastVector(labelSet.size()); for (String label : labelSet) { classValues.addElement(label); } Attribute classAttribute = new Attribute("Class", classValues); fvWekaAttributes.addElement(classAttribute); Instances instances = new Instances(mAnalysisConfig.getApplicationAnalysisName(), fvWekaAttributes, dActivationPatternPackage.getActivationPatterns().size()); instances.setClassIndex(instances.numAttributes() - 1); return instances; }
From source file:at.tuflowgraphy.semanticapps.semdroid.utils.ArffHelper.java
License:Apache License
public Instances getWekaInstances(AnalysisChain analysisChain, String name) { Instances instances = null; List<DActivationPatternPackage> dActivationPatternPackages = analysisChain.getFinalLayers().get(0) .getResultAnalysisPackage().getActivationPatternPackages(); int counter = 0; for (DActivationPatternPackage dActivationPatternPackage : dActivationPatternPackages) { if (counter > 0) { // String resultFileName = arffFile.getName(); // String newName = resultFileName.split("_")[0]; // int index = resultFileName.indexOf("_"); // newName += "-MISSING-" + counter + "-" // + resultFileName.substring(index); // arffFileToWriteTo = new File(arffFile.getParentFile(), newName); System.err.println("ERROR: Multiple activation pattern packages found! Should not happen..."); }/*from w w w. ja v a2 s. c o m*/ counter++; DActivationPattern activationPatternTemp = dActivationPatternPackage.getActivationPatterns().get(0); FastVector fvWekaAttributes = new FastVector(activationPatternTemp.getRawPattern().length); for (int j = 0; j < activationPatternTemp.getRawPattern().length; j++) { Attribute attribute = new Attribute(j + ""); fvWekaAttributes.addElement(attribute); } Set<String> labelSet = getLabelSet(dActivationPatternPackage); FastVector classValues = new FastVector(labelSet.size()); for (String label : labelSet) { classValues.addElement(label); } Attribute classAttribute = new Attribute("Class", classValues); fvWekaAttributes.addElement(classAttribute); instances = new Instances(name, fvWekaAttributes, dActivationPatternPackage.getActivationPatterns().size()); instances.setClassIndex(instances.numAttributes() - 1); for (int i = 0; i < dActivationPatternPackage.getActivationPatterns().size(); i++) { DActivationPattern activationPattern = dActivationPatternPackage.getActivationPatterns().get(i); Instance instance = new Instance(fvWekaAttributes.size()); for (int j = 0; j < activationPattern.getRawPattern().length; j++) { instance.setValue((Attribute) fvWekaAttributes.elementAt(j), activationPattern.getRawPattern()[j]); } instance.setDataset(instances); DSimpleStringMetaData metadata = (DSimpleStringMetaData) activationPattern.getMetaData(); List<String> keys = metadata.getMetaDataKeys(); for (int k = 0; k < keys.size(); k++) { if (keys.get(k).equals(DalvikInputPlugin.TAG_LABEL)) { String label = metadata.getMetaDataEntries().get(k); // TODO: dynamically add new labels to instances so that getLabelSet for-loop is not required // System.out.println(label); // if(!labelSet.contains(label)) { // labelSet.add(label); // // classValues.addElement(label); // classAttribute.addStringValue(label); // instances.attribute(instances.classIndex()).addValue(label); // System.out.println("ADDED " + label); // } instance.setClassValue(label); // TODO: only first class value used break; } } instances.add(instance); } } return instances; }
From source file:au.edu.usyd.it.yangpy.sampling.BPSO.java
License:Open Source License
/** * the target function in fitness form//from w w w . ja v a 2 s.c om * * @return classification accuracy */ public double ensembleClassify() { double fitnessValue = 0.0; double classifiersScore = 0.0; /* load in the modified data set */ try { Instances reducedSet = new Instances(new BufferedReader(new FileReader("reduced.arff"))); reducedSet.setClassIndex(reducedSet.numAttributes() - 1); // calculating the evaluation values using each classifier respectively if (verbose == true) { System.out.println(); System.out.println(" |----------J4.8-----------|"); System.out.println(" | | |"); } J48 tree = new J48(); classifiersScore = classify(tree, reducedSet, internalTest); fitnessValue += classifiersScore; if (verbose == true) { System.out.println(); System.out.println(" |-----3NearestNeighbor----|"); System.out.println(" | | |"); } IBk nn3 = new IBk(3); classifiersScore = classify(nn3, reducedSet, internalTest); fitnessValue += classifiersScore; if (verbose == true) { System.out.println(); System.out.println(" |--------NaiveBayes-------|"); System.out.println(" | | |"); } NaiveBayes nb = new NaiveBayes(); classifiersScore = classify(nb, reducedSet, internalTest); fitnessValue += classifiersScore; if (verbose == true) { System.out.println(); System.out.println(" |-------RandomForest------|"); System.out.println(" | | |"); } RandomForest rf5 = new RandomForest(); rf5.setNumTrees(5); classifiersScore = classify(rf5, reducedSet, internalTest); fitnessValue += classifiersScore; if (verbose == true) { System.out.println(); System.out.println(" |---------Logistic--------|"); System.out.println(" | | |"); } Logistic log = new Logistic(); classifiersScore = classify(log, reducedSet, internalTest); fitnessValue += classifiersScore; } catch (IOException ioe) { ioe.printStackTrace(); } fitnessValue /= 5; if (verbose == true) { System.out.println(); System.out.println("Fitness: " + fitnessValue); System.out.println("---------------------------------------------------"); } return fitnessValue; }
From source file:au.edu.usyd.it.yangpy.snp.GEsnpxPara.java
License:Open Source License
/** * this function perform genetic operations * * @param saveFlag append/write to the output file *///from w w w . ja v a 2 s . c om public void performGeneticOperation(int saveFlag) throws Exception { // initialize processing components // loading the raw data Instances rawData = new Instances(new BufferedReader(new FileReader(file))); rawData.setClassIndex(rawData.numAttributes() - 1); ParallelGenetic genetic = new ParallelGenetic(rawData, chroLen, popSize, terGener, mode, balance, diversity, numThread); genetic.initializeParameters(); genetic.initializeChromosomes(); genetic.evaluate(); for (int i = 1; i < genetic.getTerimateGeneration(); i++) { genetic.selectElitism(); genetic.selectUsingTournament(); genetic.crossover(); genetic.mutate(); genetic.generateNewGeneration(); genetic.evaluate(); } if (saveFlag == 0) genetic.saveBestChro(false); else genetic.saveBestChro(true); }
From source file:aw_cluster.myKMeans.java
@Override public void buildClusterer(Instances data) throws Exception { getCapabilities().testWithFail(data); Instances instances = new Instances(data); instances.setClassIndex(-1); if (instances.numInstances() == 0) { throw new RuntimeException("Dataset should not be empty"); }/*from w w w . j a va 2s . c o m*/ assignments = new int[instances.numInstances()]; centroid = new Instances(instances, numCluster); distanceFunction.setInstances(instances); squaredError = new double[numCluster]; // Initialize Centroid Random From seed Random random = new Random(getSeedRandom()); Instances tempInstances = new Instances(instances); int tI = tempInstances.numInstances() - 1; while (tI >= 0 && centroid.numInstances() < numCluster) { int indexCentroid = random.nextInt(tI + 1); centroid.add(tempInstances.instance(indexCentroid)); tempInstances.swap(tI, indexCentroid); tI--; } tempInstances = null; boolean converged = false; while (!converged) { converged = true; numIteration++; for (int i = 0; i < instances.numInstances(); ++i) { Instance toCluster = instances.instance(i); int clusterResult = clusterInstanceProcess(toCluster, true); if (clusterResult != assignments[i]) converged = false; assignments[i] = clusterResult; } // update centroid Instances[] TempI = new Instances[numCluster]; centroid = new Instances(instances, numCluster); for (int i = 0; i < TempI.length; ++i) { TempI[i] = new Instances(instances, 0); } for (int i = 0; i < instances.numInstances(); ++i) { TempI[assignments[i]].add(instances.instance(i)); } for (int i = 0; i < TempI.length; ++i) { moveCentroid(TempI[i]); } if (converged) squaredError = new double[numCluster]; if (numIteration == maxIteration) converged = true; sizeEachCluster = new int[numCluster]; for (int i = 0; i < numCluster; ++i) { sizeEachCluster[i] = TempI[i].numInstances(); } } }
From source file:be.uza.keratoconus.analysis.impl.PreTrainedModel.java
License:Open Source License
@Override public void processPatientExam(PatientExam exam) { examData = exam.getExamData();//from ww w .j a v a2s. co m String headerLine = ""; String dataLine = ""; int nColumns = 0; for (String fieldName : classificationModelService.getUsedFields()) { if (examData.containsKey(fieldName)) { headerLine += fieldName + SEMICOLON; final String fieldValue = examData.get(fieldName); // TODO fatal error if fieldValue is null? dataLine += fieldValue + SEMICOLON; ++nColumns; } else if (examData.containsKey(fieldName + " " + Face.FRONT)) { headerLine += fieldName + " " + Face.FRONT + SEMICOLON; final String frontFieldValue = examData.get(fieldName + " " + Face.FRONT); // TODO fatal error if fieldValue is null? dataLine += frontFieldValue + SEMICOLON; ++nColumns; headerLine += fieldName + " " + Face.BACK + SEMICOLON; final String backFieldValue = examData.get(fieldName + " " + Face.BACK); // TODO fatal error if fieldValue is null? dataLine += backFieldValue + SEMICOLON; ++nColumns; } } String csv = headerLine + "Class\n" + dataLine + "?\n"; CSVLoader csvLoader = new CSVLoader(); csvLoader.setFieldSeparator(SEMICOLON); try { csvLoader.setSource(new ByteArrayInputStream(csv.getBytes(Charset.forName("windows-1252")))); final Instances dataSet = csvLoader.getDataSet(); dataSet.setClassIndex(nColumns); instance = dataSet.get(0); } catch (Exception e) { logService.log(ownComponentContext.getServiceReference(), LogService.LOG_WARNING, "Exception thrown when reading CSV record", e); } }
From source file:binarizer.LayoutAnalysis.java
public double crossValidation(String arffFile) throws Exception { DataSource source = new DataSource(arffFile); Instances trainingData = source.getDataSet(); if (trainingData.classIndex() == -1) trainingData.setClassIndex(trainingData.numAttributes() - 1); NaiveBayes nb = new NaiveBayes(); nb.setUseSupervisedDiscretization(true); Evaluation evaluation = new Evaluation(trainingData); evaluation.crossValidateModel(nb, trainingData, 10, new Random(1)); System.out.println(evaluation.toSummaryString()); return evaluation.errorRate(); }
From source file:binarytreesom.clustering.BinaryTreeSOMClustering.java
/** * Initialize the tree configuration. This implementation considers a complete binary tree of depth h. *///from w ww . ja v a2s. c o m private void initialize() throws IOException { //the number of nodes N, is penednt on h. actualy N //h=ln N -> N=2^h Instances instances = readArff(getFilenameARFF()); instances.setClassIndex(-1);//clustering Stuff numberOfInstances = instances.numInstances(); dimensionality = instances.numAttributes(); data = new double[getNumberOfInstances()][getDimensionality()]; weight = new double[getNumberOfNeurons()][getDimensionality()]; //randomly select instances and assign to weight. for (int k = 0; k < getNumberOfNeurons(); k++) { weight[k] = instances.instance(r.nextInt(getNumberOfInstances())).toDoubleArray(); //hard copy of the double array } for (int k = 0; k < getNumberOfInstances(); k++) { data[k] = instances.instance(k).toDoubleArray(); //hard copy of the double array } }
From source file:bme.mace.logicdomain.Evaluation.java
License:Open Source License
/** * Prints the predictions for the given dataset into a supplied StringBuffer * /*from ww w . ja va2 s.co m*/ * @param classifier the classifier to use * @param train the training data * @param testSource the test set * @param classIndex the class index (1-based), if -1 ot does not override the * class index is stored in the data file (by using the last * attribute) * @param attributesToOutput the indices of the attributes to output * @param printDistribution prints the complete distribution for nominal * classes, not just the predicted value * @param text StringBuffer to hold the printed predictions * @throws Exception if test file cannot be opened */ public static void printClassifications(Classifier classifier, Instances train, DataSource testSource, int classIndex, Range attributesToOutput, boolean printDistribution, StringBuffer text) throws Exception { if (testSource != null) { Instances test = testSource.getStructure(); if (classIndex != -1) { test.setClassIndex(classIndex - 1); } else { if (test.classIndex() == -1) { test.setClassIndex(test.numAttributes() - 1); } } // print the header printClassificationsHeader(test, attributesToOutput, printDistribution, text); // print predictions int i = 0; testSource.reset(); test = testSource.getStructure(test.classIndex()); while (testSource.hasMoreElements(test)) { Instance inst = testSource.nextElement(test); text.append(predictionText(classifier, inst, i, attributesToOutput, printDistribution)); i++; } } // return text.toString(); }