List of usage examples for weka.core DenseInstance setValue
@Override public void setValue(int attIndex, double value)
From source file:com.ivanrf.smsspam.SpamClassifier.java
License:Apache License
public static String classify(String model, String text, JTextArea log) { FilteredClassifier classifier = loadModel(model, log); //Create the instance ArrayList<String> fvNominalVal = new ArrayList<String>(); fvNominalVal.add("ham"); fvNominalVal.add("spam"); Attribute attribute1 = new Attribute("spam_class", fvNominalVal); Attribute attribute2 = new Attribute("text", (List<String>) null); ArrayList<Attribute> fvWekaAttributes = new ArrayList<Attribute>(); fvWekaAttributes.add(attribute1);/*from ww w .ja va2 s .c o m*/ fvWekaAttributes.add(attribute2); Instances instances = new Instances("Test relation", fvWekaAttributes, 1); instances.setClassIndex(0); DenseInstance instance = new DenseInstance(2); instance.setValue(attribute2, text); instances.add(instance); publishEstado("=== Instance created ===", log); publishEstado(instances.toString(), log); //Classify the instance try { publishEstado("=== Classifying instance ===", log); double pred = classifier.classifyInstance(instances.instance(0)); publishEstado("=== Instance classified ===", log); String classPredicted = instances.classAttribute().value((int) pred); publishEstado("Class predicted: " + classPredicted, log); return classPredicted; } catch (Exception e) { publishEstado("Error found when classifying the text", log); return null; } }
From source file:lu.lippmann.cdb.datasetview.tabs.TimeSeriesSimilarityPanel.java
License:Open Source License
private Instances buildFeatureDS(final Instances dataSet) throws Exception { final int numAttributes = dataSet.numAttributes(); final java.util.List<String> namesOfFeaturesToConsider = new ArrayList<String>(); namesOfFeaturesToConsider.addAll(WekaDataStatsUtil.getAttributeNames(dataSet)); namesOfFeaturesToConsider.removeAll(WekaDataStatsUtil.getDateAttributeNames(dataSet)); final double[][] simMatrix = new double[numAttributes][numAttributes]; for (int i = 0; i < numAttributes; i++) { final double[] arrayI = dataSet.attributeToDoubleArray(i); if (this.withNormalization) MathsUtil.normalize(arrayI); simMatrix[i][i] = 0d;//from w w w.j a v a 2 s.c o m ; for (int j = i + 1; j < numAttributes; j++) { final double[] arrayJ = dataSet.attributeToDoubleArray(j); if (this.withNormalization) MathsUtil.normalize(arrayJ); simMatrix[i][j] = new DynamicTimeWarping(arrayI, arrayJ).getDistance(); //System.out.println(i+" "+j); } } for (int i = 0; i < numAttributes; i++) { for (int j = 0; j < i + 1; j++) { simMatrix[i][j] = simMatrix[j][i]; } } /*for (int i=0;i<numAttributes;i++) { System.out.println(i+" -> "+FormatterUtil.buildStringFromArrayOfDoubles(simMatrix[i])); }*/ final ArrayList<Attribute> attrs = new ArrayList<Attribute>(numAttributes + 1); for (int i = 0; i < numAttributes; i++) { attrs.add(new Attribute(dataSet.attribute(i).name() + "-feat")); } attrs.add(new Attribute(FEATUREDESC_ATTRNAME, namesOfFeaturesToConsider)); final Instances ds = new Instances("featuresComparisonDs", attrs, 0); ds.setClassIndex(attrs.size() - 1); for (int i = 0; i < simMatrix.length; i++) { final DenseInstance di = new DenseInstance(1.0d, ArraysUtil.concat(simMatrix[i], new double[] { 0d })); di.setDataset(ds); di.setValue(simMatrix.length, dataSet.attribute(i).name()); ds.add(di); } return ds; }
From source file:moa.clusterers.outliers.AnyOut.AnyOutCore.java
License:Apache License
public void train(DataSet trainingSet) { // TODO fix not working builder! // ClusTree private variables are not updated but are mandatory for the algorithm to function. // if (UseBulkLoadingOption.isSet()) { // // Use BulkLoading // EMTopDownTreeBuilder builder = new EMTopDownTreeBuilder(); // try { // this.root = builder.buildTree(trainingSet); // } catch (Exception e) { // e.printStackTrace(); // }/*from ww w . j av a2 s .co m*/ // } else { //Use traditional initialization for (DataObject o : trainingSet.getDataObjectArray()) { DenseInstance inst = new DenseInstance(o.getFeatures().length); for (int i = 0; i < o.getFeatures().length; i++) { inst.setValue(i, o.getFeatures()[i]); } trainOnInstance(inst); } // } }
From source file:moa.clusterers.outliers.AnyOut.AnyOutCore.java
License:Apache License
public void learnObject(double[] features) { DenseInstance inst = new DenseInstance(features.length); for (int i = 0; i < features.length; i++) { inst.setValue(i, features[i]); }//from w ww.j a v a2 s . c o m trainOnInstance(inst); }
From source file:nlpmusic.StringClusterer.java
public static Instances listLoad(ArrayList<String> list) { FastVector attributes = new FastVector(); attributes.addElement(new Attribute("attr", (FastVector) null)); Instances datas = new Instances("Strings", attributes, 0); for (String str : list) { DenseInstance inst = new DenseInstance(1); inst.setValue(datas.attribute(0), str); datas.add(inst);//from ww w.ja v a 2 s . c o m } return datas; }
From source file:org.barcelonamedia.uima.CAS2WekaInstance.java
License:Open Source License
private static DenseInstance toWekaInternalInstance(List<AttributeValue> attributeValues, Instances wekaInstances) throws CASException { double[] zeroValues = new double[wekaInstances.numAttributes()]; Arrays.fill(zeroValues, 0.0d); DenseInstance wekaInstance = new DenseInstance(1.0d, zeroValues); wekaInstance.setDataset(wekaInstances); Iterator<AttributeValue> attributeValuesIterator = attributeValues.iterator(); while (attributeValuesIterator.hasNext()) { String value = null;//ww w . j a v a2 s .c om String attributeName = null; AttributeValue attributeValue = attributeValuesIterator.next(); attributeName = attributeValue.getAttributeName(); Attribute attribute = wekaInstances.attribute(attributeName); if (attribute == null) continue; if (attributeValue instanceof NumericAttributeValue) { value = ((NumericAttributeValue) attributeValue).getValue(); wekaInstance.setValue(attribute, Double.parseDouble(value)); } else if (attributeValue instanceof DateAttributeValue) { //this isn't actually very smart.... I need to understand this better //any volunteers for the four lines of code I need here? value = ((DateAttributeValue) attributeValue).getValue(); wekaInstance.setValue(attribute, value); } else if (attributeValue instanceof NominalAttributeValue) { value = ((NominalAttributeValue) attributeValue).getValue(); int valueIndex = attribute.indexOfValue(value); wekaInstance.setValue(attribute, (double) valueIndex); } else if (attributeValue instanceof StringAttributeValue) { value = ((StringAttributeValue) attributeValue).getValue(); wekaInstance.setValue(attribute, value); } } Enumeration attributes = wekaInstances.enumerateAttributes(); while (attributes.hasMoreElements()) { Attribute attribute = (Attribute) attributes.nextElement(); if (attribute.isNumeric() && wekaInstance.isMissing(attribute)) { wekaInstance.setValue(attribute, 0); } } return wekaInstance; }
From source file:org.textmin.tubes.dtm.decorator.InstancesBuilder.java
public Instances buildInstances(String rel, String[] classes) { ArrayList<String> classNominal = new ArrayList<>(classes.length); classNominal.addAll(Arrays.asList(classes)); Attribute classesAttr = new Attribute("__TheClass", classNominal); ArrayList<Attribute> attributes = new ArrayList<>(termCount() + 1); attributes.add(classesAttr);//from w ww . j a v a2s. c o m termSet().forEach(e -> attributes.add(new Attribute(e))); Instances resultInstances = new Instances(rel, attributes, documentCount()); resultInstances.setClassIndex(0); for (String d : documentSet()) { DenseInstance docInstance = new DenseInstance(attributes.size()); docInstance.setValue(classesAttr, getClass(d)); for (int i = 1; i < attributes.size(); i++) { Attribute attr = attributes.get(i); docInstance.setValue(i, getValue(d, attr.name())); } resultInstances.add(docInstance); } return resultInstances; }
From source file:PointAnalyser.Main.java
public static int classifyC45Instance(ArrayList<String> inst) throws Exception { // ConverterUtils.DataSource source = new ConverterUtils.DataSource("Z:\\\\shared from vm\\\\fifthset\\\\newmixed.csv"); // Instances data = source.getDataSet(); // setting class attribute if the data format does not provide this information // For example, the XRFF format saves the class attribute information as well // if (data.classIndex() == -1) { // data.setClassIndex(data.numAttributes() - 1); // }// ww w .j a v a 2s . c om NumericToNominal nmf = new NumericToNominal(); nmf.setInputFormat(data); // data = Filter.useFilter(data, nmf); // build a c4.5 classifier // eval // Evaluation eval = new Evaluation(data); //eval.crossValidateModel(tree, data, 10, new Random(1)); // System.out.println(eval.toSummaryString()); // System.out.println(eval.toMatrixString()); // System.out.println(eval.toClassDetailsString()); //tree.classifyInstance(null) Attribute a = new Attribute("ring(dragoon)"); Attribute b = new Attribute("ring(zerg1)"); Attribute c = new Attribute("ring(zerg2)"); Attribute d = new Attribute("ring(zerg3)"); ArrayList<String> classVal = new ArrayList<String>(); classVal.add("safe"); Attribute e = new Attribute("@@class@@", classVal); ArrayList<Attribute> attributeList = new ArrayList<Attribute>(); attributeList.add(a); attributeList.add(b); attributeList.add(c); attributeList.add(d); attributeList.add(e); Instances dataSet = new Instances("TestInstances", attributeList, 0); dataSet = Filter.useFilter(dataSet, nmf); dataSet.setClassIndex(dataSet.numAttributes() - 1); DenseInstance ins = new DenseInstance(dataSet.numAttributes()); dataSet.add(ins); ins.setDataset(dataSet); ins.setValue(a, Integer.valueOf(inst.get(0))); ins.setValue(b, Integer.valueOf(inst.get(1))); ins.setValue(c, Integer.valueOf(inst.get(2))); ins.setValue(d, Integer.valueOf(inst.get(3))); return (int) tree.classifyInstance(ins); }
From source file:PointAnalyser.Main.java
public static int classifyNNInstance(ArrayList<String> inst) throws Exception { NumericToNominal nmf = new NumericToNominal(); nmf.setInputFormat(data);/*from w w w.ja v a 2 s .com*/ Attribute a = new Attribute("ring(dragoon)"); Attribute b = new Attribute("ring(zerg1)"); Attribute c = new Attribute("ring(zerg2)"); Attribute d = new Attribute("ring(zerg3)"); ArrayList<String> classVal = new ArrayList<String>(); classVal.add("safe"); Attribute e = new Attribute("@@class@@", classVal); ArrayList<Attribute> attributeList = new ArrayList<Attribute>(); attributeList.add(a); attributeList.add(b); attributeList.add(c); attributeList.add(d); attributeList.add(e); Instances dataSet = new Instances("TestInstances", attributeList, 0); dataSet = Filter.useFilter(dataSet, nmf); dataSet.setClassIndex(dataSet.numAttributes() - 1); DenseInstance ins = new DenseInstance(dataSet.numAttributes()); dataSet.add(ins); ins.setDataset(dataSet); ins.setValue(a, Integer.valueOf(inst.get(0))); ins.setValue(b, Integer.valueOf(inst.get(1))); ins.setValue(c, Integer.valueOf(inst.get(2))); ins.setValue(d, Integer.valueOf(inst.get(3))); return (int) nn.classifyInstance(ins); }