Beispiel #1
0
        /// <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);
            }
        }