@Override protected MultiLabelOutput makePredictionInternal(Instance instance) throws Exception, InvalidDataException { Instance newInstance = RemoveAllLabels.transformInstance(instance, labelIndices); int cluster = clusterer.clusterInstance(newInstance); return multi[cluster].makePrediction(instance); }
/** * Add a cluster label to an instance using a clusterer * * @param clusterer the clusterer to use * @param inst the instance to append a prediction to * @param instOrig the original instance * @throws WekaException if a problem occurs */ protected void predictLabelClusterer(weka.clusterers.Clusterer clusterer, Instance inst, Instance instOrig) throws WekaException { try { int cluster = clusterer.clusterInstance(instOrig); inst.setValue(inst.numAttributes() - 1, (double) cluster); } catch (Exception ex) { throw new WekaException(ex); } }
/** * Add a cluster label to an instance using a clusterer * * @param clusterer the clusterer to use * @param inst the instance to append a prediction to * @param instOrig the original instance * @throws WekaException if a problem occurs */ protected void predictLabelClusterer(weka.clusterers.Clusterer clusterer, Instance inst, Instance instOrig) throws WekaException { try { int cluster = clusterer.clusterInstance(instOrig); inst.setValue(inst.numAttributes() - 1, (double) cluster); } catch (Exception ex) { throw new WekaException(ex); } }
public Dataset[] cluster(Dataset data) { try { /* * Weka cannot handle class values in clustering, so we have to * store and remove them first */ HashMap<Integer, Object> classValueMapping = new HashMap<Integer, Object>(); for (Instance i : data) { classValueMapping.put(i.getID(), i.classValue()); i.setClassValue(null); } data.classes().clear(); /* Convert to Weka and train clustering */ Instances insts = new ToWekaUtils(data).getDataset(); Vector<Dataset> output = new Vector<Dataset>(); wekaCluster.buildClusterer(insts); /* Apply clustering to the data set and restore class values */ for (int i = 0; i < insts.numInstances(); i++) { int clusterIndex = wekaCluster.clusterInstance(insts.instance(i)); while (output.size() <= clusterIndex) output.add(new DefaultDataset()); data.instance(i).setClassValue(classValueMapping.get(data.instance(i).getID())); output.get(clusterIndex).add(data.instance(i)); } return output.toArray(new Dataset[output.size()]); } catch (Exception e) { throw new WekaException(e); } }
} else { try { cnum = clusterer.clusterInstance(inst);
} else { try { cnum = clusterer.clusterInstance(inst);
loglk += ((DensityBasedClusterer) m_Clusterer).logDensityForInstance(inst); cnum = m_Clusterer.clusterInstance(inst); clusterAssignments.add((double) cnum); } else { cnum = m_Clusterer.clusterInstance(inst); clusterAssignments.add((double) cnum);
loglk += ((DensityBasedClusterer) m_Clusterer).logDensityForInstance(inst); cnum = m_Clusterer.clusterInstance(inst); clusterAssignments.add((double) cnum); } else { cnum = m_Clusterer.clusterInstance(inst); clusterAssignments.add((double) cnum);
} else { try { cnum = clusterer.clusterInstance(inst);
} else { try { cnum = clusterer.clusterInstance(inst);
int clusterOfInstance = clusterer.clusterInstance(removedInstances.instance(i)); subsetMultiLabelInstances[clusterOfInstance].getDataSet().add(trainInstances.instance(i));
result += "\n"; try { cluster = clusterer.clusterInstance(data.instance(i)); result += "" + (i+1) + ": " + cluster;
result += "\n"; try { cluster = clusterer.clusterInstance(data.instance(i)); result += "" + (i+1) + ": " + cluster;
double predCluster = clusterer.clusterInstance(testSet.instance(i)); newInstances.instance(i).setValue(newInstances.numAttributes() - 1, predCluster);
double predCluster = clusterer.clusterInstance(testSet.instance(i)); newInstances.instance(i).setValue(newInstances.numAttributes() - 1, predCluster);
.clusterInstance(filteredI); } catch (Exception e) {
.clusterInstance(filteredI); } catch (Exception e) {
for (int i = 0; i < data.numInstances(); i++) { inst = data.instance(i); int cluster = m_wrappedClusterer.clusterInstance(inst); m_priors[cluster] += inst.weight(); for (int j = 0; j < data.numAttributes(); j++) {
for (int i = 0; i < data.numInstances(); i++) { inst = data.instance(i); int cluster = m_wrappedClusterer.clusterInstance(inst); m_priors[cluster] += inst.weight(); for (int j = 0; j < data.numAttributes(); j++) {