List of usage examples for org.apache.commons.math3.linear RealVector getDimension
public abstract int getDimension();
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; }