List of usage examples for org.apache.mahout.math DenseVector maxValue
@Override public double maxValue()
From source file:root.hap.cluster.ClusterReducer.java
License:Apache License
private void updateExemplars(Context context, DenseVector A, DenseVector diagA, DenseVector R, DenseVector diagR, int reducerRowNum, int reducerLevelNum, int N) throws IOException, InterruptedException { boolean[] validExemplars = new boolean[N]; boolean validExist = false; Arrays.fill(validExemplars, false); for (int diagIter = 0; diagIter < N; diagIter++) { double diagVal = diagA.get(diagIter) + diagR.get(diagIter); if (diagVal > 0) { validExemplars[diagIter] = true; validExist = true;/*from w ww . j ava 2s .c o m*/ } } DenseVector sum = (DenseVector) A.plus(R); double maxValue = Double.NEGATIVE_INFINITY; int maxValueIndex = sum.maxValueIndex(); if (validExist) { for (int diagIter = 0; diagIter < N; diagIter++) { double validValue = sum.get(diagIter); if (validExemplars[diagIter] && validValue > maxValue) { maxValue = validValue; maxValueIndex = diagIter; } } } else { maxValue = sum.maxValue(); maxValueIndex = sum.maxValueIndex(); } Text output = new Text(maxValueIndex + "\t" + reducerRowNum + "\t" + reducerLevelNum); // Sentinel: In case an invalid exemplar ID is passed to output. if (maxValueIndex != -1) { context.write(new Text(), output); } }
From source file:root.hap.responsibility.ResponsibilityReducer.java
License:Apache License
private void updateExemplars(Context context, DenseVector A, DenseVector R, DenseVector diagA, DenseVector diagR, DenseVector C, int reducerRowNum, int reducerLevelNum, int N, String exemplar) throws IOException, InterruptedException { boolean[] validExemplars = new boolean[N]; boolean validExist = false; Arrays.fill(validExemplars, false); for (int diagIter = 0; diagIter < N; diagIter++) { double diagVal = diagA.get(diagIter) + diagR.get(diagIter); if (diagVal > 0) { validExemplars[diagIter] = true; validExist = true;/*from w w w. j av a 2s . c o m*/ } } DenseVector sum = (DenseVector) A.plus(R); double maxValue = Double.NEGATIVE_INFINITY; if (validExist) { for (int diagIter = 0; diagIter < N; diagIter++) { double validValue = sum.get(diagIter); if (validExemplars[diagIter] && validValue > maxValue) { maxValue = validValue; } } } else { maxValue = sum.maxValue(); } C.setQuick(0, maxValue); VectorWritable CWritable = new VectorWritable(C); context.write(new Text(reducerRowNum + "\t" + reducerLevelNum + "\t" + exemplar), CWritable); }
From source file:root.hap.responsibility.ResponsibilityReducer.java
License:Apache License
private void updatePhi(Context context, DenseVector ALevelAbove, DenseVector SLevelAbove, DenseVector P, int reducerRowNum, int reducerLevelNum, int N, String phi) throws IOException, InterruptedException { DenseVector sum = (DenseVector) ALevelAbove.plus(SLevelAbove); double maxValue = sum.maxValue(); P.setQuick(0, maxValue);//from w ww . j a v a 2s .c o m VectorWritable PWritable = new VectorWritable(P); context.write(new Text(reducerRowNum + "\t" + reducerLevelNum + "\t" + phi), PWritable); }
From source file:root.hap.responsibility.ResponsibilityReducer.java
License:Apache License
private void updateResponsibility(Context context, DenseVector A, DenseVector S, DenseVector R, DenseVector T, int reducerLevelNum, int reducerRowNum, int N, String responsibilty) throws IOException, InterruptedException { DenseVector oldR = R.clone();/* ww w.ja v a 2 s . com*/ DenseVector sum = (DenseVector) A.plus(S); double maxValue = sum.maxValue(); int maxValueIndex = sum.maxValueIndex(); maxValue *= -1; sum.set(maxValueIndex, Double.NEGATIVE_INFINITY); double tau = T.get(0); double YH = Math.min(maxValue, tau); double actualMax = sum.maxValue(); actualMax *= -1; double YH2 = Math.min(actualMax, tau); R = (DenseVector) S.plus(YH); R.setQuick(maxValueIndex, S.get(maxValueIndex) + YH2); // Dampen double lambda = context.getConfiguration().getFloat("lambda", 0); R = (DenseVector) R.times(1 - lambda); oldR = (DenseVector) oldR.times(lambda); R = (DenseVector) R.plus(oldR); VectorWritable RWritable = new VectorWritable(R); context.write(new Text(reducerRowNum + "\t" + reducerLevelNum + "\t" + responsibilty), RWritable); }