public override void Main() { var variables = (Variables)vars; var item = variables.SingleOrDefault(x => x.Value is IRegressionProblem || x.Value is IRegressionProblemData); if (item.Equals(default(KeyValuePair <string, object>))) { throw new ArgumentException("Could not find a suitable problem or problem data."); } string name = item.Key; IRegressionProblemData problemData; if (item.Value is IRegressionProblem) { problemData = ((IRegressionProblem)item.Value).ProblemData; } else { problemData = (IRegressionProblemData)item.Value; } var bestParameters = new RFParameter(); var bestSolution = GridSearch(problemData, out bestParameters); vars["bestSolution"] = bestSolution; vars["bestParameters"] = bestParameters; Console.WriteLine("R2 (training): " + bestSolution.TrainingRSquared + ", R2 (test): " + bestSolution.TestRSquared); Console.WriteLine("Model parameters: n = {0}, r = {1}, m = {2}", bestParameters.N, bestParameters.R, bestParameters.M); }
private static RandomForestClassificationSolution GridSearch(IClassificationProblemData problemData, out RFParameter bestParameters, int seed = 3141519) { double rmsError, outOfBagRmsError, relClassificationError, outOfBagRelClassificationError; bestParameters = RandomForestUtil.GridSearch(problemData, randomForestParameterRanges, seed, maximumDegreeOfParallelism); var model = RandomForestModel.CreateClassificationModel(problemData, problemData.TrainingIndices, bestParameters.N, bestParameters.R, bestParameters.M, seed, out rmsError, out outOfBagRmsError, out relClassificationError, out outOfBagRelClassificationError); return (RandomForestClassificationSolution)model.CreateClassificationSolution(problemData); }
private static RandomForestRegressionSolution GridSearch(IRegressionProblemData problemData, out RFParameter bestParameters, int seed = 3141519) { double rmsError, outOfBagRmsError, avgRelError, outOfBagAvgRelError; var random = new MersenneTwister(); bestParameters = RandomForestUtil.GridSearch(problemData, randomForestParameterRanges, seed, maximumDegreeOfParallelism); var model = RandomForestModel.CreateRegressionModel(problemData, problemData.TrainingIndices, bestParameters.N, bestParameters.R, bestParameters.M, seed, out rmsError, out outOfBagRmsError, out avgRelError, out outOfBagAvgRelError); return (RandomForestRegressionSolution)model.CreateRegressionSolution(problemData); }
public override void Main() { var variables = (Variables)vars; var item = variables.SingleOrDefault(x => x.Value is IClassificationProblem || x.Value is IClassificationProblemData); if (item.Equals(default(KeyValuePair<string, object>))) throw new ArgumentException("Could not find a suitable problem or problem data."); string name = item.Key; IClassificationProblemData problemData; if (item.Value is IClassificationProblem) problemData = ((IClassificationProblem)item.Value).ProblemData; else problemData = (IClassificationProblemData)item.Value; var bestParameters = new RFParameter(); var bestSolution = GridSearch(problemData, out bestParameters); vars["bestSolution"] = bestSolution; vars["bestParameters"] = bestParameters; Console.WriteLine("Accuracy (training): " + bestSolution.TrainingAccuracy + ", Accuracy (test): " + bestSolution.TestAccuracy); Console.WriteLine("Model parameters: n = {0}, r = {1}, m = {2}", bestParameters.N, bestParameters.R, bestParameters.M); }
private static RandomForestRegressionSolution GridSearch(IRegressionProblemData problemData, out RFParameter bestParameters, int seed = 3141519) { double rmsError, outOfBagRmsError, avgRelError, outOfBagAvgRelError; var random = new MersenneTwister(); bestParameters = RandomForestUtil.GridSearch(problemData, randomForestParameterRanges, seed, maximumDegreeOfParallelism); var model = RandomForestModel.CreateRegressionModel(problemData, problemData.TrainingIndices, bestParameters.N, bestParameters.R, bestParameters.M, seed, out rmsError, out outOfBagRmsError, out avgRelError, out outOfBagAvgRelError); return((RandomForestRegressionSolution)model.CreateRegressionSolution(problemData)); }
private static RandomForestClassificationSolution GridSearch(IClassificationProblemData problemData, out RFParameter bestParameters, int seed = 3141519) { double rmsError, outOfBagRmsError, relClassificationError, outOfBagRelClassificationError; bestParameters = RandomForestUtil.GridSearch(problemData, randomForestParameterRanges, seed, maximumDegreeOfParallelism); var model = RandomForestModel.CreateClassificationModel(problemData, problemData.TrainingIndices, bestParameters.N, bestParameters.R, bestParameters.M, seed, out rmsError, out outOfBagRmsError, out relClassificationError, out outOfBagRelClassificationError); return((RandomForestClassificationSolution)model.CreateClassificationSolution(problemData)); }