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