Package de.jungblut.math.dense

Examples of de.jungblut.math.dense.DenseDoubleVector


    int index = 0;
    for (int c = 0; c < m.getColumnCount(); c += num) {
      double[] column = seed.getColumn(index++);
      m.setColumn(c, column);
      for (int i = 2; i < num + 1; i++) {
        DoubleVector pow = new DenseDoubleVector(column).pow(i);
        m.setColumn(c + i - 1, pow.toArray());
      }
    }
    return m;
  }
View Full Code Here


   * @param f the costfunction to return the cost at a given parameterset.
   * @return a numerical gradient.
   */
  public static DoubleVector numericalGradient(DoubleVector vector,
      CostFunction f) {
    DoubleVector gradient = new DenseDoubleVector(vector.getLength());
    DoubleVector tmp = vector.deepCopy();
    for (int i = 0; i < vector.getLength(); i++) {
      double stepSize = EPS * (Math.abs(vector.get(i)) + 1d);
      tmp.set(i, vector.get(i) + stepSize);
      double add = f.evaluateCost(tmp).getCost();
      tmp.set(i, vector.get(i) - stepSize);
      double diff = f.evaluateCost(tmp).getCost();
      gradient.set(i, (add - diff) / (2d * stepSize));
    }
    return gradient;
  }
View Full Code Here

  /**
   * @return a log'd matrix that was guarded against edge cases of the
   *         logarithm.
   */
  public static DoubleVector logVector(DoubleVector input) {
    DenseDoubleVector log = new DenseDoubleVector(input.getDimension());
    for (int col = 0; col < log.getDimension(); col++) {
      log.set(col, guardLogarithm(input.get(col)));
    }
    return log;
  }
View Full Code Here

      indexMapping.put(index, featureMap);
    }

    // now we have the mappings, we can loop again over all lines
    for (String[] line : buffer) {
      DoubleVector vec = new DenseDoubleVector(line.length);
      for (int i = 0; i < line.length; i++) {
        HashMap<String, Integer> hashMap = indexMapping.get(i);
        Integer value = hashMap.get(line[i]);
        vec.set(i, value);
      }
      // and add the mappings to the vectorlist
      list.add(vec);
    }
View Full Code Here

   * @param toMax the upper bound of the target interval.
   * @return the new vector with scaled values.
   */
  public static DoubleVector minMaxScale(DoubleVector input, double fromMin,
      double fromMax, double toMin, double toMax) {
    DoubleVector newOne = new DenseDoubleVector(input.getDimension());
    double[] array = input.toArray();
    for (int i = 0; i < array.length; i++) {
      newOne.set(i, minMaxScale(array[i], fromMin, fromMax, toMin, toMax));
    }
    return newOne;
  }
View Full Code Here

          vector.set(index, value);
        }
        break;
      case DENSE:
        length = in.readInt();
        vector = new DenseDoubleVector(length);
        for (int i = 0; i < length; i++) {
          vector.set(i, in.readDouble());
        }
        break;
      case SINGLE:
View Full Code Here

      int index = 0;
      while ((line = br.readLine()) != null) {
        String[] split = line.split(",");
        Preconditions.checkArgument(split.length == 5,
            "CSV length was not 5! Given " + split.length);
        features[index] = new DenseDoubleVector(4);
        for (int i = 0; i < split.length - 1; i++) {
          features[index].set(i, Double.parseDouble(split[i]));
        }
        if (split[split.length - 1].equals("Iris-setosa")) {
          outcome[index] = new DenseDoubleVector(new double[] { 1, 0, 0 });
        } else if (split[split.length - 1].equals("Iris-versicolor")) {
          outcome[index] = new DenseDoubleVector(new double[] { 0, 1, 0 });
        } else {
          outcome[index] = new DenseDoubleVector(new double[] { 0, 0, 1 });
        }
        index++;
      }
    } catch (IOException e) {
      e.printStackTrace();
View Full Code Here

        TreeCompiler.generateClassName(), root);
  }

  @Test
  public void testNominalSwitches() {
    DoubleVector vec = new DenseDoubleVector(new double[] { 0, 0, 0 });
    int result = compiledRoot.predict(vec);
    Assert.assertEquals(0, result);

    vec = new DenseDoubleVector(new double[] { 1, 0, 5 });
    result = compiledRoot.predict(vec);
    Assert.assertEquals(25, result);

    vec = new DenseDoubleVector(new double[] { -1, 0, 8 });
    result = compiledRoot.predict(vec);
    Assert.assertEquals(88, result);

    vec = new DenseDoubleVector(new double[] { 0, 0, 18 });
    result = compiledRoot.predict(vec);
    Assert.assertEquals(33, result);
  }
View Full Code Here

  }

  @Test
  public void testOtherResults() {

    DoubleVector vec = new DenseDoubleVector(new double[] { 2, 2, 0 });
    int result = compiledRoot.predict(vec);
    Assert.assertEquals(1337, result);

    vec = new DenseDoubleVector(new double[] { 2, 18, 0 });
    result = compiledRoot.predict(vec);
    Assert.assertEquals(26, result);

  }
View Full Code Here

public class GradientDescentTest {

  @Test
  public void testGradientDescent() {

    DoubleVector start = new DenseDoubleVector(new double[] { 2, -1 });

    CostFunction inlineFunction = getCostFunction();

    DoubleVector minimizeFunction = GradientDescent.minimizeFunction(
        inlineFunction, start, 0.5d, 1E-20, 1000, false);
View Full Code Here

TOP

Related Classes of de.jungblut.math.dense.DenseDoubleVector

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.