Example usage for weka.core Instance setDataset

List of usage examples for weka.core Instance setDataset

Introduction

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

Prototype

public void setDataset(Instances instances);

Source Link

Document

Sets the reference to the dataset.

Usage

From source file:mx.itesm.web2mexadl.mvc.MvcAnalyzer.java

License:Open Source License

/**
 * Generate the architecture document associated to the specified web
 * application data.//from  www  .  j ava  2 s.  c  o  m
 * 
 * @param dependencies
 *            List containing the dependencies for each class to classify.
 * @param internalPackages
 *            Project's internal packages.
 * @return Map containing the classification layer for each class.
 * @throws Exception
 *             If an Exception occurs during classification.
 */
private static Map<String, Layer> generateArchitecture(final List<ClassDependencies> dependencies,
        final Map<String, Set<String>> internalPackages, final File outputDir) throws Exception {
    int viewCount;
    int modelCount;
    int instanceLayer;
    Instance instance;
    boolean valueFound;
    int controllerCount;
    Instances instances;
    String instanceType;
    String[] typeValues;
    Layer componentLayer;
    String[] suffixValues;
    Layer dependencyLayer;
    FastVector attributes;
    String[] externalApiValues;
    Map<String, Layer> returnValue;
    Set<String> currentPackageContent;
    Map<String, Layer> packagesClassification;
    Map<String, String[]> externalApiPackages;
    StringBuilder modelPackages;
    StringBuilder viewPackages;
    StringBuilder controllerPackages;

    // Model variables
    attributes = new FastVector();
    for (Variable variable : Variable.values()) {
        attributes.addElement(variable.getAttribute());
    }

    // Layer variable
    attributes.addElement(Layer.attribute);

    // Set the test instances, the Layer variable is unknown
    instances = new Instances("mvc", attributes, 0);
    instances.setClassIndex(Variable.values().length);

    // Valid suffixes to look for in the class names
    suffixValues = Util.getPropertyValues(Util.Variable.Suffix.getVariableName());

    // Valid file types to look for in the component names
    typeValues = Util.getPropertyValues(Util.Variable.Type.getVariableName());

    // Valid external api packages to look for in the classes dependencies
    externalApiValues = Util.getPropertyValues(Util.Variable.ExternalAPI.getVariableName());
    externalApiPackages = new HashMap<String, String[]>(externalApiValues.length);
    for (int i = 0; i < externalApiValues.length; i++) {
        if (!externalApiValues[i].equals("none")) {
            externalApiPackages.put(externalApiValues[i],
                    Util.getPropertyValues("externalApi." + externalApiValues[i] + ".packages"));
        }
    }

    returnValue = new HashMap<String, Layer>(dependencies.size());
    for (ClassDependencies classDependencies : dependencies) {
        // Variables + Layer
        instance = new Instance(Variable.values().length + 1);

        // Type
        instanceType = "java";
        for (String validType : typeValues) {
            if (classDependencies.getClassName().endsWith("." + validType)) {
                instanceType = validType;
                break;
            }
        }
        instance.setValue(Variable.Type.getAttribute(), instanceType);

        // ExternalAPI
        valueFound = false;
        externalApi: for (String externalApi : externalApiValues) {
            if (externalApi.equals("none")) {
                continue;
            }

            // Check if any of the class' external dependencies match with
            // one of the key external dependencies
            if (classDependencies.getExternalDependencies() != null) {
                for (String externalDependency : classDependencies.getExternalDependencies()) {
                    for (String externalPackage : externalApiPackages.get(externalApi)) {
                        if (externalDependency.toLowerCase().startsWith(externalPackage)) {
                            valueFound = true;
                            instance.setValue(Variable.ExternalAPI.getAttribute(), externalApi);
                            break externalApi;
                        }
                    }
                }
            }
        }

        // No key external dependency found
        if (!valueFound) {
            instance.setValue(Variable.ExternalAPI.getAttribute(), "none");
        }

        // Suffix
        valueFound = false;
        for (String suffix : suffixValues) {
            if (classDependencies.getClassName().toLowerCase().endsWith(suffix)) {
                valueFound = true;
                instance.setValue(Variable.Suffix.getAttribute(), suffix);
                break;
            }
        }

        // No key suffix found
        if (!valueFound) {
            instance.setValue(Variable.Suffix.getAttribute(), "none");
        }

        // Layer, the unknown variable
        instance.setMissing(Layer.attribute);
        instances.add(instance);
        instance.setDataset(instances);

        try {
            instanceLayer = (int) Util.classifier.classifyInstance(instance);
        } catch (Exception e) {
            // Default value
            instanceLayer = 0;
            logger.severe("Unable to classify: " + instance);
        }

        returnValue.put(classDependencies.getClassName(), Layer.values()[instanceLayer]);
        logger.info(
                classDependencies.getClassName() + " : " + returnValue.get(classDependencies.getClassName()));
    }

    // Check for any invalid relation
    viewPackages = new StringBuilder();
    modelPackages = new StringBuilder();
    controllerPackages = new StringBuilder();
    packagesClassification = new HashMap<String, Layer>(internalPackages.size());
    for (String currentPackage : internalPackages.keySet()) {
        modelCount = viewCount = controllerCount = 0;
        currentPackageContent = internalPackages.get(currentPackage);

        for (String component : currentPackageContent) {
            componentLayer = returnValue.get(component);
            if (componentLayer == Layer.Model) {
                modelCount++;
            } else if (componentLayer == Layer.View) {
                viewCount++;
            } else if (componentLayer == Layer.Controller) {
                controllerCount++;
            }
        }

        if ((modelCount > viewCount) && (modelCount > controllerCount)) {
            packagesClassification.put(currentPackage, Layer.Model);
            Util.addImplementationPackage(modelPackages, currentPackage);
        } else if ((viewCount > modelCount) && (viewCount > controllerCount)) {
            packagesClassification.put(currentPackage, Layer.View);
            Util.addImplementationPackage(viewPackages, currentPackage);
        } else if ((controllerCount > viewCount) && (controllerCount > modelCount)) {
            packagesClassification.put(currentPackage, Layer.Controller);
            Util.addImplementationPackage(controllerPackages, currentPackage);
        } else {
            packagesClassification.put(currentPackage, null);
        }
    }

    for (ClassDependencies classDependencies : dependencies) {
        // Code relations
        valueFound = false;
        componentLayer = returnValue.get(classDependencies.getClassName());
        if (classDependencies.getInternalDependencies() != null) {
            for (String internalDependency : classDependencies.getInternalDependencies()) {
                dependencyLayer = returnValue.get(internalDependency);

                if (!componentLayer.isValidRelation(dependencyLayer)) {
                    valueFound = true;
                    returnValue.put(classDependencies.getClassName(),
                            Layer.valueOf("Invalid" + componentLayer));
                    logger.info("Invalid relation detected between: " + classDependencies.getClassName()
                            + " and " + internalDependency);
                }
            }
        }

        // Package relations
        if (!valueFound) {
            dependencyLayer = packagesClassification.get(classDependencies.getPackageName());

            if ((dependencyLayer != null) && (componentLayer != dependencyLayer)) {
                returnValue.put(classDependencies.getClassName(), Layer.valueOf("Invalid" + componentLayer));
            }
        }
    }

    // Export MexADL architecture
    MvcAnalyzer.exportToMexADL(outputDir, modelPackages.toString(), controllerPackages.toString(),
            viewPackages.toString());

    return returnValue;
}

