private static List <double[]> SolveWithLinearRegression(DataSet ds, DataSet dt, LinearModel model) { LLSGradientDescent gd = new LLSGradientDescent(); //Calling the Train method of the trainer with the desired parameters //n, ds, learningRate: .3, numberOfEpochs: 200, shuffle: false, debug: n.Debug, nestrov:false, momentum:0.9, resilient: false, resilientUpdateAccelerationRate: 0.3, //resilientUpdateSlowDownRate: 0.1, regularization: AA1_MLP.Enums.Regularizations.L2, regularizationRate: 0.001, validationSet: dt, batchSize: 7 LinearLeastSquaresParams passedParams = new LinearLeastSquaresParams { model = model }; passedParams.trainingSet = ds; passedParams.learningRate = 1; passedParams.numOfIterations = 3000; passedParams.shuffle = false; passedParams.debug = false; passedParams.regularizationRate = 0.01; passedParams.regularizationType = Regularizations.None; passedParams.validationSet = dt; passedParams.degree = 30; var learningCurve = gd.Train(passedParams); return(learningCurve); }
/// <summary> /// For outputting the LLS solution results /// </summary> /// <param name="trainsetpath"></param> /// <param name="testsetpath"></param> private static void CupTestingLLS(string trainsetpath, string testsetpath) { CupDataManager dm = new CupDataManager(); DataSet trainset = dm.LoadData(trainsetpath, 10, 2, standardize: true); DataSet testset = dm.LoadData(testsetpath, 10, 2, standardize: true); LinearModel model = new LinearModel { bias = true }; //**trying SVD LinearLeastSquaresParams passedParams = new LinearLeastSquaresParams { model = model, numOfIterations = 5000, learningRate = 0.1, degree = 1 }; passedParams.trainingSet = trainset; passedParams.validationSet = testset; Console.WriteLine("SVD solution:"); var svdlearningCurve = new LLSSVD().Train(passedParams); Console.WriteLine("Normal Equations Solution:"); var normallearningCurve = new LLSNormal().Train(passedParams); Console.WriteLine("GD Solution:"); var gdlearningCurve = new LLSGradientDescent().Train(passedParams); }