List of usage examples for weka.core Instance setValue
public void setValue(Attribute att, String value);
From source file:transformation.mimlTOml.MiniMaxTransformation.java
License:Open Source License
@Override public Instance transformInstance(Bag bag) throws Exception { int labelIndices[] = dataset.getLabelIndices(); Instance newInst = new DenseInstance(template.numAttributes()); // sets the bagLabel newInst.setDataset(bag.dataset()); // Sets the reference to the dataset newInst.setValue(0, bag.value(0)); // retrieves instances (relational value) Instances instances = bag.getBagAsInstances(); // For all attributes in bag for (int j = 0, attIdx = 1; j < instances.numAttributes(); j++, attIdx++) { double[] minimax = minimax(instances, j); newInst.setValue(attIdx, minimax[0]);// minima value newInst.setValue(attIdx + instances.numAttributes(), minimax[1]);// maxima // value); }/*w w w .j ava 2 s . c o m*/ // Insert label information into the instance for (int j = 0; j < labelIndices.length; j++) { newInst.setValue(updatedLabelIndices[j], bag.value(labelIndices[j])); } return newInst; }
From source file:tubes1.Main.java
/** * @param args the command line arguments *//*from ww w . j a v a 2 s .co m*/ public static void main(String[] args) throws IOException, Exception { // TODO code application logic here String filename = "weather"; //Masih belum mengerti tipe .csv yang dapat dibaca seperti apa //CsvToArff convert = new CsvToArff(filename+".csv"); //LOAD FILE BufferedReader datafile = readDataFile("src/" + filename + ".arff"); Instances data = new Instances(datafile); data.setClassIndex(data.numAttributes() - 1); //END OF LOAD FILE CustomFilter fil = new CustomFilter(); //REMOVE USELESS ATTRIBUTE data = fil.removeAttribute(data); System.out.println(data); Instances[] allData = new Instances[4]; //data for Id3 allData[0] = fil.resampling(fil.convertNumericToNominal(data)); //data for J48 allData[1] = fil.convertNumericToNominal(fil.resampling(data)); //data for myId3 allData[2] = allData[0]; //data for myC4.5 allData[3] = fil.resampling(fil.convertNumericToNominal(fil.convertNumericRange(data))); data = fil.convertNumericToNominal(data); // BUILD CLASSIFIERS Classifier[] models = { new Id3(), //C4.5 new J48(), new myID3(), new myC45() }; for (int j = 0; j < models.length; j++) { FastVector predictions = new FastVector(); //FOR TEN-FOLD CROSS VALIDATION Instances[][] split = crossValidationSplit(allData[j], 10); // Separate split into training and testing arrays Instances[] trainingSplits = split[0]; Instances[] testingSplits = split[1]; System.out.println("\n---------------------------------"); for (int i = 0; i < trainingSplits.length; i++) { try { // System.out.println("Building for training Split : " + i); Evaluation validation = classify(models[j], trainingSplits[i], testingSplits[i]); predictions.appendElements(validation.predictions()); // Uncomment to see the summary for each training-testing pair. // System.out.println(models[j].toString()); } catch (Exception ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } // Calculate overall accuracy of current classifier on all splits double accuracy = calculateAccuracy(predictions); // Print current classifier's name and accuracy in a complicated, // but nice-looking way. System.out.println(String.format("%.2f%%", accuracy)); } models[j].buildClassifier(allData[j]); Model.save(models[j], models[j].getClass().getSimpleName()); } //test instance Instances trainingSet = new Instances("Rel", getFvWekaAttributes(data), 10); trainingSet.setClassIndex(data.numAttributes() - 1); Instance testInstance = new Instance(data.numAttributes()); for (int i = 0; i < data.numAttributes() - 1; i++) { System.out.print("Masukkan " + data.attribute(i).name() + " : "); Scanner in = new Scanner(System.in); String att = in.nextLine(); if (isNumeric(att)) { att = fil.convertToFit(att, data, i); } testInstance.setValue(data.attribute(i), att); } // System.out.println(testInstance); // System.out.println(testInstance.classAttribute().index()); trainingSet.add(testInstance); Classifier Id3 = Model.load("Id3"); Classifier J48 = Model.load("J48"); Classifier myID3 = Model.load("myID3"); Classifier MyC45 = Model.load("myC45"); // Classifier MyId3 = Model.load("myID3"); Instance A = trainingSet.instance(0); Instance B = trainingSet.instance(0); Instance C = trainingSet.instance(0); Instance D = trainingSet.instance(0); //test with ID3 WEKA A.setClassValue(Id3.classifyInstance(trainingSet.instance(0))); System.out.println("Id3 Weka : " + A); //test with C4.5 WEKA B.setClassValue(J48.classifyInstance(trainingSet.instance(0))); System.out.println("C4.5 Weka : " + B); //test with my C4.5 C.setClassValue(MyC45.classifyInstance(trainingSet.instance(0))); System.out.println("My C4.5 : " + C); //test with my ID3 D.setClassValue(myID3.classifyInstance(trainingSet.instance(0))); System.out.println("My ID3 : " + D); }
From source file:tubes2.myClusterers.myAgnes.java
public Instance getCentroid(Instances cluster) { Instance centroid = new Instance(cluster.numAttributes()); for (int i = 0; i < cluster.numAttributes(); i++) { double atrValueTotal = 0; for (int j = 0; j < cluster.numInstances(); j++) { atrValueTotal += cluster.instance(j).value(i); }/* ww w . j av a2 s.c o m*/ double atrValueMean = atrValueTotal / cluster.numInstances(); centroid.setValue(cluster.attribute(i), atrValueMean); } return centroid; }
From source file:tubes2.myClusterers.myKMeans.java
public Instance mean(Instances i) { Instance mean = new weka.core.Instance(i.numAttributes()); for (int j = 0; j < i.numAttributes(); j++) { double meanValue = meanValue(i, j); mean.setValue(j, meanValue); }/* w w w. j ava 2 s .c om*/ return mean; }
From source file:tucil.dua.ai.TucilDuaAi.java
public static void addInstance(Instances d) { Scanner input = new Scanner(System.in); Instance temp = new DenseInstance(d.numAttributes()); for (int i = 0; i < (d.numAttributes() - 1); i++) { System.out.print(d.attribute(i) + " = "); Double x = input.nextDouble(); temp.setValue(d.attribute(i), x); }// w w w . j a v a 2 s . c om System.out.print(d.attribute(d.numAttributes() - 1) + " = "); String x = input.next(); temp.setValue(d.attribute(d.numAttributes() - 1), x); d.add(temp); }
From source file:uk.ac.ed.inf.acedemo.classifiers.Classifier.java
License:Apache License
@Override protected Instance constructInstance(ReadableDocument document) { Instance instance = new DenseInstance(58); double[] values = (double[]) document.getContent(); for (int index = 0; index < values.length; index++) { instance.setValue(index + 1, values[index]); }//from w w w . j av a 2 s. c o m return instance; }
From source file:util.Weka.java
public Instance casoADecidir(double... atributos) { Instance casoAdecidir = new Instance(casosEntrenamiento.numAttributes()); casoAdecidir.setDataset(casosEntrenamiento); for (int i = 0; i < atributos.length; i++) { casoAdecidir.setValue(i, atributos[i]); }/*www. ja v a 2 s . c o m*/ return casoAdecidir; }
From source file:utils.MlStormFeatureVectorUtils.java
License:Apache License
public static weka.core.Instance buildWekaInstance(double[] featureVector) { weka.core.Instance instance = new DenseInstance(featureVector.length); for (int i = 0; i < featureVector.length; i++) { instance.setValue(i, featureVector[i]); }/* w ww.ja va2 s .c om*/ return instance; }
From source file:view.centerPanels.ClassificationPnlCenterPredict.java
private void btnStartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnStartActionPerformed //imate vec objekat instances i objekat naiveBayes u ovoj klasi //treba da izvucete ono sto je uetu u text fieldove preko liste i da napravite //objekat Instance (nema "s"). kad naravite objekat Instance samo ga dodate //na instances.add( ).. //onda koristite takav Instances i naiveBayes za evaluaciju i u textArea //ispisujete kojoj klasi pripada.. Sad ne trba matrica konfuzije potrebno //je da ispisete string kojoj klasi pripada //pogledajte klasu ClusterinPnlCenterPredict tu je odradjeno 90% onog sto se i ovde trazi // instances.delete(); for (int i = 0; i < textFields.size(); i++) { String text = textFields.get(i).getText().trim(); //prekace prazna pollja jer za klasterizaciju znaci da se ona ignorisu //to za klasifikaciju nije slucaj if (!text.equals("")) { if (instances.attribute(i).isNominal()) { boolean correct = false; for (int j = 0; j < instances.attribute(i).numValues(); j++) { if (text.equals(instances.attribute(i).value(j))) { correct = true;//from w w w . j av a 2 s . c o m } } if (!correct) { JOptionPane.showMessageDialog(this, "Incorrect format for attribute " + instances.attribute(i).name()); break; } } if (instances.attribute(i).isNumeric()) { try { double value = Double.parseDouble(text); } catch (Exception e) { JOptionPane.showMessageDialog(this, "Incorrect format for attribute " + instances.attribute(i).name()); break; } } } } int numAttributes = instances.numAttributes(); Instance instance = new Instance(numAttributes); for (int i = 0; i < textFields.size(); i++) { String text = textFields.get(i).getText().trim(); try { double value = Double.parseDouble(text); instance.setValue(i, value); } catch (Exception e) { instance.setValue(i, text); } } String value = instances.attribute(numAttributes - 1).value(0); Attribute Att = instances.attribute(numAttributes - 1); instance.setValue(Att, value); // instances.delete(); // instance.setValue((numAttributes - 1), instances.attribute(numAttributes - 1).value(0) ); instances.add(instance); double[][] matrix = null; System.out.println(instances); System.out.println(naiveBayes); try { // instances.setClassIndex(instances.numAttributes() - 1); Evaluation eval = new Evaluation(instances); eval.evaluateModel(naiveBayes, instances); textArea.setText(eval.toMatrixString()); matrix = eval.confusionMatrix(); } catch (Exception ex) { System.out.println("Greska: " + ex); } double[] array = new double[matrix.length]; for (int i = 0; i < array.length; i++) { double sum = 0; for (int j = 0; j < array.length; j++) { sum = sum + matrix[j][i]; } array[i] = sum; } String className = null; for (int i = 0; i < array.length; i++) { if (array[i] == 1) { className = instances.attribute(numAttributes - 1).value(i); } } textArea.setText("This instance belongs to class: \n\n== " + className + " =="); instances.delete(); }
From source file:view.centerPanels.ClusteringPredictPnlCenter.java
private void btnStartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnStartActionPerformed Instances test = new Instances(Data.getInstance().getInstances()); test.delete();// w w w. j a v a 2 s . co m //proverava da li su dobro unete vrednosti //ako nesto nije doro uneseno nekaa iskoci JoptionPane //sta je lose uneseno, naziv aributa recimo for (int i = 0; i < fields.size(); i++) { String text = fields.get(i).getText().trim(); //prekace prazna pollja jer za klasterizaciju znaci da se ona ignorisu //to za klasifikaciju nije slucaj if (!text.equals("")) { if (test.attribute(i).isNominal()) { boolean correct = false; for (int j = 0; j < test.attribute(i).numValues(); j++) { if (text.equals(test.attribute(i).value(j))) { correct = true; } } if (!correct) { JOptionPane.showMessageDialog(this, "Incorrect format for attribute " + test.attribute(i).name()); break; } } if (test.attribute(i).isNumeric()) { try { double value = Double.parseDouble(text); } catch (Exception e) { JOptionPane.showMessageDialog(this, "Incorrect format for attribute " + test.attribute(i).name()); break; } } } } int numAttributes = test.numAttributes(); Instance instance = new Instance(numAttributes); //ovaj remove je potreban samo zaklasterizaciju String remove = ""; boolean hasRemove = false; for (int i = 0; i < fields.size(); i++) { String text = fields.get(i).getText().trim(); //vama ne sme da se pojavi prazan string if (text.equals("")) { remove = remove + (i + 1) + ","; hasRemove = true; } else { try { double value = Double.parseDouble(text); instance.setValue(i, value); } catch (Exception e) { instance.setValue(i, text); } } } if (hasRemove) { remove = remove.substring(0, remove.length() - 1); } //meni se InstanceS zove test a vama instances, ovako se dodaje ta jedna instanca test.add(instance); //sad radite vasu evaluaciju ovo je klaserizacija ostalo Remove removeFilter = new Remove(); removeFilter.setAttributeIndices(remove); FilteredClusterer filteredClusterer = new FilteredClusterer(); try { filteredClusterer.setClusterer(kMeans); filteredClusterer.setFilter(removeFilter); filteredClusterer.buildClusterer(Data.getInstance().getInstances()); } catch (Exception e) { } ClusterEvaluation eval = new ClusterEvaluation(); eval.setClusterer(filteredClusterer); try { eval.evaluateClusterer(test); } catch (Exception ex) { Logger.getLogger(ClusteringPredictPnlCenter.class.getName()).log(Level.SEVERE, null, ex); } String[] results = eval.clusterResultsToString().split("\n"); String cluster = results[results.length - 1].split(" ")[0]; textAreaResult.setText("This instance belongs to \ncluster number: " + cluster + ".\n\n" + "Take a look on visualization \nfor better feeleing about \nthis instance"); test.delete(); }