All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.brettonw.math.ClusterAlgorithm Maven / Gradle / Ivy

package com.brettonw.math;

import com.brettonw.bedrock.bag.BagArray;

public abstract class ClusterAlgorithm {
    protected DataSet dataSet;

    protected ClusterAlgorithm (DataSet dataSet) {
        this.dataSet = dataSet;
    }

    public DataSet getDataSet () {
        return dataSet;
    }

    public abstract int getClusterCount ();
    public abstract Tuple[] getCluster (int i);

    public BagArray export () {
        int clusterCount = getClusterCount ();
        BagArray bagArray = new BagArray (clusterCount);
        for (int i = 0; i < clusterCount; ++i) {
            Tuple[] tuples = getCluster (i);
            int clusterSize = tuples.length;
            BagArray clusterBagArray = new BagArray (clusterSize);
            for (Tuple tuple : tuples) {
                double[] values = tuple.getValues ();
                int valuesSize = values.length;
                BagArray valuesBagArray = new BagArray (valuesSize);
                for (double value : values) {
                    valuesBagArray.add (value);
                }
                clusterBagArray.add (valuesBagArray);
            }
            bagArray.add (clusterBagArray);
        }
        return bagArray;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy