Example usage for org.apache.mahout.math DenseVector maxValue

List of usage examples for org.apache.mahout.math DenseVector maxValue

Introduction

In this page you can find the example usage for org.apache.mahout.math DenseVector maxValue.

Prototype

@Override
    public double maxValue() 

Source Link

Usage

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);

}