List of usage examples for weka.core Instance setDataset
public void setDataset(Instances instances);
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(); }