Quantcast
Channel: Pentaho Community Forums
Viewing all articles
Browse latest Browse all 16689

Creating Instances from double[][]

$
0
0
I have a distance matrix, which is symmetric. And I want to create Instances object to apply HierarchicalClusterer. I search for solutions and ended up 2 options but I am not sure if it is correct. Could you advise or point out what I might be doing wrong?

Code:

double[][] matrix;
String[] names;
......
int numDimensions = names.length;
int numInstances = names.length;

FastVector atts = new FastVector();

//this is one way....
List<Instance> instances = new ArrayList<Instance>();
    for(int i = 0; i<numDimensions; i++){
        Attribute current = new Attribute("Attribute"+i, i);
        // Attribute current = new Attribute(names[i], i);
        //create instances
        if(i==0){
            for(int obj = 0; obj < numInstances; obj++){
                instances.add(new SparseInstance(numDimensions));
            }
        }
        //fill the values
        for(int j = 0; j < numInstances; j++){
            instances.get(j).setValue(current, matrix[i][j]);
        }
        atts.addElement(current);
    }
    //create new dataset
    Instances newDataset = new Instances("Dataset", atts, instances.size());
    //fill in data objects
    for(Instance inst:instances){
        newDataset.add(inst);
    }


//another way
//create new dataset
    Instances newDataset = new Instances("Dataset", atts, instances.size());
    //fill in data objects
    for(Instance inst:instances){
        newDataset.add(inst);
    }




    for(int i = 0; i<numInstances; i++){
        atts.addElement(new Attribute(samples[i]));
    }
    Instances newDataset = new Instances("Dataset", atts, 0);
    for(int i = 0; i<numInstances; i++){
        double[] vals = matrix[i];
        newDataset.add(new Instance(1.0, vals));
    }


Viewing all articles
Browse latest Browse all 16689

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>