public GP(IMatrixkernel kernel, double length, double noise) { this._kernel = kernel; this._length = length; this._noise = noise; this._Kte = kernel.Main(DistanceMatrix.Instance.Matrix, length); }
public GPDynamic(IMatrixkernel kernel, double length, double noise) { this.kernel = kernel; this.length = length; this.noise = noise; //this.results = results; //Mte = Kte.RowCount; //z = RandomHelper.randnArray(Mte); //p = RandomHelper.randnArray(Mte); }
public static (Vector <double>, Svd <double>) Evaluate(double[] testPointsX, double[] trainingPointsX, double[] trainingPointsY, IMatrixkernel kernel, double length, Svd <double> svd1, Matrix <double> Kte) { var gpOut = new GPOut(); Svd <double> svd; var dmTeTr = MathHelper.ComputeDistanceMatrix(testPointsX, trainingPointsX.ToArray()); var tmp = kernel.Main(dmTeTr, length) * svd1.U; Vector <double> v = Vector <double> .Build.DenseOfEnumerable(trainingPointsY); var mu = tmp * (svd1.S.PointwiseMultiply(svd1.U.Transpose() * v)); var cov = tmp * Matrix <double> .Build.DenseOfDiagonalVector(svd1.S.PointwiseSqrt()); cov = cov * cov.Transpose(); cov = Kte - cov; svd = cov.Svd(); for (int i = 0; i < svd.S.Count; i++) { svd.S[i] = svd.S[i] < Double.Epsilon ? 0 : svd.S[i]; } return(mu, svd); }
//public void Reset() //{ // TrainingPointsX.Clear(); // TrainingPointsY.Clear(); //} public GP2(IMatrixkernel kernel, double length, double noise) { this.kernel = kernel; this.length = length; this.noise = noise; }