processed_InstanceID = 0;
    public void buildClusterer(Instances instances) throws Exception {        // can clusterer handle the data?        getCapabilities().testWithFail(instances);        long time_1 = System.currentTimeMillis();        numberOfGeneratedClusters = 0;        clusterID = 0;        replaceMissingValues_Filter = new ReplaceMissingValues();        replaceMissingValues_Filter.setInputFormat(instances);        Instances filteredInstances = Filter.useFilter(instances, replaceMissingValues_Filter);        database = databaseForName(getDatabase_Type(), filteredInstances);        for (int i = 0; i < database.getInstances().numInstances(); i++) {            DataObject dataObject = dataObjectForName(getDatabase_distanceType(),                    database.getInstances().instance(i),                    Integer.toString(i),                    database);            database.insert(dataObject);        }        database.setMinMaxValues();        Iterator iterator = database.dataObjectIterator();        while (iterator.hasNext()) {            DataObject dataObject = (DataObject) iterator.next();            if (dataObject.getClusterLabel() == DataObject.UNCLASSIFIED) {                if (expandCluster(dataObject)) {                    clusterID++;                    numberOfGeneratedClusters++;                }            }        }        long time_2 = System.currentTimeMillis();        elapsedTime = (double) (time_2 - time_1) / 1000.0;    }