Search in sources :

Example 31 with Attribute

use of weka.core.Attribute in project chuidiang-ejemplos by chuidiang.

the class GenerateTestVessels method getData.

public static Instances getData() throws Exception {
    ArrayList<Attribute> atts = new ArrayList<>();
    Instances data;
    double[] vals;
    // Atributos, diciendo nombre y posibles valores. Si no se indica
    // nada, son numéricos.
    atts.add(new Attribute("type", Arrays.asList(types)));
    atts.add(new Attribute("size"));
    atts.add(new Attribute("vmax"));
    atts.add(new Attribute("vmin"));
    atts.add(new Attribute("mmsi", Arrays.asList("si", "no")));
    // Creamos el conjunto de datos, de momento vacío, indicando qué atributos
    // van a llevar.
    data = new Instances("MyData", atts, 0);
    // pateras
    for (int i = 0; i < 10; i++) {
        vals = getPatera(data.numAttributes());
        data.add(new DenseInstance(1.0, vals));
    }
    // lanchas
    for (int i = 0; i < 10; i++) {
        vals = getLancha(data.numAttributes());
        data.add(new DenseInstance(1.0, vals));
    }
    // barco
    for (int i = 0; i < 10; i++) {
        vals = getBarco(data.numAttributes());
        data.add(new DenseInstance(1.0, vals));
    }
    data.setClassIndex(0);
    return data;
}
Also used : Instances(weka.core.Instances) DenseInstance(weka.core.DenseInstance) Attribute(weka.core.Attribute) ArrayList(java.util.ArrayList)

Example 32 with Attribute

use of weka.core.Attribute in project mcib3d-core by mcib3d.

the class Attributes method addAttribute.

public void addAttribute(String name) {
    Attribute att = new Attribute(name);
    atts.add(att);
    attributes.put(name, att);
}
Also used : Attribute(weka.core.Attribute)

Example 33 with Attribute

use of weka.core.Attribute in project iobserve-analysis by research-iobserve.

the class JUnitTestsHierarchicalClustering method setupTestData.

/**
 * Create test data sets and their expected clustering results.
 *
 * @throws IOException
 *             when failing to write a CSV file to CSVOUTPUTPATH
 */
@Before
public void setupTestData() throws IOException {
    // Create Attribute names for the test data sets.
    final FastVector attVector = new FastVector(1);
    attVector.addElement(new Attribute("Attribute1"));
    attVector.addElement(new Attribute("Attribute2"));
    // Create a data set with two similar instances i1 and i2 with two attributes.
    final Instance i1one = new Instance(1.0, new double[] { 1.0, 2.0 });
    final Instance i2one = new Instance(1.0, new double[] { 1.5, 2.1 });
    final Instances instancesOne = new Instances("Instances", attVector, 2);
    instancesOne.add(i1one);
    instancesOne.add(i2one);
    i1one.setDataset(instancesOne);
    i2one.setDataset(instancesOne);
    this.setTestInstancesOneCluster(instancesOne);
    // Create expected result.
    final Map<Integer, List<Pair<Instance, Double>>> expResOne = new HashMap<>();
    expResOne.put(0, new LinkedList<Pair<Instance, Double>>());
    expResOne.get(0).add(new Pair<>(i1one, 1.0));
    expResOne.get(0).add(new Pair<>(i2one, 1.0));
    this.setExpectedResultsOneCluster(expResOne);
    /*
         * Create a data set with two similar instances i1 and i2 and one different instance i3 with
         * two attributes.
         */
    final Instance i1two = new Instance(1.0, new double[] { 1.0, 2.0 });
    final Instance i2two = new Instance(1.0, new double[] { 1.5, 2.1 });
    final Instance i3two = new Instance(1.0, new double[] { 1000.0, 1200.0 });
    final Instances instancesTwo = new Instances("Instances", attVector, 3);
    instancesTwo.add(i1two);
    instancesTwo.add(i2two);
    instancesTwo.add(i3two);
    i1two.setDataset(instancesTwo);
    i2two.setDataset(instancesTwo);
    i3two.setDataset(instancesTwo);
    this.setTestInstancesTwoClusters(instancesTwo);
    // Create expected result.
    final Map<Integer, List<Pair<Instance, Double>>> expResTwo = new HashMap<>();
    expResTwo.put(0, new LinkedList<Pair<Instance, Double>>());
    expResTwo.put(1, new LinkedList<Pair<Instance, Double>>());
    expResTwo.get(0).add(new Pair<>(i1two, 1.0));
    expResTwo.get(0).add(new Pair<>(i2two, 1.0));
    expResTwo.get(1).add(new Pair<>(i3two, 1.0));
    this.setExpectedResultsTwoCluster(expResTwo);
    // Write a CSV file for a clustering result which expects two clusters.
    final CSVSinkFilter csvFilter = new CSVSinkFilter();
    final Map<Double, List<Instance>> clusteringKVs = csvFilter.convertClusteringResultsToKVPair(expResTwo);
    csvFilter.createCSVFromClusteringResult(JUnitTestsHierarchicalClustering.CSVOUTPUTPATH, clusteringKVs);
}
Also used : FastVector(weka.core.FastVector) Attribute(weka.core.Attribute) Instance(weka.core.Instance) HashMap(java.util.HashMap) Instances(weka.core.Instances) CSVSinkFilter(org.iobserve.analysis.behavior.clustering.hierarchical.CSVSinkFilter) ArrayList(java.util.ArrayList) LinkedList(java.util.LinkedList) List(java.util.List) Pair(org.eclipse.net4j.util.collection.Pair) Before(org.junit.Before)

