public void Setup()
        {
            threeClassDataset          = ArffDataSet.Create <PositivityType>("Test");
            threeClassDataset.UseTotal = true;
            twoClassDataset            = ArffDataSet.CreateSimple("Test");
            twoClassDataset.UseTotal   = true;
            twoClassDataset.Header.RegisterNominalClass("Positive", "Negative");

            for (int i = 0; i < 20; i++)
            {
                var positive = threeClassDataset.AddDocument();
                positive.Class.Value = PositivityType.Positive;
                positive.AddRecord("Good");

                positive             = twoClassDataset.AddDocument();
                positive.Class.Value = "Positive";
                positive.AddRecord("Good");

                var negative = threeClassDataset.AddDocument();
                negative.Class.Value = PositivityType.Negative;
                negative.AddRecord("Bad");

                negative             = twoClassDataset.AddDocument();
                negative.Class.Value = "Negative";
                negative.AddRecord("Bad");
            }
        }
        public void Setup()
        {
            dataSet = ArffDataSet.CreateSimple("Test");
            dataSet.Header.RegisterNominalClass("One");
            var problemFactory = new ProblemFactory(dataSet);

            factory = new ParametersSelectionFactory(Task.Factory, problemFactory);
        }
Exemplo n.º 3
0
        public void Construct()
        {
            Assert.Throws <ArgumentNullException>(() => TrainedTreeData.Construct(null));
            var result = TrainedTreeData.Construct(ArffDataSet.CreateSimple("Test"));

            Assert.AreEqual(0, result.Children.Length);
            Assert.AreEqual(0, result.Count);
            Assert.AreEqual("Documents", result.Name);
            Assert.AreEqual("Documents (0)", result.Description);
        }
        public void CreateNull()
        {
            TrainingHeader header = TrainingHeader.CreateDefault();

            Assert.Throws <ArgumentNullException>(() => factory.Create(null, dataSet));
            Assert.Throws <ArgumentNullException>(() => factory.Create(header, null));
            header.GridSelection = false;
            var result = factory.Create(header, ArffDataSet.CreateSimple("Test"));

            Assert.IsInstanceOf <NullParameterSelection>(result);
        }
Exemplo n.º 5
0
        public void Construct()
        {
            var arff   = ArffDataSet.CreateSimple("Test");
            var header = TrainingHeader.CreateDefault();
            var model  = new Model();

            Assert.Throws <ArgumentNullException>(() => new TrainingResults(null, header, arff));
            Assert.Throws <ArgumentNullException>(() => new TrainingResults(model, null, arff));
            Assert.Throws <ArgumentNullException>(() => new TrainingResults(model, header, null));
            var instance = new TrainingResults(model, header, arff);

            Assert.IsNotNull(instance.Header);
            Assert.IsNotNull(instance.Model);
        }
        public void Setup()
        {
            var dataSet = ArffDataSet.CreateSimple("Test");
            var model   = new Model();

            model.NumberOfClasses           = 2;
            model.ClassLabels               = null;
            model.NumberOfSVPerClass        = null;
            model.PairwiseProbabilityA      = null;
            model.PairwiseProbabilityB      = null;
            model.SupportVectorCoefficients = new double[1][];
            model.Rho       = new double[1];
            model.Rho[0]    = 0;
            model.Parameter = new Parameter();
            instance        = new TrainingResults(model, TrainingHeader.CreateDefault(), dataSet);
        }
Exemplo n.º 7
0
        public void ConstructFull()
        {
            var dataSet = ArffDataSet.CreateSimple("Test");

            dataSet.Header.RegisterNominalClass("One", "Two");
            var review = dataSet.AddDocument();

            review.Class.Value = "One";
            review             = dataSet.AddDocument();
            review.Class.Value = "One";
            review             = dataSet.AddDocument();
            review.Class.Value = "Two";
            var result = TrainedTreeData.Construct(dataSet);

            Assert.AreEqual(2, result.Children.Length);
            Assert.AreEqual(3, result.Count);
            Assert.AreEqual("Documents", result.Name);
        }
Exemplo n.º 8
0
        public IArffDataSet CreateDataset(DocumentSet documentSet, CancellationToken token)
        {
            Guard.NotNull(() => documentSet, documentSet);
            log.Debug("CreateDataset");
            if (documentSet.Document == null ||
                documentSet.Document.Length == 0)
            {
                log.Warn("No documents");
                return(null);
            }

            var labels = (from item in documentSet.Document
                          from label in item.Labels
                          select label).Distinct().ToArray();

            if (labels.Length == 0)
            {
                log.Warn("No labels found");
                return(null);
            }

            var dataHolder = ArffDataSet.CreateSimple("subjectivity");

            dataHolder.Header.RegisterNominalClass(labels);
            foreach (var definition in documentSet.Document.Where(item => item.Labels.Length > 0))
            {
                token.ThrowIfCancellationRequested();
                var label  = definition.Labels.Last();
                var review = dataHolder.AddDocument();
                review.Class.Value = label;
                foreach (var record in definition.WordsTable)
                {
                    review.AddRecord(record.Key).Value = record.Value;
                }
            }

            return(dataHolder);
        }
        public void Setup()
        {
            training = new Mock <ITrainingModel>();
            var scheduler = new ConcurrentExclusiveSchedulerPair(TaskScheduler.Default, 2)
                            .ConcurrentScheduler;

            taskFactory = new TaskFactory(scheduler);
            parameters  = new GridSearchParameters(5, new double[] { 1, 2, 3, 4 }, new double[] { 1, 2, 3, 4 }, new Parameter());
            instance    = new GridParameterSelection(taskFactory, training.Object, parameters);

            var dataSet = ArffDataSet.CreateSimple("Test");

            dataSet.Header.RegisterNominalClass("One", "Two", "Three");
            dataSet.UseTotal = true;
            var one = dataSet.AddDocument();

            one.Class.Value = "One";
            one.AddRecord("Good");
            IProblemFactory factory = new ProblemFactory(dataSet);

            problem    = factory.Construct(dataSet).GetProblem();
            resetEvent = new ManualResetEvent(false);
        }
        public async Task TestMultiClass()
        {
            var dataSet = ArffDataSet.CreateSimple("Test");

            dataSet.Header.RegisterNominalClass("One", "Two", "Three");
            dataSet.UseTotal = true;
            for (int i = 0; i < 20; i++)
            {
                var one = dataSet.AddDocument();
                one.Class.Value = "One";
                one.AddRecord("Good");

                var two = dataSet.AddDocument();
                two.Class.Value = "Two";
                two.AddRecord("Bad");

                var three = dataSet.AddDocument();
                three.Class.Value = "Three";
                three.AddRecord("Some");
            }

            var         problemFactory = new ProblemFactory(dataSet);
            SvmTraining training       = new SvmTraining(problemFactory, dataSet);
            var         parameters     = training.SelectParameters(TrainingHeader.CreateDefault(), CancellationToken.None);
            var         results        = await training.Train(parameters).ConfigureAwait(false);

            var file = Path.Combine(TestContext.CurrentContext.TestDirectory, "data.arff");

            dataSet.Save(file);
            results.Model.Write(Path.Combine(TestContext.CurrentContext.TestDirectory, "label.dat"));
            var testFile = ArffDataSet.LoadSimple(file);

            SvmTesting testing = new SvmTesting(results.Model, problemFactory);
            var        result  = testing.Test(testFile, Path.Combine(TestContext.CurrentContext.TestDirectory, "."));

            Assert.AreEqual(1, result);
        }