private double cuScoreForBestTwoMerged(CNode merged, CNode a, CNode b, Instance newInstance) throws Exception { double mergedCU = -Double.MAX_VALUE; // consider merging the best and second // best. merged.m_clusterInstances = new Instances(m_clusterInstances, 1); merged.addChildNode(a); merged.addChildNode(b); merged.updateStats(newInstance, false); // add new instance to stats // remove the best and second best nodes m_children.remove(m_children.indexOf(a)); m_children.remove(m_children.indexOf(b)); m_children.add(merged); mergedCU = categoryUtility(); // restore the status quo merged.updateStats(newInstance, true); m_children.remove(m_children.indexOf(merged)); m_children.add(a); m_children.add(b); return mergedCU; }
private double cuScoreForBestTwoMerged(CNode merged, CNode a, CNode b, Instance newInstance) throws Exception { double mergedCU = -Double.MAX_VALUE; // consider merging the best and second // best. merged.m_clusterInstances = new Instances(m_clusterInstances, 1); merged.addChildNode(a); merged.addChildNode(b); merged.updateStats(newInstance, false); // add new instance to stats // remove the best and second best nodes m_children.remove(m_children.indexOf(a)); m_children.remove(m_children.indexOf(b)); m_children.add(merged); mergedCU = categoryUtility(); // restore the status quo merged.updateStats(newInstance, true); m_children.remove(m_children.indexOf(merged)); m_children.add(a); m_children.add(b); return mergedCU; }
tempNode.m_clusterInstances = new Instances(m_clusterInstances, 1); for (int i = 0; i < m_children.size(); i++) { tempNode.addChildNode(m_children.get(i));
tempNode.m_clusterInstances = new Instances(m_clusterInstances, 1); for (int i = 0; i < m_children.size(); i++) { tempNode.addChildNode(m_children.get(i));