List of usage examples for weka.core Instance setValue
public void setValue(Attribute att, String value);
From source file:NaiveBayes.NaiveBayes.java
public String classify(Instances init) { int nAttributes = init.numAttributes(); Instance ins = new DenseInstance(nAttributes); Instances newData = init;/*from w ww . j a va 2s .c o m*/ Scanner s = new Scanner(System.in); Double in; System.out.println("Jumlah Atribut : " + (nAttributes - 1)); for (int i = 1; i <= nAttributes - 1; i++) { //Attribute a = train.attribute(i - 1); System.out.print("Attribute " + i + " : "); in = s.nextDouble(); ins.setValue(i, in); //newIns[i] = in; } newData.add(ins); double nomorKelas = classifyInstance(newData.lastInstance()); return init.attribute(init.numAttributes() - 1).value((int) nomorKelas); }
From source file:net.sf.bddbddb.OrderClassifier.java
License:LGPL
public double importance(weka.core.Attribute attribute, String attrValue) {//, String classValue){ int count = 0; int goodCount = 0, badCount = 0; List newInstances = new LinkedList(); for (Iterator it = orders.iterator(); it.hasNext();) { Instance instance = (Instance) it.next(); if (//!instance.stringValue(instance.classIndex()).equals(classValue) || !instance.stringValue(attribute).equals(attrValue)) continue; if (goodClusters.contains(instance.stringValue(instance.classIndex()))) ++goodCount;//from w w w . j a va 2 s.c om else ++badCount; Instance newInstance = new Instance(instance); newInstance.setDataset(instance.dataset()); newInstances.add(newInstance); } goodCount *= attrOptions.size() - 1; badCount *= attrOptions.size() - 1; for (Iterator it = newInstances.iterator(); it.hasNext();) { Instance instance = (Instance) it.next(); /* if(//!instance.stringValue(instance.classIndex()).equals(classValue) || !instance.stringValue(attribute).equals(attrValue)) continue; */ String classValue = instance.stringValue(instance.classIndex()); FastVector newOptions = new FastVector(); newOptions.appendElements(attrOptions); newOptions.removeElementAt(newOptions.indexOf(instance.stringValue(attribute))); //int index = Math.abs(LearnedOrder.randomNumGen.nextInt()) % newOptions.size(); int index = 0; while (index < newOptions.size()) { instance.setValue(attribute, attrOptions.indexOf(newOptions.elementAt(index))); String value = classify(instance); if (goodClusters.contains(classValue)) { if (goodClusters.contains(value)) --goodCount; } else if (!goodClusters.contains(classValue)) { if (!goodClusters.contains(value)) --badCount; } ++index; } //if(value.equals(classValue)) --count; } count = goodCount - badCount; count /= attrOptions.size() - 1; double importance = ((double) count) / newInstances.size(); if (Double.isNaN(importance)) return 0; return importance; }
From source file:net.sf.bddbddb.OrderClassifier.java
License:LGPL
public void load(BufferedReader in) { try {/*from w ww . ja v a 2 s. c o m*/ String strClusts = in.readLine(); setNumClasses(Integer.parseInt(strClusts)); for (;;) { String line = in.readLine(); if (line == null) break; Instance instance = new Instance(attributes.size()); StringTokenizer st = new StringTokenizer(line, ","); int i = 0; while (st.hasMoreTokens()) { String str = st.nextToken(); // System.out.println("attr " + attributes.elementAt(i) + " val: " + str); instance.setValue((weka.core.Attribute) attributes.elementAt(i), str); ++i; } line = in.readLine(); instance = new MyInstance(instance, Long.parseLong(line)); orders.add(instance); } buildClassifier(); } catch (IOException e) { e.printStackTrace(); Assert.UNREACHABLE("Could not load instances"); } catch (Exception e) { e.printStackTrace(); Assert.UNREACHABLE("Could not build classifier"); } }
From source file:net.sf.bddbddb.OrderClassifier.java
License:LGPL
public Instance makeInstance(String varOrder) { Instance instance = new MyInstance(attributes.size()); for (int i = 0; i < attributes.size() - 1; i++) { instance.setValue((weka.core.Attribute) attributes.elementAt(i), ">"); }/*from w w w. j a v a2s . c om*/ StringTokenizer st = new StringTokenizer(varOrder, "_"); List lefts = new LinkedList(); while (st.hasMoreTokens()) { String pdomain = st.nextToken(); // System.out.println("pdomain: " + pdomain); StringTokenizer st2 = new StringTokenizer(pdomain, "x"); if (st2.countTokens() > 1) { List interLefts = new LinkedList(); while (st2.hasMoreTokens()) { String idomain = st2.nextToken(); // System.out.println("idomain: " + idomain); BDDDomain d = rule.solver.getBDDDomain(idomain); if (!domainSet.contains(d)) continue; Collection pairs = domainToAttrPairs.getValues(d); // System.out.println("interlefts: " + interLefts); // System.out.println("pairs: " + pairs); pair(instance, interLefts, pairs, "=", true); interLefts.addAll(pairs); pair(instance, lefts, pairs, "<", false); lefts.addAll(pairs); } continue; } BDDDomain d = rule.solver.getBDDDomain(pdomain); if (!domainSet.contains(d)) continue; Collection pairs = domainToAttrPairs.getValues(d); pair(instance, lefts, pairs, "<", false); lefts.addAll(pairs); } // System.out.print("attributes:"); /* for(int i = 0; i < attributes.size(); i++){ System.out.print(" " + attributes.elementAt(i)); } */ // System.out.println(); // System.out.println("instance: " + instance); return instance; }
From source file:net.sf.bddbddb.OrderClassifier.java
License:LGPL
private void pair(Instance instance, List lefts, Collection pairs, String value, boolean reverse) { for (Iterator it = lefts.iterator(); it.hasNext();) { Pair left = (Pair) it.next();// w w w . j a v a2 s .co m for (Iterator jt = pairs.iterator(); jt.hasNext();) { Pair right = (Pair) jt.next(); if (right.equals(left)) continue; Pair p = new Pair(left, right); weka.core.Attribute a = new MyAttribute(p, attrOptions); int index = attributes.indexOf(a); if (index == -1) { if (reverse) { Pair r = new Pair(right, left); a = new MyAttribute(r, attrOptions); index = attributes.indexOf(a); } else continue; } Assert._assert(index != -1, " no attribute for " + p + " found. attributes: " + attributes); // System.out.println("Setting " + a.toString() + " to " + value); instance.setValue((weka.core.Attribute) attributes.elementAt(index), value); } } }
From source file:net.sf.jclal.activelearning.oracle.ConsoleHumanOracle.java
License:Open Source License
/** * Method for the specific case of a multi-label dataset. * * @param queryStrategy The query strategy to use *//*w w w. j av a 2 s .c om*/ private void labelMultiLabelInstances(IQueryStrategy queryStrategy) { //Object to read from the console Scanner scanner = new Scanner(new BufferedInputStream(System.in)); AbstractMultiLabelQueryStrategy multiLabelQueryStrategy = (AbstractMultiLabelQueryStrategy) queryStrategy; ArrayList<Integer> selected = multiLabelQueryStrategy.getSelectedInstances(); ArrayList<String> labels = new ArrayList<String>( multiLabelQueryStrategy.getLabelsMetaData().getLabelNames()); //For each selected instance for (int i : selected) { //Ask to the oracle about the class of the instance Instance instance = multiLabelQueryStrategy.getUnlabelledData().instance(i); System.out.println("\nWhat are the labels of this multi-label instance?"); System.out.println("Instance:" + instance.toString() + "\n"); StringTokenizer line; do { System.out.println("IndexLabels: LabelName"); int index = 0; for (String label : labels) { System.out.println((index++) + "-" + label); } System.out.println( "\n Type the indexes of the labels that the instance belongs separated by a colon"); line = new StringTokenizer(scanner.next(), ","); } while (line.countTokens() == 0); //Reset the labels for (int labelIndex = 0; labelIndex < multiLabelQueryStrategy.getNumLabels(); labelIndex++) { instance.setValue(multiLabelQueryStrategy.getLabelIndices()[labelIndex], 0); } while (line.hasMoreTokens()) { int labelIndex = Integer.valueOf(line.nextToken()); Attribute att = instance.dataset().attribute(labels.get(labelIndex)); instance.setValue(att, 1); } System.out.println(); } }
From source file:net.sf.markov4jmeter.behaviormodelextractor.extraction.transformation.clustering.AbstractClusteringStrategy.java
License:Apache License
/** * Returns a instance as vector based on a single BehaviorModelAbsolute. * //from ww w.j a v a2 s .com * @param behaviorModelsAbsolute * @return a instance, transitions of behaviorModelAbsolute as input vector */ protected Instance getInstance(BehaviorModelAbsolute behaviorModelAbsolute, Instances instances) { // create new instance with size n x (n + 1) int nrVertices = behaviorModelAbsolute.getVertices().size() - 1; Instance instance = new Instance((nrVertices * (nrVertices + 1)) + 1); final List<Vertex> vertices = behaviorModelAbsolute.getVertices(); int indexOfAttribute = 0; for (final Vertex srcVertex : vertices) { if (srcVertex.getUseCase() != null) { // no final state // for each transition set the value of the instance vector for (final Vertex dstVertex : vertices) { final UseCase srcUseCase = srcVertex.getUseCase(); final UseCase dstUseCase = dstVertex.getUseCase(); final String srcUseCaseId = srcUseCase.getId(); // if dstUseCase is null, its vertex denotes the final state // (no ID); final String dstUseCaseId = (dstUseCase != null) ? dstUseCase.getId() : null; Transition transition = this.findTransitionByUseCaseIDs(behaviorModelAbsolute, srcUseCaseId, dstUseCaseId); if (transition != null) { instance.setValue(indexOfAttribute, transition.getValue()); } else { instance.setValue(indexOfAttribute, 0); } indexOfAttribute++; } } else { continue; // skip final state ("$"); } } instance.setDataset(instances); // set attribute for classification instance.setValue(indexOfAttribute, behaviorModelAbsolute.getTransactionType()); return instance; }
From source file:Neural_Network.NuralN.java
private static Instance toInstance(String[] instanceData) { try {// w ww . j a v a2 s.com loadDataTemplate(); Instance tempInstance = new Instance(temp.numAttributes()); tempInstance.setDataset(temp); for (int index = 0; index < instanceData.length; index++) { tempInstance.setValue(index, instanceData[index]); } temp.add(tempInstance); } catch (Exception e) { System.err.println(e.toString()); } return temp.lastInstance(); }
From source file:newdtl.NewJ48.java
/** * Creates a J48 tree./*from w w w .j a v a2 s . c o m*/ * * @param data the training data * @exception Exception if tree failed to build */ private void makeTree(Instances data) throws Exception { // Mengecek apakah tidak terdapat instance dalam node ini if (data.numInstances() == 0) { splitAttribute = null; label = DOUBLE_MISSING_VALUE; classDistributions = new double[data.numClasses()]; isLeaf = true; } else { // Mencari Gain Ratio maksimum double[] gainRatios = new double[data.numAttributes()]; double[] thresholds = new double[data.numAttributes()]; Enumeration attEnum = data.enumerateAttributes(); while (attEnum.hasMoreElements()) { Attribute att = (Attribute) attEnum.nextElement(); double[] result = computeGainRatio(data, att); gainRatios[att.index()] = result[0]; thresholds[att.index()] = result[1]; } splitAttribute = data.attribute(maxIndex(gainRatios)); if (splitAttribute.isNumeric()) { splitThreshold = thresholds[maxIndex(gainRatios)]; } else { splitThreshold = Double.NaN; } classDistributions = new double[data.numClasses()]; for (int i = 0; i < data.numInstances(); i++) { Instance inst = (Instance) data.instance(i); classDistributions[(int) inst.classValue()]++; } // Membuat daun jika Gain Ratio-nya 0 if (Double.compare(gainRatios[splitAttribute.index()], 0) == 0) { splitAttribute = null; label = maxIndex(classDistributions); classAttribute = data.classAttribute(); isLeaf = true; } else { // Mengecek jika ada missing value if (isMissing(data, splitAttribute)) { // cari modus int index = modusIndex(data, splitAttribute); // ubah data yang punya missing value Enumeration dataEnum = data.enumerateInstances(); while (dataEnum.hasMoreElements()) { Instance inst = (Instance) dataEnum.nextElement(); if (inst.isMissing(splitAttribute)) { inst.setValue(splitAttribute, splitAttribute.value(index)); } } } // Membuat tree baru di bawah node ini Instances[] splitData; if (splitAttribute.isNumeric()) { splitData = splitData(data, splitAttribute, splitThreshold); children = new NewJ48[2]; for (int j = 0; j < 2; j++) { children[j] = new NewJ48(); children[j].makeTree(splitData[j]); } } else { splitData = splitData(data, splitAttribute); children = new NewJ48[splitAttribute.numValues()]; for (int j = 0; j < splitAttribute.numValues(); j++) { children[j] = new NewJ48(); children[j].makeTree(splitData[j]); } } isLeaf = false; } } }
From source file:ocr.ARFFSymbolFilter.java
License:Apache License
public static Instance constructInstance(final Symbol s, final double alph) { final StringTokenizer st = new StringTokenizer(constructStringInstance(s, alph), " "); ARFFSymbolFilter.na = st.countTokens() / 2; if (ARFFSymbolFilter.na == 0) { return null; }/*from w w w.ja va2s . c om*/ final Instance instance = new Instance(ARFFSymbolFilter.na + 1); for (int i = 0; i < ARFFSymbolFilter.na; ++i) { st.nextToken(); instance.setValue(i, Double.parseDouble(st.nextToken())); } return instance; }