public Vector<oneClustererResult> getClusterers() { // TODO Auto-generated method stub double[][] nmi = new double[clustersRes.size()][clustersRes.size()]; for (int i = 0; i < clustersRes.size(); ++i) { if (!myUtils.ClusterUtils.isAllSame(clustersRes.elementAt(i))) for (int j = i + 1; j < clustersRes.size(); ++j) { nmi[i][j] = ClusterUtils.NMI(clustersRes.elementAt(i), clustersRes.elementAt(j)); nmi[j][i] = nmi[i][j]; } } Vector<oneClustererResult> res = new Vector<oneClustererResult>(); for (int i = 0; i < clustersRes.size(); ++i) { oneClustererResult aRes = new oneClustererResult(); aRes.cluster = clustersRes.elementAt(i).clone(); aRes.semi_weigth = this.getWeight(clustersRes.elementAt(i)); double sum_nmi = 0; for (int j = 0; j < clustersRes.size(); ++j) { sum_nmi += nmi[i][j]; } // aRes.nmi_weigth = (double)1/sum_nmi; //1/beta aRes.nmi_weigth = sum_nmi; // beta aRes.squarederror_weigth = (double) 1 / this.SquaredError[i]; // ԽСԽºÃ res.add(aRes); } NormalizedWeightAndBaseInd(res); return res; }
private double getWeight(int[] elementAt) { // TODO Auto-generated method stub if (myUtils.ClusterUtils.isAllSame(elementAt)) return 0; return ClusterUtils.SemiClusterWeight(this.classes, elementAt, this.labeledIndex); }
public void Evalution() { this.ac = ClusterUtils.getAC_ByBipartiteGraph(this.classes, this.clusters); this.nmi = ClusterUtils.NMI(this.classes, this.clusters); }