示例#1
0
 public void TestDatasetRegressionPreprocess()
 {
     double[,] x = { { 0, 1 }, { 2, 3 }, { 0, 4 } };
     AreEqual(
         new[]
     {
         new[] { new double[] { 0, 0, 2 }, new double[] { 0, 2, 1 } },
         new[] { new double[] { 1, 3, 4 }, new double[] { 0, 1, 2 } }
     }, AcceleratedGradientBoostingClassifier.RegressDataset(x, 3));
 }
示例#2
0
        DatasetBenchmarkAgbcTest()
        {
            const string path = BasePath +
                                "\\heart.csv";
            var lineCount  = File.ReadLines(path).Count();
            var reader     = new StreamReader(File.OpenRead(path));
            var properties = new double[lineCount, 14];

            for (var i2 = 0; i2 < lineCount; i2++)
            {
                var line = reader.ReadLine();
                for (var i = 0; i < 14; i++)
                {
                    if (line == null)
                    {
                        continue;
                    }
                    var values = line.Split(',');
                    properties[i2, i] = Convert.ToDouble(values[i]);
                }
            }

            var xTrain = new double[lineCount, 13];
            var yTrain = new int[lineCount];

            for (var i = 0; i < lineCount; i++)
            {
                for (var j = 0; j < 13; j++)
                {
                    xTrain[i, j] = properties[i, j];
                }

                yTrain[i] = (int)properties[i, 13];
            }

            var model = new AcceleratedGradientBoostingClassifier(epochs: 100, shrinkage: 0.9);

            model.Fit(xTrain, yTrain);
            WriteLine("Training data:");
            var predicted = model.Predict(xTrain);

            WriteLine("Accuracy:");
            var accuracy = Accuracy(predicted, yTrain);

            WriteLine(accuracy);
            PrintDataset(yTrain);
            PrintDataset(predicted);
            Greater(accuracy, 0.65);
        }
示例#3
0
        public void TestAcceleratedGradientBoostingClassifier()
        {
            AcceleratedGradientBoostingClassifier agbc = new AcceleratedGradientBoostingClassifier(50, 0.8);

            double[,] x = { { 0, 0, 0 }, { 1, 1, 1 }, { 2, 2, 2 }, { 3, 3, 3 } };
            int[] y = { 1, 2, 3, 4 };
            agbc.Fit(x, y);
            PrintDataset(agbc.Predict(x));
            PrintDataset(agbc.Regress(x));
            var prediction = agbc.Predict(x);

            WriteLine("Accuracy:");
            var accuracy = Accuracy(prediction, y);

            WriteLine(accuracy);
            AreEqual(accuracy, 1.0);
        }