Example usage for org.apache.commons.math3.linear RealVector getDimension

List of usage examples for org.apache.commons.math3.linear RealVector getDimension

Introduction

In this page you can find the example usage for org.apache.commons.math3.linear RealVector getDimension.

Prototype

public abstract int getDimension();

Source Link

Document

Returns the size of the vector.

Usage

From source file:org.grouplens.samantha.modeler.knn.KnnModelFeatureTrigger.java

private void getNeighbors(Object2DoubleMap<String> item2score, FeatureKnnModel knnModel, String key,
        double weight) {
    if (knnModel.hasKey(key)) {
        RealVector sims = knnModel.getKeyVector(key);
        for (int i = 0; i < sims.getDimension(); i += 2) {
            int idx = (int) sims.getEntry(i);
            double sim = sims.getEntry(i + 1);
            String recItem = knnModel.getKeyByIndex(idx);
            double oldVal = item2score.getOrDefault(recItem, 0.0);
            item2score.put(recItem, weight * sim + oldVal);
        }/*from w w w  .  java2  s. co m*/
    }
}

From source file:org.grouplens.samantha.modeler.knn.KnnModelFeatureTrigger.java

private void getNeighbors(ObjectSet<String> items, FeatureKnnModel knnModel, String key) {
    if (knnModel.hasKey(key)) {
        RealVector sims = knnModel.getKeyVector(key);
        for (int i = 0; i < sims.getDimension(); i += 2) {
            int idx = (int) sims.getEntry(i);
            String recItem = knnModel.getKeyByIndex(idx);
            items.add(recItem);//from  www . ja  va  2  s  .c o  m
        }
    }
}

From source file:org.grouplens.samantha.modeler.reinforce.LinearUCB.java

public double predict(LearningInstance instance) {
    RealMatrix A = variableSpace.getMatrixVarByName(LinearUCBKey.A.get());
    RealVector B = variableSpace.getScalarVarByName(LinearUCBKey.B.get());
    RealMatrix invA = new LUDecomposition(A).getSolver().getInverse();
    RealVector theta = invA.operate(B);
    RealVector x = extractDenseVector(theta.getDimension(), instance);
    double bound = Math.sqrt(x.dotProduct(invA.operate(x)));
    double mean = x.dotProduct(theta);
    double pred = mean + alpha * bound;
    if (Double.isNaN(pred)) {
        logger.error("Prediction is NaN, model parameter A probably goes wrong.");
        pred = 0.0;//from w  w w.  j  ava2s.c o m
    }
    return pred;
}

From source file:org.grouplens.samantha.modeler.solver.RandomInitializer.java

public void randInitVector(RealVector vec, boolean normalize) {
    int len = vec.getDimension();
    double sum = 0.0;
    for (int i = 0; i < len; i++) {
        double val;
        if (normalize) {
            val = rand.nextDouble();
        } else {//w  w w  .  j  a va2 s. co  m
            val = (rand.nextDouble() - subtract) * multi;
        }
        vec.setEntry(i, val);
        if (normalize) {
            sum += val;
        }
    }
    if (normalize) {
        vec.mapDivideToSelf(sum);
    }
}

From source file:org.grouplens.samantha.modeler.svdfeature.SVDFeature.java

private String realVectorToString(RealVector vec) {
    String[] arr = new String[vec.getDimension()];
    for (int i = 0; i < vec.getDimension(); i++) {
        arr[i] = Double.valueOf(vec.getEntry(i)).toString();
    }//from   w  ww. j a  v  a 2s .  com
    return StringUtils.join(arr, "\t");
}

From source file:org.grouplens.samantha.modeler.svdfeature.SVDFeature.java

public void dump(File modelFile) {
    try {//from   w  ww .j  av a 2 s  . co m
        BufferedWriter writer = new BufferedWriter(new FileWriter(modelFile));
        RealVector biases = variableSpace.getScalarVarByName(SVDFeatureKey.BIASES.get());
        writer.write(Double.valueOf(biases.getEntry(0)).toString() + "\n");
        String biasLine = realVectorToString(biases.getSubVector(1, biases.getDimension() - 1));
        writer.write(biasLine + "\n");
        List<RealVector> factors = variableSpace.getVectorVarByName(SVDFeatureKey.FACTORS.get());
        for (int i = 0; i < factors.size(); i++) {
            String factLine = realVectorToString(factors.get(i));
            writer.write(factLine + "\n");
        }
        writer.close();
    } catch (IOException e) {
        logger.error(e.getMessage());
        throw new BadRequestException(e);
    }
}

From source file:org.grouplens.samantha.server.space.RedisVariableSpace.java

public void setScalarVarByName(String name, RealVector vars) {
    for (int i = 0; i < vars.getDimension(); i++) {
        setScalarVarByNameIndex(name, i, vars.getEntry(i));
    }/*from  ww w. jav a2 s .  c o m*/
}

From source file:org.grouplens.samantha.server.space.RedisVariableSpace.java

public void setVectorVarByNameIndex(String name, int index, RealVector var) {
    String varIdxName = "IDX_V_" + name + "_" + Integer.valueOf(index).toString();
    ArrayNode values = Json.newArray();/*from  w ww .j ava  2  s  .c o m*/
    values.add(index);
    for (int i = 0; i < var.getDimension(); i++) {
        values.add(var.getEntry(i));
    }
    redisService.setValue(spaceIdentifier, varIdxName, values);
}

From source file:org.knime.al.util.noveltydetection.knfst.MatrixFunctions.java

public static RealVector sqrt(final RealVector vector) {
    final RealVector result = vector.copy();
    for (int e = 0; e < result.getDimension(); e++) {
        result.setEntry(e, Math.sqrt(result.getEntry(e)));
    }//from  www . j  a  v  a2  s.co m
    return result;
}

From source file:org.knime.knip.core.algorithm.convolvers.KernelTools.java

/**
 * Creates a numDims dimensions image where all dimensions d<numDims are of size 1 and the last dimensions contains
 * the vector./* w ww.  j av a  2 s .c  om*/
 * 
 * @param <R>
 * @param ar
 * @param type
 * @param numDims number of dimensions
 * @return
 */
public static <R extends RealType<R>> Img<R> vectorToImage(final RealVector ar, final R type, final int numDims,
        final ImgFactory<R> fac) {
    long[] dims = new long[numDims];

    for (int i = 0; i < dims.length - 1; i++) {
        dims[i] = 1;
    }
    dims[dims.length - 1] = ar.getDimension();
    Img<R> res = fac.create(dims, type);
    Cursor<R> c = res.cursor();
    while (c.hasNext()) {
        c.fwd();
        c.get().setReal(ar.getEntry(c.getIntPosition(numDims - 1)));
    }

    return res;
}