List of usage examples for weka.core Instance numAttributes
public int numAttributes();
From source file:org.if4071.myann.TopologyModel.java
public void insertDataToInputNodes(Instance inputData) { for (int i = 0; i < inputData.numAttributes() - 1; i++) { nodes.get(i).setOutput(inputData.value(i)); }// w w w. j a v a2 s . com }
From source file:org.iobserve.analysis.behavior.clustering.birch.model.ClusteringFeature.java
License:Apache License
/** Constructor for a clustering feature * representing an instance vector.//w w w .j av a 2s . c o m * @param instance the instance to represent. */ public ClusteringFeature(final Instance instance) { this.number = 1; this.linearSum = new double[instance.numAttributes()]; this.squareSum = new double[instance.numAttributes()]; for (int i = 0; i < instance.numAttributes(); i++) { this.linearSum[i] = instance.value(i); this.squareSum[i] = this.linearSum[i] * this.linearSum[i]; } }
From source file:org.iobserve.analysis.behavior.clustering.hierarchical.GapStatisticMethod.java
License:Apache License
/** * Finds min and max values for each attribute of the instances. */// w w w.ja va 2 s. c o m private void findBoundaryValues() { final List<Double> minBoundaryValues = new ArrayList<>(); final List<Double> maxBoundaryValues = new ArrayList<>(); for (int i = 0; i < this.instances.numInstances(); i++) { final Instance instance = this.instances.instance(i); for (int j = 0; j < instance.numAttributes(); j++) { // Initialization of both min and max lists. if (minBoundaryValues.size() == j) { minBoundaryValues.add(j, Double.POSITIVE_INFINITY); } if (maxBoundaryValues.size() == j) { maxBoundaryValues.add(j, Double.NEGATIVE_INFINITY); } final double minValue = minBoundaryValues.get(j); final double maxValue = maxBoundaryValues.get(j); final double attributeValue = instance.value(j); if (attributeValue < minValue) { minBoundaryValues.remove(j); minBoundaryValues.add(j, attributeValue); } if (attributeValue >= maxValue) { maxBoundaryValues.remove(j); maxBoundaryValues.add(j, attributeValue); } } } this.setMinAttributeValues(minBoundaryValues); this.setMaxAttributeValues(maxBoundaryValues); }
From source file:org.iobserve.analysis.behavior.filter.BehaviorModelCreationStage.java
License:Apache License
/** * create a BehaviorModel from Instance. * * @param instances//from ww w .ja v a 2 s . c om * instances containing the attribute names * @param instance * instance containing the attributes * @return behavior model if relevant */ private Optional<BehaviorModel> createBehaviorModel(final Instances instances, final Instance instance) { final int size = instance.numAttributes(); final BehaviorModel behaviorModel = new BehaviorModel(); for (int i = 0; i < size; i++) { final Attribute attribute = instances.attribute(i); final String attributeName = attribute.name(); final Double attributeValue = instance.value(attribute); if (this.matchEdge(attributeName)) { final Optional<EntryCallEdge> edge = this.createEdge(attributeName, attributeValue); if (edge.isPresent()) { behaviorModel.addEdge(edge.get(), true); } } else if (this.matchNode(attributeName)) { final Optional<EntryCallNode> node = this.createNode(attributeName, attributeValue); if (node.isPresent()) { behaviorModel.addNode(node.get(), true); } } } if (behaviorModel.getEdges().isEmpty() && behaviorModel.getNodes().isEmpty()) { return Optional.empty(); } return Optional.of(behaviorModel); }
From source file:org.iobserve.analysis.behavior.filter.ClusterMerger.java
License:Apache License
@Override protected void execute(final Map<Integer, List<Pair<Instance, Double>>> clustering) throws Exception { /**/*from w w w . j a v a2 s. c om*/ * simply pick the first instance of every cluster lookup attributes to build a new * instances Object */ Instance instance = clustering.entrySet().iterator().next().getValue().get(0).getElement1(); final FastVector attributes = new FastVector(); for (int j = 0; j < instance.numAttributes(); j++) { attributes.addElement(instance.attribute(j)); } final Instances result = new Instances("Clustering Result", attributes, clustering.size()); for (final List<Pair<Instance, Double>> entry : clustering.values()) { if (!entry.isEmpty()) { instance = entry.get(0).getElement1(); result.add(instance); } } if (ClusterMerger.LOGGER.isDebugEnabled()) { this.printInstances(result); } this.outputPort.send(result); }
From source file:org.iobserve.analysis.behavior.filter.ClusterMerger.java
License:Apache License
private void printInstances(final Instances instances) { for (int i = 0; i < instances.numInstances(); i++) { ClusterMerger.LOGGER.debug("***************************"); ClusterMerger.LOGGER.debug("Cluster {}", i); ClusterMerger.LOGGER.debug("***************************"); final Instance instance = instances.instance(i); for (int a = 0; a < instance.numAttributes(); a++) { ClusterMerger.LOGGER.debug("{} : {}", instances.attribute(a).name(), instance.value(a)); }/*w w w . j ava2s. c o m*/ } }
From source file:org.iobserve.analysis.behavior.filter.VectorQuantizationClusteringStage.java
License:Apache License
private void printInstances(final ClusteringResults results) { results.printClusteringResults();/*from w ww.j a v a2 s . c o m*/ final Instances centroids = results.getClusteringMetrics().getCentroids(); for (int i = 0; i < centroids.numInstances(); i++) { String logString = ""; logString += "***************************"; logString += "Cluster " + i; logString += "***************************"; final Instance instance = centroids.instance(i); for (int a = 0; a < instance.numAttributes(); a++) { logString += centroids.attribute(a).name() + " : " + instance.value(a); } VectorQuantizationClusteringStage.LOGGER.info(logString); } }
From source file:org.knime.knip.suise.node.boundarymodel.contourdata.IntervalRule.java
License:Open Source License
/** * {@inheritDoc}//from w ww . ja va 2 s.c om */ @Override public void updateClassifier(Instance instance) throws Exception { if (m_min == null || m_max == null) { m_min = new DenseInstance(1.0, instance.toDoubleArray()); m_max = new DenseInstance(1.0, instance.toDoubleArray()); } else { for (int a = 0; a < instance.numAttributes() - 1; a++) { m_min.setValue(a, Math.min(instance.value(a), m_min.value(a))); m_max.setValue(a, Math.max(instance.value(a), m_max.value(a))); } } }
From source file:org.knime.knip.suise.node.boundarymodel.contourdata.IntervalRule.java
License:Open Source License
/** * {@inheritDoc}/*w w w . j av a2s .c o m*/ */ @Override public double[] distributionForInstance(Instance instance) throws Exception { for (int a = 0; a < instance.numAttributes() - 1; a++) { if (instance.value(a) < m_min.value(a) || instance.value(a) > m_max.value(a)) { return new double[] { 1, 0 }; } } return new double[] { 0, 1 }; // int fit = 0; // for (int a = 0; a < instance.numAttributes() - 1; a++) { // if (instance.value(a) >= m_min.value(a) // || instance.value(a) <= m_max.value(a)) { // fit++; // } // } // double r = (double) fit / (instance.numAttributes() - 1); // return new double[] { 1 - r, r }; }
From source file:org.knime.knip.suise.ops.BuildTrainingData.java
License:Open Source License
/** * {@inheritDoc}//from w w w. j a v a 2 s. co m */ @Override public Instances compute(RandomAccessibleInterval<LabelingType<L>> lab, Img<T> img, Instances r) { Random rand = new Random(); double[] extent = new double[lab.numDimensions()]; for (int d = 0; d < m_dimIndices.length; d++) { extent[m_dimIndices[d]] = lab.max(m_dimIndices[d]); } RectangleRegionOfInterest roi = new RectangleRegionOfInterest(new double[lab.numDimensions()], extent); Cursor<LabelingType<L>> labCur = roi.getIterableIntervalOverROI(lab).localizingCursor(); OutOfBounds<T> imgRA = new OutOfBoundsBorder<T>(img); LabelRegions<L> regions = new LabelRegions<L>(lab); // get the class distributions Map<L, Double> classDistr = null; if (m_balanceInstancePerClass) { long sum = 0; long area; Collection<L> labels = regions.getExistingLabels(); classDistr = new HashMap<L, Double>(labels.size()); for (L label : labels) { area = regions.getLabelRegion(label).size(); sum += area; classDistr.put(label, new Double(area)); } // determine the new sampling rate for each class individually double instancesPerClass = (double) sum / (double) labels.size(); for (L label : labels) { Double sampleRate = instancesPerClass / classDistr.get(label) * m_samplingRate; classDistr.put(label, sampleRate); } } long[] tmpPos = new long[imgRA.numDimensions()]; while (labCur.hasNext()) { labCur.fwd(); for (int d = 0; d < m_dimIndices.length; d++) { imgRA.setPosition(labCur.getLongPosition(m_dimIndices[d]), m_dimIndices[d]); if (imgRA.isOutOfBounds()) { imgRA.localize(tmpPos); NodeLogger.getLogger(getClass()).warn("Labeling reaches beyond the feature image. Position " + Arrays.toString(tmpPos) + " skipped."); continue; } } if (!labCur.get().isEmpty()) { if (m_balanceInstancePerClass) { if (rand.nextDouble() >= classDistr.get(labCur.get().iterator().next())) { continue; } } else { if (rand.nextDouble() >= m_samplingRate) { continue; } } double[] featVec = new double[(int) img.dimension(m_featDim)]; for (int f = 0; f < img.dimension(m_featDim); f++) { imgRA.setPosition(f, m_featDim); featVec[f] = imgRA.get().getRealDouble(); } for (L classLabel : labCur.get()) { Instance instance = new DenseInstance(1.0, featVec); instance.insertAttributeAt(instance.numAttributes()); instance.setDataset(r); instance.setClassValue(classLabel.toString()); r.add(instance); } } } return r; }