/** * Computes the new value of the features set. * * @param current Current values of the features. * @param sample Training data. * @param learningRate Learning factor. * @return the new values for the features. */ private double[] computeFeatures(double[] current, double[] sample, double learningRate) { final ArrayRealVector c = new ArrayRealVector(current, false); final ArrayRealVector s = new ArrayRealVector(sample, false); // c + learningRate * (s - c) return s.subtract(c).mapMultiplyToSelf(learningRate).add(c).toArray(); } }
/** * Computes the new value of the features set. * * @param current Current values of the features. * @param sample Training data. * @param learningRate Learning factor. * @return the new values for the features. */ private double[] computeFeatures(double[] current, double[] sample, double learningRate) { final ArrayRealVector c = new ArrayRealVector(current, false); final ArrayRealVector s = new ArrayRealVector(sample, false); // c + learningRate * (s - c) return s.subtract(c).mapMultiplyToSelf(learningRate).add(c).toArray(); } }
xResidual[j] = x[j].subtract(_mu); RealMatrix Cj = C[j]; if (Cj == null) { C[j] = rxResidual0.outerProduct(x[j].subtract(_mu)); } else { C[j] = Cj.scalarMultiply(1.d - _r) .add(rxResidual0.outerProduct(x[j].subtract(_mu))); RealVector xEstimateResidual = x_t.subtract(x_hat); this._sigma = _sigma.scalarMultiply(1.d - _r) .add(xEstimateResidual.mapMultiply(_r).outerProduct(xEstimateResidual));