Example #1
0
        private static void ProccessDataSetNominalNearestNeighbor(IDataSet <int, int> training_set, IDataSet <int, int> test_set)
        {
            ITemplateModelDiscrete <int, int> template = new TemplateModelFeatureSelecting <int, int>(
                new FeatureSelectorGreedy <int, int>(
                    new EvaluatorReapetedRandomFold <int, int>(10)),
                new TemplateModelNearestNeighborNominal());
            ReportDiscrete <int, int> report = template.GenerateAndTestDiscrete(training_set, test_set);

            Console.WriteLine(ToolsCollection.ToString(report.ConfusionMatrixInstances));
            Console.WriteLine(report.CorrectLabelRate);
        }
        public double Evaluate(ITemplateModelDiscrete <DomainType, LabelType> template, IDataSet <DomainType, LabelType> data_set, ISet <int> feature_set)
        {
            IDataSet <DomainType, LabelType> selected_data_set = data_set.SelectFeatures(new List <int>(feature_set));

            double[] scores = new double[this.FoldCount];
            Parallel.For(0, this.FoldCount, fold_index =>
            {
                Tuple <IDataSet <DomainType, LabelType>, IDataSet <DomainType, LabelType> > split = selected_data_set.Split(this.TrainingSetFraction);
                ReportDiscrete <DomainType, LabelType> report = template.GenerateAndTestDiscrete(split.Item1, split.Item2);
                scores[fold_index] = report.CorrectLabelRate;
            });
            return(ToolsMathCollection.Sum(scores) / ((double)this.FoldCount));
        }
Example #3
0
        private static void ProccessDataSetNominalSupportVectorMachine(IDataSet <int, int> training_set, IDataSet <int, int> test_set)
        {
            //ITemplateModelInterval<int, IModelLikelyHood<double[], int, double>>
            IDataSet <double, int> training_set_interval = training_set.ConvertToDataSetInterval();
            IDataSet <double, int> test_set_interval     = test_set.ConvertToDataSetInterval();
            //ITemplateModelDiscrete<IDataSetIntervalLabeled<double,int>, IModelLikelyHood<double[], int, double>> template =
            //    new TemplateModelFeatureSelecting<double, int, IDataSetIntervalLabeled<double, int>>(
            //        new FeatureSelectorGreedy<double, int, IDataSetIntervalLabeled<double,int>>(
            //        new EvaluatorReapetedRandomFold<double, int, IDataSetIntervalLabeled<double, int>>(10)),
            //        new TemplateModelLibSVMCSVC());

            ITemplateModelDiscrete <double, int> template = new TemplateModelLibSVMCSVC(100, 5);

            ReportDiscrete <double, int> report = template.GenerateAndTestDiscrete(training_set_interval, test_set_interval);

            Console.WriteLine(ToolsCollection.ToString(report.ConfusionMatrixInstances));
            Console.WriteLine(report.CorrectLabelRate);
        }