From source file:myclassifier.wekaCode.java

public static void classifyUnseenData(String[] attributes, Classifier classifiers, Instances data)
        throws Exception {
    Instance newInstance = new Instance(data.numAttributes());
    newInstance.setDataset(data);
    for (int i = 0; i < data.numAttributes() - 1; i++) {
        if (Attribute.NUMERIC == data.attribute(i).type()) {
            Double value = Double.valueOf(attributes[i]);
            newInstance.setValue(i, value);
        } else {//from ww  w .  j av a  2 s.  c  o  m
            newInstance.setValue(i, attributes[i]);
        }
    }

    double clsLabel = classifiers.classifyInstance(newInstance);
    newInstance.setClassValue(clsLabel);

    String result = data.classAttribute().value((int) clsLabel);

    System.out.println("Hasil Classify Unseen Data Adalah: " + result);
}

From source file:myclusterer.WekaCode.java

public static void classifyUnseenData(String[] attributes, Clusterer clusterer, Instances data)
        throws Exception {
    Instance newInstance = new Instance(data.numAttributes());
    newInstance.setDataset(data);
    for (int i = 0; i < data.numAttributes() - 1; i++) {
        if (Attribute.NUMERIC == data.attribute(i).type()) {
            Double value = Double.valueOf(attributes[i]);
            newInstance.setValue(i, value);
        } else {/*from   w  ww .  ja v a2 s.  co  m*/
            newInstance.setValue(i, attributes[i]);
        }
    }

    double clsLabel = clusterer.clusterInstance(newInstance);
    newInstance.setClassValue(clsLabel);

    String result = data.classAttribute().value((int) clsLabel);

    System.out.println("Hasil Classify Unseen Data Adalah: " + result);
}

