示例#1
0
 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)));
 }
示例#2
0
        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));
        }
示例#3
0
        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));
        }
示例#4
0
 public static IEnumerable <LinearRegressionResult> Run()
 {
     LinearRegressionResult.GivenData data = GenerateGivenData(Fig_1_2.NoiseSeed, Fig_1_2.NbTrain);
     return(Run(data));
 }