Example #1
0
        static void Main(string[] args)
        {
            var cases = FileProvider.Load <BreastCancerData>("");
            var folds = CrossValidator.CreateFolds(cases, 5, true);

            var watch = Stopwatch.StartNew();

            for (var k = 1; k < 31; k++)
            {
                var k1     = k;
                var result = CrossValidator.ValidateInParallel <int>(folds, cases, ReasonerBuilder, PipelineBuilder);
                Console.WriteLine($"K: {k1}, AverageTime: {result.ValidationTime}, Accuracy: {result.Accuracy():0.####}");

                TransformerPipeline PipelineBuilder() =>
                new TransformerPipeline()
                .Add(new MinMaxNormalizer());

                Reasoner ReasonerBuilder()
                {
                    var cycle = new ReasoningCycle()
                                .AddRetriever(new LshRetriever(15, 3))
                                .AddRetriever(new SimilarityRetriever(new MinkowskiDistance(2), 35))
                                .SetReuser(new KnnReuser(k1));

                    return(new Reasoner(cycle));
                }
            }

            watch.Stop();
            Console.WriteLine($"TotalExecutionTime: {watch.ElapsedMilliseconds}, AverageFoldTime: {watch.ElapsedMilliseconds / 30d}");
            Console.ReadLine();
        }