From source file:NaiveBayesPckge.NaiveBayesMain.java

public static void addNewInstance(Instances instances) throws Exception {
    Scanner scan = new Scanner(System.in);
    ArrayList<Attribute> atts = new ArrayList<Attribute>();
    ArrayList<String> classVal = new ArrayList<String>();
    int nConclus = instances.attribute(instances.numAttributes() - 1).numValues();
    int numAttribut = instances.numAttributes();

    //buat nambah kesimpulan. Misal T dan F
    for (int i = 0; i < nConclus; i++) {
        classVal.add(instances.attribute(instances.numAttributes() - 1).value(i));
    }/*ww  w. j  a  v a2s  .  c  o m*/

    //buat nambahin attribut
    for (int i = 0; i < numAttribut - 1; i++) {
        atts.add(new Attribute(instances.attribute(i).name()));
    }
    atts.add(new Attribute(instances.attribute(numAttribut - 1).name(), classVal));

    double[] attValues = new double[numAttribut];
    System.out.print("Masukkan nilai : ");
    for (int i = 0; i < numAttribut - 1; i++) {
        attValues[i] = scan.nextDouble();
    }
    Discretize discretize = new Discretize();
    String s = scan.nextLine();

    Instance instance = new DenseInstance(1.0, attValues);

    instance.setDataset(instances);

    discretize.setInputFormat(instances);
    discretize.input(instance);

    int classify1 = (int) naive.classifyInstance(instance);
    System.out.print("Prediction Class : ");
    System.out.println(classVal.get(classify1));
}

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  ww .  j  av  a  2  s. co m*/
        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 String classify(String varOrder) {
    Instance instance = makeInstance(varOrder);
    instance.setDataset(data);
    return classify(instance);
}

From source file:net.sf.jclal.activelearning.multilabel.querystrategy.MultiLabelMMCQueryStrategy.java

License:Open Source License

/**
 * Trains the logistic regresion/* w ww . j a va  2 s.com*/
 */
public void trainLogisticRegresion() {

    try {

        // To clear the current instances in the transformed dataset
        newDataset.clear();

        // Each instance is transformed according to LR-based label
        // prediction method proposed

        Instances labeledSet = getLabelledData().getDataset();

        for (Instance instanceLabeled : labeledSet) {

            Instance newInstance = convertInstance(instanceLabeled);

            newInstance.setDataset(newDataset);

            newDataset.add(newInstance);
        }

        // To train the LR classifier
        logistic = new SimpleLogistic();

        logistic.buildClassifier(newDataset);

    } catch (Exception e) {

        Logger.getLogger(MultiLabelMMCQueryStrategy.class.getName()).log(Level.SEVERE, null, e);
    }

}

From source file:net.sf.jclal.activelearning.multilabel.querystrategy.MultiLabelMMCQueryStrategy.java

License:Open Source License

@Override
public double utilityInstance(Instance instance) {

    try {/* www .j av a 2  s.  c o  m*/

        // Convert the current instance according to LR-based method
        // proposed. The classifiersOutputs array stores the probability for the current instance
        Instance newInstance = convertInstance(instance);

        newInstance.setDataset(newDataset);

        // To classify the converted instance according to LR-based method
        double classes = logistic.classifyInstance(newInstance);

        double score = 0;

        int yl = 1;

        // Score calculation
        for (int l = 0; l < getNumLabels(); l++) {

            if (l > classes) {
                yl = -1;
            }

            score += (1 - yl * classifiersOutputs[l]) / 2;

        }

        return score;

    } catch (Exception e) {
        // TODO Auto-generated catch block
        Logger.getLogger(MultiLabelMMCQueryStrategy.class.getName()).log(Level.SEVERE, null, e);
    }

    return 0;
}

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  w  ww  .jav  a 2  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 w w. j a v  a2 s  .c  o  m
        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();
}