public void correctClusters(IndexClusters clstrs){ int[][] clusters = clstrs.clusters(); for (int i = 0; i < clusters.length; i++) { int[] cluster = clusters[i]; for (int j = 0; j < cluster.length; j++) { cluster[j] = indexCorrection.get(cluster[j]); } } } }
/** * * @param c the underlying {@link IndexClusters} * @param valvects the eigen values and vectors */ public SpectralIndexedClusters(IndexClusters c, IndependentPair<double[], double[][]>valvects) { this.clusters = c.clusters(); this.nEntries = c.numEntries(); this.valvects = valvects; }
@Override public int[][] performClustering(int[][] data) { return new IndexClusters(this.cluster(data).defaultHardAssigner().assign(data)).clusters(); } }
@Override public int[][] performClustering(byte[][] data) { ByteCentroidsResult res = this.cluster(data); return new IndexClusters(res.defaultHardAssigner().assign(data)).clusters(); }
@Override public int[][] performClustering(int[][] data) { IntCentroidsResult res = this.cluster(data); return new IndexClusters(res.defaultHardAssigner().assign(data)).clusters(); }
@Override public int[][] performClustering(long[][] data) { LongCentroidsResult clusters = this.cluster(data); return new IndexClusters(clusters.defaultHardAssigner().assign(data)).clusters(); }
@Override public int[][] performClustering(float[][] data) { FloatCentroidsResult clusters = this.cluster(data); return new IndexClusters(clusters.defaultHardAssigner().assign(data)).clusters(); }
@Override public int[][] performClustering(float[][] data) { FloatCentroidsResult res = this.cluster(data); return new IndexClusters(res.defaultHardAssigner().assign(data)).clusters(); }
@Override public int[][] performClustering(double[][] data) { DoubleCentroidsResult res = this.cluster(data); return new IndexClusters(res.defaultHardAssigner().assign(data)).clusters(); }
@Override public int[][] performClustering(int[][] data) { return new IndexClusters(this.cluster(data).defaultHardAssigner().assign(data)).clusters(); } }
@Override public int[][] performClustering(short[][] data) { HierarchicalShortKMeansResult clusters = this.cluster(data); return new IndexClusters(clusters.defaultHardAssigner().assign(data)).clusters(); }
@Override public int[][] performClustering(short[][] data) { ShortCentroidsResult clusters = this.cluster(data); return new IndexClusters(clusters.defaultHardAssigner().assign(data)).clusters(); }
@Override public int[][] performClustering(long[][] data) { LongCentroidsResult res = this.cluster(data); return new IndexClusters(res.defaultHardAssigner().assign(data)).clusters(); }
@Override public int[][] performClustering(double[][] data) { HierarchicalDoubleKMeansResult clusters = this.cluster(data); return new IndexClusters(clusters.defaultHardAssigner().assign(data)).clusters(); }
@Override public int[][] performClustering(long[][] data) { HierarchicalLongKMeansResult clusters = this.cluster(data); return new IndexClusters(clusters.defaultHardAssigner().assign(data)).clusters(); }
@Override public int[][] performClustering(byte[][] data) { ByteCentroidsResult clusters = this.cluster(data); return new IndexClusters(clusters.defaultHardAssigner().assign(data)).clusters(); }
@Override public int[][] performClustering(float[][] data) { HierarchicalFloatKMeansResult clusters = this.cluster(data); return new IndexClusters(clusters.defaultHardAssigner().assign(data)).clusters(); }
@Override public int[][] performClustering(double[][] data) { DoubleCentroidsResult clusters = this.cluster(data); return new IndexClusters(clusters.defaultHardAssigner().assign(data)).clusters(); }
@Override public int[][] performClustering(short[][] data) { ShortCentroidsResult res = this.cluster(data); return new IndexClusters(res.defaultHardAssigner().assign(data)).clusters(); }
@Override public int[][] performClustering(T[] data) { final FeatureVectorCentroidsResult<T> clusters = this.cluster(data); return new IndexClusters(clusters.defaultHardAssigner().assign(data)).clusters(); }