public GerenciadorSinaisDinamicos(IRepositorio<Sinal> repositorio, ICaracteristicasSinalEstaticoComTipoFrame caracteristicas, IAlgoritmoClassificacaoSinais algoritmoClassificacaoSinaisDinamicos, IAlgoritmoClassificacaoSinais algoritmoClassificacaoSinaisEstaticos) : base(repositorio, algoritmoClassificacaoSinaisDinamicos) { this.caracteristicas = caracteristicas; this.algoritmoClassificacaoSinaisEstaticos = algoritmoClassificacaoSinaisEstaticos; this.repositorio = repositorio; }
private void ExecutarTestesDeReconhecimentoComRelatorio(IAlgoritmoClassificacaoSinais algoritmo, IRepositorio<Sinal> repositorioTestes, IRepositorio<Sinal> repositorioTreinamento) { var relatorio = new Relatorio(); for (var i = 0; i < repositorioTestes.Quantidade; i++) { var sinal = repositorioTestes.BuscarPorIndice(i); sinal.IdNoAlgoritmo = repositorioTreinamento .First(o => o.Descricao == sinal.Descricao) .IdNoAlgoritmo; for (var j = 0; j < sinal.Amostras.Count; j++) { var stopwatch = Stopwatch.StartNew(); var resultado = algoritmo.Classificar(sinal.Amostras[j]); stopwatch.Stop(); if (resultado == sinal.IdNoAlgoritmo) relatorio.AdicionarAcerto(sinal, stopwatch.ElapsedMilliseconds); else relatorio.AdicionarErro(sinal, repositorioTreinamento.BuscarPorIndice(resultado), j, stopwatch.ElapsedMilliseconds); } } relatorio.Imprimir(); }
private void ExecutarTestesDeReconhecimentoFramesComRelatorio(IAlgoritmoClassificacaoSinais algoritmo, IRepositorio<Sinal> repositorioTestes, IRepositorio<Sinal> repositorioTreinamento) { var caracteristicas = caracteristicasFactory.CriarGeradorDeCaracteristicasDeSinalEstaticoComTipoFrame(); var relatorio = new Relatorio(); for (var i = 0; i < repositorioTestes.Quantidade; i++) { var sinal = repositorioTestes.BuscarPorIndice(i); sinal.IdNoAlgoritmo = repositorioTreinamento .First(o => o.Descricao == sinal.Descricao) .IdNoAlgoritmo; for (var j = 0; j < sinal.Amostras.Count; j++) { caracteristicas.PrimeiroFrame = null; caracteristicas.TipoFrame = TipoFrame.Primeiro; var stopwatch = Stopwatch.StartNew(); var resultado = algoritmo.Classificar(new[] { sinal.Amostras[j].First() }); stopwatch.Stop(); if (resultado == sinal.IdNoAlgoritmo) relatorio.AdicionarAcerto(sinal, stopwatch.ElapsedMilliseconds, " - PRIMEIRO FRAME"); else { var indice = resultado >= repositorioTestes.Quantidade ? resultado - repositorioTestes.Quantidade : resultado; relatorio.AdicionarErro(sinal, repositorioTreinamento.BuscarPorIndice(indice), j, stopwatch.ElapsedMilliseconds, " - PRIMEIRO FRAME"); //var ddag = ""; //foreach (var t in ((Svm)algoritmo).path) // ddag += string.Format("[{0}, {1}]", t.Item1, t.Item2); //relatorio.AdicionarObservacao(ddag); } caracteristicas.PrimeiroFrame = sinal.Amostras[j].First(); caracteristicas.TipoFrame = TipoFrame.Ultimo; stopwatch = Stopwatch.StartNew(); resultado = algoritmo.Classificar(new[] { sinal.Amostras[j].Last() }); stopwatch.Stop(); if (resultado == sinal.IdNoAlgoritmo + repositorioTestes.Quantidade) relatorio.AdicionarAcerto(sinal, stopwatch.ElapsedMilliseconds, " - ÚLTIMO FRAME"); else { var indice = resultado >= repositorioTestes.Quantidade ? resultado - repositorioTestes.Quantidade : resultado; relatorio.AdicionarErro(sinal, repositorioTreinamento.BuscarPorIndice(indice), j, stopwatch.ElapsedMilliseconds, " - ÚLTIMO FRAME"); //var ddag = ""; //foreach (var t in ((Svm)algoritmo).path) // ddag += string.Format("[{0}, {1}]", t.Item1, t.Item2); //relatorio.AdicionarObservacao(ddag); } } } relatorio.Imprimir(); }
public GerenciadorSinaisEstaticos(IRepositorio<Sinal> repositorio, IAlgoritmoClassificacaoSinais algoritmoClassificacaoSinaisEstaticos) : base(repositorio, algoritmoClassificacaoSinaisEstaticos) { }