/// <summary> /// Trains a linear regression model to predict bicycle sharing patterns /// Files can be downloaded from https://archive.ics.uci.edu/ml/machine-learning-databases/00275/ /// </summary> /// <param name="dataFilePath">The path to the csv file</param> public static void PredictBicyclesWithNeuralNetwork(string dataFilePath) { var dataTable = _LoadBicyclesDataTable(dataFilePath); var split = dataTable.Split(0); using (var lap = BrightWireProvider.CreateLinearAlgebra(false)) { var graph = new GraphFactory(lap); var errorMetric = graph.ErrorMetric.Quadratic; var trainingData = graph.CreateDataSource(split.Training); var testData = trainingData.CloneWith(split.Test); graph.CurrentPropertySet .Use(graph.Adam()) ; var engine = graph.CreateTrainingEngine(trainingData, 1.3f, 128); graph.Connect(engine) .AddFeedForward(16) .Add(graph.SigmoidActivation()) //.AddDropOut(dropOutPercentage: 0.5f) .AddFeedForward(engine.DataSource.OutputSize) //.Add(graph.SigmoidActivation()) .AddBackpropagation(errorMetric) ; engine.Train(500, testData, errorMetric); } }