@Override public int compareTo(ClusterPair o) { int result; if (o == null || o.getLinkageDistance() == null) { result = -1; } else if (getLinkageDistance() == null) { result = 1; } else { result = getLinkageDistance().compareTo(o.getLinkageDistance()); } return result; }
@Override public int compareTo(ClusterPair o) { int result; if (o == null || o.getLinkageDistance() == null) { result = -1; } else if (getLinkageDistance() == null) { result = 1; } else { result = getLinkageDistance().compareTo(o.getLinkageDistance()); } return result; }
@Override public int compareTo(ClusterPair o) { int result; if (o == null || o.getLinkageDistance() == null) { result = -1; } else if (getLinkageDistance() == null) { result = 1; } else { result = getLinkageDistance().compareTo(o.getLinkageDistance()); } return result; }
/** * Peak into the minimum distance * @return */ public Double minDist() { Item peek = data.peek(); if(peek!=null) return peek.pair.getLinkageDistance(); else return null; }
/** * Peak into the minimum distance * @return */ public Double minDist() { Item peek = data.peek(); if(peek!=null) return peek.pair.getLinkageDistance(); else return null; }
public ClusterPair getMin() { ClusterPair min = null; PriorityQueue<ClusterPair> minpq = null; for (PriorityQueue<ClusterPair> pq : distancesIndex.values()) { ClusterPair cp = pq.peek(); if (cp != null && (min == null || cp.getLinkageDistance() < min.getLinkageDistance())) { min = cp; minpq = pq; } } minpq.poll(); distancesIndex.get(min.getlCluster()).remove(min); distancesIndex.get(min.getrCluster()).remove(min); return min; }
/** * @return a new ClusterPair with the two left/right inverted */ public ClusterPair reverse() { return new ClusterPair(getrCluster(), getlCluster(), getLinkageDistance()); }
/** * @return a new ClusterPair with the two left/right inverted */ public ClusterPair reverse() { return new ClusterPair(getrCluster(), getlCluster(), getLinkageDistance()); }
Collection<Double> distanceValues = new ArrayList<Double>(); if (link1 != null) { distanceValues.add(link1.getLinkageDistance()); distancesIndex.get(oldClusterL).remove(link1); distancesIndex.get(iClust).remove(link1); distanceValues.add(link2.getLinkageDistance()); distancesIndex.get(oldClusterR).remove(link2); distancesIndex.get(iClust).remove(link2);
public Cluster agglomerate(String name) { if (name == null) { StringBuilder sb = new StringBuilder(); if (lCluster != null) { sb.append(lCluster.getName()); } if (rCluster != null) { if (sb.length() > 0) { sb.append("&"); } sb.append(rCluster.getName()); } name = sb.toString(); } Cluster cluster = new Cluster(name); cluster.setDistance(getLinkageDistance()); cluster.addChild(lCluster); cluster.addChild(rCluster); lCluster.setParent(cluster); rCluster.setParent(cluster); return cluster; }
Double distVal = link1.getLinkageDistance(); Double weightVal = link1.getOtherCluster(iClust).getWeightValue(); distanceValues.add(new Distance(distVal, weightVal)); Double distVal = link2.getLinkageDistance(); Double weightVal = link2.getOtherCluster(iClust).getWeightValue(); distanceValues.add(new Distance(distVal, weightVal));
Double distVal = link1.getLinkageDistance(); Double weightVal = link1.getOtherCluster(iClust).getWeightValue(); distanceValues.add(new Distance(distVal, weightVal)); Double distVal = link2.getLinkageDistance(); Double weightVal = link2.getOtherCluster(iClust).getWeightValue(); distanceValues.add(new Distance(distVal, weightVal));
cluster.setDistance(new Distance(getLinkageDistance()));
cluster.setDistance(new Distance(getLinkageDistance()));