Example 34 with Attribute

use of weka.core.Attribute in project iobserve-analysis by research-iobserve.

the class AbstractClustering method createInstances.

/**
 * It transforms the user sessions(userSessions in form of counts of their called operation
 * signatures) to Weka instances that can be used for the clustering.
 *
 * @param countModel
 *            contains the userSessions in form of counts of called operation signatures
 * @param listOfDistinctOperationSignatures
 *            contains the extracted distinct operation signatures of the input
 *            entryCallSequenceModel
 * @return the Weka instances that hold the data that is used for the clustering
 */
protected Instances createInstances(final List<UserSessionAsCountsOfCalls> countModel, final List<String> listOfDistinctOperationSignatures) {
    final int numberOfDistinctOperationSignatures = listOfDistinctOperationSignatures.size();
    final FastVector fvWekaAttributes = new FastVector(numberOfDistinctOperationSignatures);
    for (int i = 0; i < numberOfDistinctOperationSignatures; i++) {
        final String attributeName = "Attribute" + i;
        final Attribute attribute = new Attribute(attributeName);
        fvWekaAttributes.addElement(attribute);
    }
    final Instances clusterSet = new Instances("CallCounts", fvWekaAttributes, countModel.size());
    for (final UserSessionAsCountsOfCalls userSession : countModel) {
        int indexOfAttribute = 0;
        final Instance instance = new Instance(numberOfDistinctOperationSignatures);
        for (int row = 0; row < listOfDistinctOperationSignatures.size(); row++) {
            instance.setValue((Attribute) fvWekaAttributes.elementAt(indexOfAttribute), userSession.getAbsoluteCountOfCalls()[row]);
            indexOfAttribute++;
        }
        clusterSet.add(instance);
    }
    return clusterSet;
}
Also used : Instances(weka.core.Instances) FastVector(weka.core.FastVector) UserSessionAsCountsOfCalls(org.iobserve.analysis.behavior.karlsruhe.data.UserSessionAsCountsOfCalls) Attribute(weka.core.Attribute) Instance(weka.core.Instance)

Example 35 with Attribute

use of weka.core.Attribute in project mzmine2 by mzmine.

the class ClusteringTask method createVariableWekaDataset.

/**
 * Creates the weka data set for clustering of variables (metabolites)
 *
 * @param rawData Data extracted from selected Raw data files and rows.
 * @return Weka library data set
 */
private Instances createVariableWekaDataset(double[][] rawData) {
    FastVector attributes = new FastVector();
    for (int i = 0; i < this.selectedRawDataFiles.length; i++) {
        String varName = "Var" + i;
        Attribute var = new Attribute(varName);
        attributes.addElement(var);
    }
    if (clusteringStep.getModule().getClass().equals(HierarClusterer.class)) {
        Attribute name = new Attribute("name", (FastVector) null);
        attributes.addElement(name);
    }
    Instances data = new Instances("Dataset", attributes, 0);
    for (int i = 0; i < selectedRows.length; i++) {
        double[] values = new double[data.numAttributes()];
        System.arraycopy(rawData[i], 0, values, 0, rawData[0].length);
        if (clusteringStep.getModule().getClass().equals(HierarClusterer.class)) {
            DecimalFormat twoDForm = new DecimalFormat("#.##");
            double MZ = Double.valueOf(twoDForm.format(selectedRows[i].getAverageMZ()));
            double RT = Double.valueOf(twoDForm.format(selectedRows[i].getAverageRT()));
            String rowName = "MZ->" + MZ + "/RT->" + RT;
            values[data.numAttributes() - 1] = data.attribute("name").addStringValue(rowName);
        }
        Instance inst = new SparseInstance(1.0, values);
        data.add(inst);
    }
    return data;
}
Also used : Instances(weka.core.Instances) FastVector(weka.core.FastVector) SparseInstance(weka.core.SparseInstance) Attribute(weka.core.Attribute) Instance(weka.core.Instance) SparseInstance(weka.core.SparseInstance) DecimalFormat(java.text.DecimalFormat)

Aggregations

Attribute (weka.core.Attribute)35 Instances (weka.core.Instances)18 ArrayList (java.util.ArrayList)15 Instance (weka.core.Instance)9 Feature (org.dkpro.tc.api.features.Feature)8 Instance (org.dkpro.tc.api.features.Instance)8 FastVector (weka.core.FastVector)8 SparseInstance (weka.core.SparseInstance)7 DenseInstance (weka.core.DenseInstance)5 HashMap (java.util.HashMap)4 Optional (java.util.Optional)4 Test (org.junit.Test)4 ArffSaver (weka.core.converters.ArffSaver)4 File (java.io.File)3 List (java.util.List)3 MultiLabelInstances (mulan.data.MultiLabelInstances)3 TextClassificationException (org.dkpro.tc.api.exception.TextClassificationException)3 AttributeStore (org.dkpro.tc.ml.weka.util.AttributeStore)3 IOException (java.io.IOException)2 Arrays (java.util.Arrays)2