Example usage for weka.core Instance setValue

List of usage examples for weka.core Instance setValue

Introduction

In this page you can find the example usage for weka.core Instance setValue.

Prototype

public void setValue(Attribute att, String value);

Source Link

Document

Sets a value of an nominal or string attribute to the given value.

Usage

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;
}