List of usage examples for weka.core Instance setValue
public void setValue(Attribute att, String value);
From source file:tclass.WekaBridge.java
License:Open Source License
/** * Makes an instances objects. //from ww w.j a v a2 s . c o m */ public static Instances makeInstances(ClassStreamEventsVecI csevi, ClassDescVecI cdvi, EventDescVecI edvi, int evPos, boolean ignoreClasses, boolean ignoreTime) throws Exception { // System.out.println("Asked to ignore classes."); Instances retval; // Ok, first convert attributes. StreamEventsVecI sevi = csevi.getStreamEventsVec(); ClassificationVecI cvi = csevi.getClassVec(); // System.out.println("Event Desc Vec = " + edvi); int numAtts = edvi.elAt(evPos).numParams(); if (ignoreTime) { numAtts = numAtts - 1; } FastVector atts = makeAttVector(edvi.elAt(evPos), ignoreTime); if (!ignoreClasses) { int size = cdvi.size(); FastVector classes = new FastVector(size); for (int i = 0; i < size; i++) { classes.addElement(cdvi.getClassLabel(i)); } atts.addElement(new Attribute("class", classes)); } int size = csevi.size(); retval = new Instances(edvi.elName(evPos), atts, size); if (!ignoreClasses) { retval.setClassIndex(numAtts); } else { retval.setClassIndex(-1); } for (int i = 0; i < size; i++) { // Get events of this type: EventVecI evi = sevi.elAt(i).getEvents(evPos); int numEvents = evi.size(); for (int j = 0; j < numEvents; j++) { // System.out.println("Adding event " + j + " of stream " + i); Instance thisInst = new DenseInstance(atts.size()); thisInst.setDataset(retval); EventI thisEvent = evi.elAt(j); for (int k = (ignoreTime ? 1 : 0); k < edvi.elAt(evPos).numParams(); k++) { thisInst.setValue(k - (ignoreTime ? 1 : 0), thisEvent.valOf(k)); } if (!ignoreClasses) { thisInst.setValue(numAtts, cdvi.getClassLabel(cvi.elAt(i).getRealClass())); } retval.add(thisInst); } } return retval; }
From source file:tclass.WekaBridge.java
License:Open Source License
public static Instances makeInstances(ClassStreamAttValVecI csavvi, String name) throws Exception { StreamAttValVecI origData = csavvi.getStreamAttValVec(); AttDescVecI format = origData.getDescription(); ClassificationVecI classes = csavvi.getClassVec(); ClassDescVecI classInfo = classes.getClassDescVec(); FastVector instanceDesc = makeAttVector(format, classInfo); int numInstances = origData.size(); int numAtts = format.size(); Instances retval = new Instances(name, instanceDesc, numInstances); retval.setClassIndex(numAtts); // Set class to last attribute. for (int i = 0; i < numInstances; i++) { Instance thisInst = new DenseInstance(numAtts + 1); // To include the class. thisInst.setDataset(retval);//from w w w. j ava 2s. co m StreamAttValI thisStream = origData.elAt(i); for (int j = 0; j < numAtts; j++) { thisInst.setValue(j, thisStream.getAtt(j)); } thisInst.setValue(numAtts, classInfo.getClassLabel(classes.elAt(i).getRealClass())); retval.add(thisInst); } return retval; }
From source file:TcpdumpExtractor.TcpdumpExtractor.java
public void addIDSInstance(RealTimeFeature newRealTimeFeature) { Instance NewInstance = new Instance(26); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(0), newRealTimeFeature.getDuration()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(1), newRealTimeFeature.getProtocol()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(2), newRealTimeFeature.getConnFlag()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(3), newRealTimeFeature.getNumPackets()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(4), newRealTimeFeature.getService()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(5), newRealTimeFeature.getNumTcpFin()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(6), newRealTimeFeature.getNumTcpSyn()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(7), newRealTimeFeature.getNumTcpReset()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(8), newRealTimeFeature.getNumTcpPush()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(9), newRealTimeFeature.getNumTcpAck()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(10), newRealTimeFeature.getNumTcpUrg()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(11), newRealTimeFeature.getNumPktSrc()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(12), newRealTimeFeature.getNumPktDst()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(13), newRealTimeFeature.getSrcBytes()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(14), newRealTimeFeature.getDstBytes()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(15), newRealTimeFeature.getTimeBaseFeature().getNumSrc()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(16), newRealTimeFeature.getTimeBaseFeature().getNumSrcSamePort()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(17), newRealTimeFeature.getTimeBaseFeature().getNumSrcDiffPort()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(18), newRealTimeFeature.getTimeBaseFeature().getNumSYNSameSrc()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(19), newRealTimeFeature.getTimeBaseFeature().getNumRSTSameSrc()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(20), newRealTimeFeature.getTimeBaseFeature().getNumDst()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(21), newRealTimeFeature.getTimeBaseFeature().getNumDstSamePort()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(22), newRealTimeFeature.getTimeBaseFeature().getNumDstDiffPort()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(23), newRealTimeFeature.getTimeBaseFeature().getNumSYNSameDst()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(24), newRealTimeFeature.getTimeBaseFeature().getNumRSTSameDst()); NewInstance.setValue((Attribute) IDSRealtimeAttributeSet.elementAt(25), connectionClass); IDSmain.IDSInstances.add(NewInstance); }
From source file:testtubesclassifier.MyKmeans.java
public Instance updateCentroid(Instances centroidCluster) { double[] newMean = new double[centroidCluster.numAttributes()]; for (int i = 0; i < centroidCluster.numAttributes() - 2; i++) { newMean[i] = centroidCluster.meanOrMode(i); }//from w w w . ja va 2s . c om Instance returnInstance = new DenseInstance(centroidCluster.numAttributes()); for (int i = 0; i < newMean.length; i++) { returnInstance.setValue(centroidCluster.attribute(i), newMean[i]); } System.out.println("New centroid " + returnInstance); return returnInstance; }
From source file:tml.utils.DistanceLib.java
License:Apache License
public static double jensenShannon(Instance inst1, Instance inst2) { Instance averageInst = new Instance(inst1.numAttributes()); for (int i = 0; i < inst1.numAttributes(); i++) { averageInst.setValue(i, (inst1.value(i) + inst2.value(i)) / 2); }/*from w w w .j a v a 2 s. c om*/ double divergence = (kullbackLeibler(inst1, averageInst) + kullbackLeibler(inst2, averageInst)) / 2; return divergence; }
From source file:tml.vectorspace.factorisation.MultiDimensionalScalingNR.java
License:Apache License
public Instances scale(Instances instances) { // approximation error error = 0.0;//from w w w. j a v a 2 s . co m double error_previous; // number of points int n = instances.numInstances(); // distance between points in the p-dimensional layout d = new Matrix(n, n); Matrix d_previous; // dissimilarity between vectors d_hat = new Matrix(n, n); // points instances FastVector attributes = new FastVector(p); attributes.addElement(new Attribute("X")); attributes.addElement(new Attribute("Y")); Instances x = new Instances("MDS", attributes, instances.numInstances()); Instances x_previous; // initialise points sequence ArrayList<Integer> kseq = new ArrayList<Integer>(); for (int k = 0; k < n; k++) { kseq.add(k); } // initialise x if (initialX != null) { x = new Instances(initialX); } else { Random rand = new Random(); for (int k = 0; k < n; k++) { Instance x_inst = new Instance(p); x_inst.setValue(X, rand.nextDouble() - rand.nextInt(1)); x_inst.setValue(Y, rand.nextDouble() - rand.nextInt(1)); x.add(x_inst); } } // calculate d for (int j = 0; j < n; j++) { for (int i = 0; i < j; i++) { double distance = this.distance(x.instance(i), x.instance(j)); d.set(i, j, distance); d.set(j, i, distance); double dissimilarity = this.dissimilarity(instances.instance(i), instances.instance(j)); d_hat.set(i, j, dissimilarity); d_hat.set(j, i, dissimilarity); if (d_hat.get(i, j) != 0) { error += Math.pow(d.get(i, j) - d_hat.get(i, j), 2) / Math.pow(d_hat.get(i, j), 2); } } } // record previous results error_previous = error; d_previous = d.copy(); x_previous = new Instances(x); // start of Newton-Raphson method logger.info("Starting Newton-Raphson MDS."); for (int iter = 0; iter < maxIterations; iter++) { // randomise points sequence to ensure faster convergence Collections.shuffle(kseq); for (int k : kseq) { Matrix gradient = new Matrix(p, 1); Matrix hessian = new Matrix(p, p); // calculate gradient vector for (int a = 0; a < p; a++) { double sum = 0; for (int l = 0; l < n; l++) { if (k != l) { if (d.get(k, l) != 0 && d_hat.get(k, l) != 0) { sum += ((d.get(k, l) - d_hat.get(k, l)) / (d.get(k, l) * Math.pow(d_hat.get(k, l), 2))) * (x.instance(k).value(a) - x.instance(l).value(a)); } } } gradient.set(a, 0, 2 * sum); } // calculate hessian matrix for (int a = 0; a < p; a++) { for (int b = 0; b < p; b++) { double sum = 0.0; if (a != b) { for (int l = 0; l < n; l++) { if (k != l) { if (d.get(k, l) != 0 && d_hat.get(k, l) != 0) { sum += ((x.instance(k).value(a) - x.instance(l).value(a)) * (x.instance(k).value(b) - x.instance(l).value(b))) / (Math.pow(d.get(k, l), 3) * d_hat.get(k, l)); } } } sum = 2 * sum; } else { for (int l = 0; l < n; l++) { if (k != l) { if (d_hat.get(k, l) != 0 && d.get(k, l) != 0) { sum += (1.0 / Math.pow(d_hat.get(k, l), 2)) - (Math.pow(d.get(k, l), 2) - Math.pow((x.instance(k).value(a) - x.instance(l).value(a)), 2)) / (Math.pow(d.get(k, l), 3) * d_hat.get(k, l)); } } } sum = 2 * sum; } hessian.set(a, b, sum); } } // update x Matrix x_k = new Matrix(x.instance(k).toDoubleArray(), p); Matrix x_k_tilda = x_k.minus(hessian.inverse().times(gradient)); x.instance(k).setValue(X, x_k_tilda.get(X, 0)); x.instance(k).setValue(Y, x_k_tilda.get(Y, 0)); } // calculate d and error error = 0; for (int j = 0; j < n; j++) { for (int i = 0; i < j; i++) { double distance = this.distance(x.instance(i), x.instance(j)); d.set(i, j, distance); d.set(j, i, distance); if (d_hat.get(i, j) != 0) { error += Math.pow(d.get(i, j) - d_hat.get(i, j), 2) / Math.pow(d_hat.get(i, j), 2); } } } if (error < error_previous) { logger.debug(iter + ".\t error " + error); if (error_previous - error <= tolerence) { break; } error_previous = error; d_previous = d.copy(); x_previous = new Instances(x); } else // invalidates last run { x = new Instances(x_previous); d = d_previous.copy(); } } logger.info("Finished Newton-Raphson MDS."); return x; }
From source file:tml.vectorspace.factorisation.PrincipalCoordinateAnalysis.java
License:Apache License
public Instances scale(Instances instances) { // number of points int n = instances.numInstances(); // distance matrix Matrix d = new Matrix(n, n); Matrix G = new Matrix(n, n); // points instances FastVector attributes = new FastVector(p); attributes.addElement(new Attribute("X")); attributes.addElement(new Attribute("Y")); Instances x = new Instances("PCO", attributes, instances.numInstances()); // calculate distance matrix for (int j = 0; j < n; j++) { for (int i = 0; i < j; i++) { double distance = this.distance(instances.instance(i), instances.instance(j)); d.set(i, j, distance);//from w w w .j a va2s .c o m d.set(j, i, distance); } } // create centered matrix G by centering the elements of A Matrix A = d.arrayTimes(d).times((double) -1 / 2); Matrix B = Matrix.identity(n, n).minus(new Matrix(n, n, 1).times((double) 1 / n)); G = B.times(A).times(B); // eigenvalue decomposition EigenvalueDecomposition eig = G.eig(); Matrix eigenvalues = eig.getD(); Matrix eigenvectors = eig.getV(); // output eigenvectors as the principal coordinate axes, and normalise // them by dividing by the square root of their corresponding eigenvalue. for (int i = 0; i < n; i++) { Instance instance = new Instance(p); instance.setValue(X, eigenvectors.get(i, X) / Math.copySign(Math.sqrt(Math.abs(eigenvalues.get(X, X))), eigenvalues.get(X, X))); instance.setValue(Y, eigenvectors.get(i, Y) / Math.copySign(Math.sqrt(Math.abs(eigenvalues.get(Y, Y))), eigenvalues.get(Y, Y))); x.add(instance); } return x; }
From source file:tr.gov.ulakbim.jDenetX.streams.filters.AddNoiseFilter.java
License:Open Source License
public Instance nextInstance() { Instance inst = (Instance) this.inputStream.nextInstance().copy(); for (int i = 0; i < inst.numAttributes(); i++) { double noiseFrac = i == inst.classIndex() ? this.classNoiseFractionOption.getValue() : this.attNoiseFractionOption.getValue(); if (inst.attribute(i).isNominal()) { DoubleVector obs = (DoubleVector) this.attValObservers.get(i); if (obs == null) { obs = new DoubleVector(); this.attValObservers.set(i, obs); }// w w w.ja va2 s .c o m int originalVal = (int) inst.value(i); if (!inst.isMissing(i)) { obs.addToValue(originalVal, inst.weight()); } if ((this.random.nextDouble() < noiseFrac) && (obs.numNonZeroEntries() > 1)) { do { inst.setValue(i, this.random.nextInt(obs.numValues())); } while (((int) inst.value(i) == originalVal) || (obs.getValue((int) inst.value(i)) == 0.0)); } } else { GaussianEstimator obs = (GaussianEstimator) this.attValObservers.get(i); if (obs == null) { obs = new GaussianEstimator(); this.attValObservers.set(i, obs); } obs.addObservation(inst.value(i), inst.weight()); inst.setValue(i, inst.value(i) + this.random.nextGaussian() * obs.getStdDev() * noiseFrac); } } return inst; }
From source file:tr.gov.ulakbim.jDenetX.streams.generators.AgrawalGenerator.java
License:Open Source License
public Instance nextInstance() { double salary = 0, commission = 0, hvalue = 0, loan = 0; int age = 0, elevel = 0, car = 0, zipcode = 0, hyears = 0, group = 0; boolean desiredClassFound = false; while (!desiredClassFound) { // generate attributes salary = 20000.0 + 130000.0 * this.instanceRandom.nextDouble(); commission = (salary >= 75000.0) ? 0 : (10000.0 + 65000.0 * this.instanceRandom.nextDouble()); // true to c implementation: // if (instanceRandom.nextDouble() < 0.5 && salary < 75000.0) // commission = 10000.0 + 65000.0 * instanceRandom.nextDouble(); age = 20 + this.instanceRandom.nextInt(61); elevel = this.instanceRandom.nextInt(5); car = this.instanceRandom.nextInt(20); zipcode = this.instanceRandom.nextInt(9); hvalue = (9.0 - zipcode) * 100000.0 * (0.5 + this.instanceRandom.nextDouble()); hyears = 1 + this.instanceRandom.nextInt(30); loan = this.instanceRandom.nextDouble() * 500000.0; // determine class group = classificationFunctions[this.functionOption.getValue() - 1].determineClass(salary, commission, age, elevel, car, zipcode, hvalue, hyears, loan); if (!this.balanceClassesOption.isSet()) { desiredClassFound = true;/*w ww. j ava 2 s .c o m*/ } else { // balance the classes if ((this.nextClassShouldBeZero && (group == 0)) || (!this.nextClassShouldBeZero && (group == 1))) { desiredClassFound = true; this.nextClassShouldBeZero = !this.nextClassShouldBeZero; } // else keep searching } } // perturb values if (this.peturbFractionOption.getValue() > 0.0) { salary = perturbValue(salary, 20000, 150000); if (commission > 0) { commission = perturbValue(commission, 10000, 75000); } age = (int) Math.round(perturbValue(age, 20, 80)); hvalue = perturbValue(hvalue, (9.0 - zipcode) * 100000.0, 0, 135000); hyears = (int) Math.round(perturbValue(hyears, 1, 30)); loan = perturbValue(loan, 0, 500000); } // construct instance InstancesHeader header = getHeader(); Instance inst = new DenseInstance(header.numAttributes()); inst.setValue(0, salary); inst.setValue(1, commission); inst.setValue(2, age); inst.setValue(3, elevel); inst.setValue(4, car); inst.setValue(5, zipcode); inst.setValue(6, hvalue); inst.setValue(7, hyears); inst.setValue(8, loan); inst.setDataset(header); inst.setClassValue(group); return inst; }
From source file:tr.gov.ulakbim.jDenetX.streams.generators.LEDGenerator.java
License:Open Source License
public Instance nextInstance() { InstancesHeader header = getHeader(); Instance inst = new DenseInstance(header.numAttributes()); inst.setDataset(header);//from w ww. j av a2s . c o m int selected = this.instanceRandom.nextInt(10); for (int i = 0; i < 7; i++) { if ((1 + (this.instanceRandom.nextInt(100))) <= this.noisePercentageOption.getValue()) { inst.setValue(i, originalInstances[selected][i] == 0 ? 1 : 0); } else { inst.setValue(i, originalInstances[selected][i]); } } if (!this.suppressIrrelevantAttributesOption.isSet()) { for (int i = 0; i < NUM_IRRELEVANT_ATTRIBUTES; i++) { inst.setValue(i + 7, this.instanceRandom.nextInt(2)); } } inst.setClassValue(selected); return inst; }