private static IEnumerable <LinearRegressionResult> Run(LinearRegressionResult.GivenData data) { return(PolynomialDegrees .Select(polynomialDegree => Predict(data, polynomialDegree)) .Select(tpl => new LinearRegressionResult( degree: tpl.Item1, givenData: data, calibratedData: tpl.Item2))); }
private static (int, LinearRegressionResult.CalibratedData) Predict(LinearRegressionResult.GivenData data, int polynomialDegree) { IFeature feature = new PolynomialFeature(polynomialDegree); Matrix <double> designMatrix = ToyDataGenerater.DesignMatrix(data.X_train, feature); Matrix <double> invDesignMatrix = designMatrix.PseudoInverse(); Vector <double> weights = invDesignMatrix * data.T_train; Vector <double> t_test = Predicts(data.X_test, weights, feature); return(polynomialDegree, new LinearRegressionResult.CalibratedData(t_test, weights)); }
public static LinearRegressionResult Run(int polynomialDegree, int noiseSeed, int nbTrain) { LinearRegressionResult.GivenData data = GenerateGivenData(noiseSeed, nbTrain); (int, LinearRegressionResult.CalibratedData)tpl = Predict(data, polynomialDegree); return(new LinearRegressionResult( degree: tpl.Item1, givenData: data, calibratedData: tpl.Item2)); }
public static IEnumerable <LinearRegressionResult> Run() { LinearRegressionResult.GivenData data = GenerateGivenData(Fig_1_2.NoiseSeed, Fig_1_2.NbTrain); return(Run(data)); }