Package de.jungblut.math.DoubleVector

Examples of de.jungblut.math.DoubleVector.DoubleVectorElement


   */
  private static int chooseState(Random random, DoubleVector probabilities) {
    final double r = random.nextDouble();
    Iterator<DoubleVectorElement> iterateNonZero = probabilities
        .iterateNonZero();
    DoubleVectorElement next = null;
    while (iterateNonZero.hasNext()) {
      next = iterateNonZero.next();
      if (r <= Math.exp(next.getValue())) {
        return next.getIndex();
      }
    }
    // return the max if we haven't escaped yet
    return probabilities.maxIndex();
  }
View Full Code Here


  }

  static boolean strictHigher(DoubleVector lower, DoubleVector current) {
    Iterator<DoubleVectorElement> iterateNonZero = lower.iterateNonZero();
    while (iterateNonZero.hasNext()) {
      DoubleVectorElement next = iterateNonZero.next();
      if (current.get(next.getIndex()) < next.getValue())
        return false;
    }
    return true;
  }
View Full Code Here

  }

  static boolean strictLower(DoubleVector upper, DoubleVector current) {
    Iterator<DoubleVectorElement> iterateNonZero = upper.iterateNonZero();
    while (iterateNonZero.hasNext()) {
      DoubleVectorElement next = iterateNonZero.next();
      if (current.get(next.getIndex()) > next.getValue())
        return false;
    }
    return true;
  }
View Full Code Here

  public DoubleVector apply(DoubleVector vector) {
    DoubleVector newInstance = newInstance(vector);
    if (vector.isSparse()) {
      Iterator<DoubleVectorElement> iterateNonZero = vector.iterateNonZero();
      while (iterateNonZero.hasNext()) {
        DoubleVectorElement next = iterateNonZero.next();
        newInstance.set(next.getIndex(), apply(next.getValue()));
      }
    } else {
      for (int i = 0; i < vector.getDimension(); i++) {
        newInstance.set(i, apply(vector.get(i)));
      }
View Full Code Here

  public DoubleVector gradient(DoubleVector vector) {
    DoubleVector newInstance = newInstance(vector);
    if (vector.isSparse()) {
      Iterator<DoubleVectorElement> iterateNonZero = vector.iterateNonZero();
      while (iterateNonZero.hasNext()) {
        DoubleVectorElement next = iterateNonZero.next();
        newInstance.set(next.getIndex(), gradient(next.getValue()));
      }
    } else {
      for (int i = 0; i < vector.getDimension(); i++) {
        newInstance.set(i, gradient(vector.get(i)));
      }
View Full Code Here

  public double calculateError(DoubleVector y, DoubleVector hypothesis) {
    double sum = 0d;
    TIntHashSet visitedColumns = new TIntHashSet(y.getLength());
    Iterator<DoubleVectorElement> iterateNonZero = hypothesis.iterateNonZero();
    while (iterateNonZero.hasNext()) {
      DoubleVectorElement next = iterateNonZero.next();
      visitedColumns.add(next.getIndex());
      if (next.getValue() > activationThreshold ^ y.get(next.getIndex()) == 1d) {
        sum += 1d;
      }
    }

    iterateNonZero = y.iterateNonZero();
    while (iterateNonZero.hasNext()) {
      DoubleVectorElement next = iterateNonZero.next();
      if (!visitedColumns.contains(next.getIndex())) {
        visitedColumns.add(next.getIndex());
        if (hypothesis.get(next.getIndex()) > activationThreshold
            ^ next.getValue() == 1d) {
          sum += 1d;
        }
      }
    }
    return sum / visitedColumns.size();
View Full Code Here

    double max = vector.max();
    DoubleVector subtract = vector.subtract(max);
    if (vector.isSparse()) {
      Iterator<DoubleVectorElement> iterateNonZero = vector.iterateNonZero();
      while (iterateNonZero.hasNext()) {
        DoubleVectorElement next = iterateNonZero.next();
        subtract.set(next.getIndex(), Math.exp(subtract.get(next.getIndex())));
      }
    } else {
      for (int i = 0; i < subtract.getLength(); i++) {
        subtract.set(i, Math.exp(subtract.get(i)));
      }
View Full Code Here

          double temp = 0d;
          for (int t = 0; t < features.length; t++) {
            Iterator<DoubleVectorElement> iterateNonZero = features[t]
                .iterateNonZero();
            while (iterateNonZero.hasNext()) {
              DoubleVectorElement next = iterateNonZero.next();
              if (next.getIndex() == j) {
                temp += alpha.get(t, i) * beta.get(t, i);
              }
            }
          }
          emissionProbabilityMatrix.set(i, j, temp / modelLikelihood);
View Full Code Here

        double sum = 0d;
        for (int j = 0; j < numHiddenStates; j++) {
          Iterator<DoubleVectorElement> iterateNonZero = features[t + 1]
              .iterateNonZero();
          while (iterateNonZero.hasNext()) {
            DoubleVectorElement next = iterateNonZero.next();
            sum += beta.get(t + 1, j) * transitionProbabilityMatrix.get(i, j)
                * emissionProbabilityMatrix.get(j, next.getIndex());
          }
        }
        beta.set(t, i, sum);
      }
    }
View Full Code Here

      hiddenPriorProbability.set(index, hiddenPriorProbability.get(index) + 1);

      // count the emissions from feature layer to the hidden layer
      Iterator<DoubleVectorElement> iterateNonZero = feat.iterateNonZero();
      while (iterateNonZero.hasNext()) {
        DoubleVectorElement next = iterateNonZero.next();
        emissionProbabilityMatrix.set(index, next.getIndex(),
            emissionProbabilityMatrix.get(index, next.getIndex()) + 1);
      }
      // now handle the feature by counting the transitions between the hidden
      // states with the next feature
      if (i + 1 < features.length) {
        DoubleVector nextOut = outcome[i + 1];
View Full Code Here

TOP

Related Classes of de.jungblut.math.DoubleVector.DoubleVectorElement

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.