Example #1
0
        public void adicionando_dados_de_treinamento2()
        {
            var dadosTreinamento = new DadosTreinamento();

            var caracteristicas = new[]
            {
                new[] { 2.0, 2.5 },
                new[] { 1.3, 2.0 },
                new[] { 8.1, 3.5 },
                new[] { 2.2, 4.5 }
            };
            var classes = new[] { 0, 1, 1, 0 };

            dadosTreinamento.Adicionar(caracteristicas[0], classes[0]);
            dadosTreinamento.Adicionar(caracteristicas[1], classes[1]);
            dadosTreinamento.Adicionar(caracteristicas[2], classes[2]);
            dadosTreinamento.Adicionar(caracteristicas[3], classes[3]);

            dadosTreinamento.Saidas.Should().HaveSameCount(classes);
            dadosTreinamento.Entradas.Should().HaveSameCount(caracteristicas);

            for (var i = 0; i < caracteristicas.Length; i++)
            {
                dadosTreinamento.Entradas[i].Should().ContainInOrder(caracteristicas[i]);
                dadosTreinamento.Saidas[i].Should().Be(classes[i]);
            }
        }
Example #2
0
        public DadosTreinamento Extrair(EmailRecebido[] emailsRecebidos)
        {
            var dadosTreinamento = new DadosTreinamento();
            foreach (var emailRecebido in emailsRecebidos)
            {
                var caracteristicas = geradorCaracteristicas.Extrair(emailRecebido);
                var classe = colecaoChaveValor.ObterValor(emailRecebido.Categoria);
                dadosTreinamento.Adicionar(caracteristicas, classe);
            }

            return dadosTreinamento;
        }
Example #3
0
        public void classificando_caracteristicas()
        {
            var dadosTreinamento = new DadosTreinamento();
            dadosTreinamento.Adicionar(new [] { 1.0, 1.0 }, 0);
            dadosTreinamento.Adicionar(new [] { 0.5, 0.5 }, 1);
            dadosTreinamento.Adicionar(new [] { 1.5, 1.5 }, 2);

            var svm = new Svm();

            svm.Treinar(dadosTreinamento);

            var classe = svm.Classificar(new[] {0.3, 0.3});
            classe.Should().Be(1);
        }
Example #4
0
        public void adicionando_dados_de_treinamento()
        {
            var dadosTreinamento = new DadosTreinamento();

            var caracteristicas = new[] { 2.0, 2.5 };
            var classe = 0;

            dadosTreinamento.Adicionar(caracteristicas, classe);

            dadosTreinamento.Saidas.Should().HaveCount(1);
            dadosTreinamento.Saidas.Should().OnlyContain(s => s == 0);
            dadosTreinamento.Entradas.Should().HaveCount(1);
            dadosTreinamento.Entradas.Should().OnlyContain(a => a[0] == caracteristicas[0] && a[1] == caracteristicas[1]);
        }
Example #5
0
File: Svm.cs Project: ejulio/AMail
        public void Treinar(DadosTreinamento dadosTreinamento)
        {
            var kernel = new Linear(1);
            var quantidadeCaracteristicas = dadosTreinamento.Entradas[0].Length;
            var quantidadeClasses = dadosTreinamento.Saidas.Distinct().Length;
            svm = new MulticlassSupportVectorMachine(quantidadeCaracteristicas, kernel, quantidadeClasses);

            var learning = new MulticlassSupportVectorLearning(svm, dadosTreinamento.Entradas, dadosTreinamento.Saidas)
            {
                Algorithm = (machine, inputs, outputs, a, b) => new SequentialMinimalOptimization(machine, inputs, outputs)
                {
                    Complexity = 1.0
                }
            };

            learning.Run();
        }
Example #6
0
        public void treinando_algoritmo_de_classificacao()
        {
            var emailsRecebidos = new[]
            {
                new EmailRecebido("email", "email"),
                new EmailRecebido("email", "email"),
                new EmailRecebido("email", "email")
            };

            var dadosTreinamento = new DadosTreinamento();
            geradorDadosTreinamento.Extrair(emailsRecebidos).Returns(dadosTreinamento);

            classificadorEmail.Treinar(emailsRecebidos);

            geradorDadosTreinamento.Received().Extrair(emailsRecebidos);
            algoritmoClassificacao.Received().Treinar(dadosTreinamento);
        }