List of usage examples for weka.core Instances size
@Override publicint size()
From source file:MeansClassifier.java
@Override public void buildClassifier(Instances i) throws Exception { double[][] means = new double[i.numClasses()][i.numAttributes() - 1]; for (int j = 0; j < i.size(); j++) { if (i.instance(j).classValue() == 0) { zeros.add(i.instance(j).value(0)); }// www .ja va2 s . co m if (i.instance(j).classValue() == 1) { ones.add(i.instance(j).value(0)); } } double zero1 = 0, one1 = 0; for (int k = 0; k < zeros.size(); k++) { zero1 = zero1 + zeros.get(k); } for (int l = 0; l < ones.size(); l++) { one1 = one1 + ones.get(l); } System.out.println("For class 0, mean is " + (zero1 / zeros.size())); System.out.println("For class 1, mean is " + (one1 / ones.size())); }
From source file:AaronTest.ShapeletTransformExperiments.java
public static boolean AreInstancesEqual(Instances a, Instances b) { for (int i = 0; i < a.size(); i++) { double distance = a.get(i).value(0) - b.get(i).value(0); if (distance != 0) { return false; }/* ww w.j av a 2 s .c om*/ } return true; }
From source file:activeSegmentation.feature.FeatureExtraction.java
License:Open Source License
/** * Add training samples from a rectangular roi * //from ww w .ja va2 s .c om * @param trainingData set of instances to add to * @param classIndex class index value * @param sliceNum number of 2d slice being processed * @param r shape roi * @return number of instances added */ private Instances addRectangleRoiInstances(int sliceNum, List<String> classLabels, int classes) { Instances testingData; ArrayList<Attribute> attributes = createFeatureHeader(); attributes.add(new Attribute(Common.CLASS, addClasstoHeader(classes, classLabels))); System.out.println(attributes.toString()); // create initial set of instances testingData = new Instances(Common.INSTANCE_NAME, attributes, 1); // Set the index of the class attribute testingData.setClassIndex(filterManager.getNumOfFeatures()); for (int x = 0; x < originalImage.getWidth(); x++) { for (int y = 0; y < originalImage.getHeight(); y++) { testingData.add(filterManager.createInstance(x, y, 0, sliceNum)); } } // increase number of instances for this class System.out.println("SIZe" + testingData.size()); System.out.println(testingData.get(1).toString()); return testingData; }
From source file:adams.flow.template.MyTransformer.java
License:Open Source License
/** * Counts the number of missing values in each row * // ww w. j ava2s . com * @return array with the number of missing values in each row */ private int[] getMissingValuesByRow(Instances data) { int numRows = data.size(); int numColumns = data.numAttributes(); int[] missingValues = new int[numRows]; for (int i = 0; i < numRows; i++) for (int j = 0; j < numColumns; j++) if (data.get(i).isMissing(j)) missingValues[i]++; return missingValues; }
From source file:adams.flow.template.MyTransformer.java
License:Open Source License
/** * Counts the number of missing values in each column * /* w ww . j a v a2 s.c o m*/ * @return array with the number of missing values in each column */ private int[] getMissingValuesByColumn(Instances data) { int numRows = data.size(); int numColumns = data.numAttributes(); int[] missingValues = new int[numColumns]; for (int i = 0; i < numRows; i++) for (int j = 0; j < numColumns; j++) if (data.get(i).isMissing(j)) missingValues[j]++; return missingValues; }
From source file:cn.ict.zyq.bestConf.bestConf.sampler.ConfigSampler.java
License:Open Source License
public Instances getMultiDimContinuous(ArrayList<Attribute> atts, int sampleSetSize, boolean useMid, BestConf bestconf) {/*from w ww . ja va2s. c o m*/ Instances retval = sampleMultiDimContinuous(atts, sampleSetSize, useMid), temp; while (retval.size() < sampleSetSize) { temp = sampleMultiDimContinuous(atts, sampleSetSize, useMid); retval.addAll(temp); } //make sure the set size is equal to the setting while (retval.size() > sampleSetSize) retval.remove(retval.size() - 1); return retval; }
From source file:com.guidefreitas.locator.services.PredictionService.java
public Room predict(PredictionRequest request) { try {/*from w ww . j ava2 s . com*/ String arffData = this.generateTestData(request); StringReader reader = new StringReader(arffData); Instances unlabeled = new Instances(reader); System.out.println("Test data size: " + unlabeled.size()); unlabeled.setClassIndex(unlabeled.numAttributes() - 1); Instances labeled = new Instances(unlabeled); Double clsLabel = this.classifier.classifyInstance(unlabeled.get(0)); labeled.instance(0).setClassValue(clsLabel); String roomIdString = unlabeled.classAttribute().value(clsLabel.intValue()); Long roomId = Long.parseLong(roomIdString); Room predictedRoom = RoomService.getInstance().getById(roomId); System.out.println(clsLabel + " -> " + roomIdString + " -> " + predictedRoom.getName()); return predictedRoom; } catch (Exception ex) { Logger.getLogger(PredictionService.class.getName()).log(Level.SEVERE, null, ex); } return null; }
From source file:com.yimei.core.Discretizer.java
public static Instances discretize(Instances data) { Instances discData = new Instances(data); for (int i = 0; i < data.numAttributes(); i++) { if (data.attribute(i).isNumeric()) { double max = Double.MIN_VALUE; double min = Double.MAX_VALUE; for (int j = 0; j < data.size(); j++) { double value = data.instance(j).value(i); if (value > max) { max = value;/*from w ww . java 2 s . c o m*/ } if (value < min) { min = value; } } double interval = (max - min) / numOfIntervals; for (int j = 0; j < data.size(); j++) { long discValue = Math.round((data.instance(j).value(i) - min) / interval); discData.instance(j).setValue(i, discValue); } } } return discData; }
From source file:controller.BothClassificationsServlet.java
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String dir = "/data/"; String path = getServletContext().getRealPath(dir); String action = request.getParameter("action"); switch (action) { case "create": { String fileName = request.getParameter("file"); String aux = fileName.substring(0, fileName.indexOf(".")); String pathInput = path + "/" + request.getParameter("file"); String pathTrainingOutput = path + "/" + aux + "-training-arff.txt"; String pathTestOutput = path + "/" + aux + "-test-arff.txt"; String pathBothClassifications = path + "/" + aux + "-bothClassifications.txt"; String name = request.getParameter("name"); int range = Integer.parseInt(request.getParameter("range")); int size = Integer.parseInt(request.getParameter("counter")); String[] columns = new String[size]; String[] types = new String[size]; int[] positions = new int[size]; int counter = 0; for (int i = 0; i < size; i++) { if (request.getParameter("column-" + (i + 1)) != null) { columns[counter] = request.getParameter("column-" + (i + 1)); types[counter] = request.getParameter("type-" + (i + 1)); positions[counter] = Integer.parseInt(request.getParameter("position-" + (i + 1))); counter++;/*from w w w . ja v a2s .com*/ } } FormatFiles.convertTxtToArff(pathInput, pathTrainingOutput, pathTestOutput, name, columns, types, positions, counter, range); try { J48 j48 = new J48(); BufferedReader readerTraining = new BufferedReader(new FileReader(pathTrainingOutput)); Instances instancesTraining = new Instances(readerTraining); instancesTraining.setClassIndex(instancesTraining.numAttributes() - 1); j48.buildClassifier(instancesTraining); BufferedReader readerTest = new BufferedReader(new FileReader(pathTestOutput)); //BufferedReader readerTest = new BufferedReader(new FileReader(pathTrainingOutput)); Instances instancesTest = new Instances(readerTest); instancesTest.setClassIndex(instancesTest.numAttributes() - 1); int correctsDecisionTree = 0; for (int i = 0; i < instancesTest.size(); i++) { Instance instance = instancesTest.get(i); double correctValue = instance.value(instance.attribute(instancesTest.numAttributes() - 1)); double classification = j48.classifyInstance(instance); if (correctValue == classification) { correctsDecisionTree++; } } Evaluation eval = new Evaluation(instancesTraining); eval.evaluateModel(j48, instancesTest); PrintWriter writer = new PrintWriter( new BufferedWriter(new FileWriter(pathBothClassifications, false))); writer.println("?rvore de Deciso\n\n"); writer.println(j48.toString()); writer.println(""); writer.println(""); writer.println("Results"); writer.println(eval.toSummaryString()); NaiveBayes naiveBayes = new NaiveBayes(); naiveBayes.buildClassifier(instancesTraining); eval = new Evaluation(instancesTraining); eval.evaluateModel(naiveBayes, instancesTest); int correctsNaiveBayes = 0; for (int i = 0; i < instancesTest.size(); i++) { Instance instance = instancesTest.get(i); double correctValue = instance.value(instance.attribute(instancesTest.numAttributes() - 1)); double classification = naiveBayes.classifyInstance(instance); if (correctValue == classification) { correctsNaiveBayes++; } } writer.println("Naive Bayes\n\n"); writer.println(naiveBayes.toString()); writer.println(""); writer.println(""); writer.println("Results"); writer.println(eval.toSummaryString()); writer.close(); response.sendRedirect("BothClassifications?action=view&correctsDecisionTree=" + correctsDecisionTree + "&correctsNaiveBayes=" + correctsNaiveBayes + "&totalTest=" + instancesTest.size() + "&totalTrainig=" + instancesTraining.size() + "&range=" + range + "&fileName=" + aux + "-bothClassifications.txt"); } catch (Exception e) { System.out.println(e.getMessage()); response.sendRedirect("Navigation?action=decisionTree"); } break; } default: response.sendError(404); } }
From source file:controller.DecisionTreeServlet.java
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String dir = "/data/"; String path = getServletContext().getRealPath(dir); String action = request.getParameter("action"); switch (action) { case "create": { String fileName = request.getParameter("file"); String aux = fileName.substring(0, fileName.indexOf(".")); String pathInput = path + "/" + request.getParameter("file"); String pathTrainingOutput = path + "/" + aux + "-training-arff.txt"; String pathTestOutput = path + "/" + aux + "-test-arff.txt"; String pathDecisionTree = path + "/" + aux + "-decisionTree.txt"; String name = request.getParameter("name"); int range = Integer.parseInt(request.getParameter("range")); int size = Integer.parseInt(request.getParameter("counter")); String[] columns = new String[size]; String[] types = new String[size]; int[] positions = new int[size]; int counter = 0; for (int i = 0; i < size; i++) { if (request.getParameter("column-" + (i + 1)) != null) { columns[counter] = request.getParameter("column-" + (i + 1)); types[counter] = request.getParameter("type-" + (i + 1)); positions[counter] = Integer.parseInt(request.getParameter("position-" + (i + 1))); counter++;/*from www. ja va 2 s. co m*/ } } FormatFiles.convertTxtToArff(pathInput, pathTrainingOutput, pathTestOutput, name, columns, types, positions, counter, range); try { J48 j48 = new J48(); BufferedReader readerTraining = new BufferedReader(new FileReader(pathTrainingOutput)); Instances instancesTraining = new Instances(readerTraining); instancesTraining.setClassIndex(instancesTraining.numAttributes() - 1); j48.buildClassifier(instancesTraining); BufferedReader readerTest = new BufferedReader(new FileReader(pathTestOutput)); //BufferedReader readerTest = new BufferedReader(new FileReader(pathTrainingOutput)); Instances instancesTest = new Instances(readerTest); instancesTest.setClassIndex(instancesTest.numAttributes() - 1); int corrects = 0; int truePositive = 0; int trueNegative = 0; int falsePositive = 0; int falseNegative = 0; for (int i = 0; i < instancesTest.size(); i++) { Instance instance = instancesTest.get(i); double correctValue = instance.value(instance.attribute(instancesTest.numAttributes() - 1)); double classification = j48.classifyInstance(instance); if (correctValue == classification) { corrects++; } if (correctValue == 1 && classification == 1) { truePositive++; } if (correctValue == 1 && classification == 0) { falseNegative++; } if (correctValue == 0 && classification == 1) { falsePositive++; } if (correctValue == 0 && classification == 0) { trueNegative++; } } Evaluation eval = new Evaluation(instancesTraining); eval.evaluateModel(j48, instancesTest); PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(pathDecisionTree, false))); writer.println(j48.toString()); writer.println(""); writer.println(""); writer.println("Results"); writer.println(eval.toSummaryString()); writer.close(); response.sendRedirect("DecisionTree?action=view&corrects=" + corrects + "&totalTest=" + instancesTest.size() + "&totalTrainig=" + instancesTraining.size() + "&truePositive=" + truePositive + "&trueNegative=" + trueNegative + "&falsePositive=" + falsePositive + "&falseNegative=" + falseNegative + "&fileName=" + aux + "-decisionTree.txt"); } catch (Exception e) { System.out.println(e.getMessage()); response.sendRedirect("Navigation?action=decisionTree"); } break; } default: response.sendError(404); } }