Seu Curso

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

Como usar o OpenForecast para previsão de série de dados

Imprimir
Avaliação do Usuário: / 6
PiorMelhor 

A previsão é um bom recurso que você pode adicionar nas suas aplicações para fornecer em seus relatórios a tentativa de estimar como os números se comportarão em um futuro próximo.

 

Para realizar previsões isso são necessárias ferramentas de mineração de dados (data minning), uma boa dose de matemática um alguma coisa de Inteligência Artificial.

 

Tudo isso pode ser solucionado e encontrado na biblioteca JAVA de código aberto chamada OpenForecast.

 

A OpenForecast possui grandes vantagens, entre elas:

 

1.       Proporciona escalabilidade e flexibilidade para a aplicação;

2.       Possui código fonte aberto, ou seja, pode ser estudada e melhorada se for o caso;

3.       Permite a inclusão de qualquer tido de dado na série a ser estudada;

4.       É gratuita, mas recomenda-se doações ao projeto caso resolva usar isso para ganhar dinheiro, também cite esse artigo e site, por favor.

 

Para realizar uma previsão (predição) a abordagem, usando o OpenForecast é:

 

1.       Adicionar o conjunto de dados passados à previsão: quanto mais dados passados forem fornecidos à biblioteca mais precisão será obtida na previsão a ser feita.

2.       Definir os dados de teste e aprendizado para a previsão: use dados já conhecido em uma primeira vez, por exemplo, tente prever um dado o qual já é bem conhecido para verificar a precisão de sua previsão. Com poucos ajustes na quantidade de dados passados e como eles serão apresentados à biblioteca é possível ter previsões bastante precisas.

3.       Realizar a previsão propriamente dita: apresente os dados à biblioteca e colha o resultado.

 

Vamos fazer um exemplo, para o qual irei utilizar o Netbeans, sendo assim inicie um novo projeto de um aplicativo JAVA:

 

 

 

Baixe a biblioteca do OpenForecast em http://openforecast.sourceforge.net/ , há também uma cópia para download em http://www.seucurso.com.br/downloads/OpenForecast-0.5.0.jar, e salve-a junto ao seu projeto. Adicione o OpenForecast-x.y.z.jar, onde x, y e z é a versão do arquivo, ao projeto, clicando com o botão da direita do mouse sobre o item Bibliotecas e em seguida sobre a opção Adiciona JAR/Pasta:

 

 

 

Agora vamos ao código exemplo, dentro do método main:

 

        // Criar Observação da temperatura lida em 20/01/2012
        Observation observacao1 = new Observation(32.0); 
        observacao1.setIndependentValue ("serie",1); 
 
        // Criar Observação da temperatura lida em 21/01/2011
        Observation observacao2 = new Observation(30.0); 
        observacao2.setIndependentValue ("serie",2);
 
        // Criar Observação da temperatura lida em 22/01/2011
        Observation observacao3 = new Observation(27.0); 
        observacao3.setIndependentValue ("serie",3);
        
        // Criar Observação da temperatura lida em 23/01/2011
        Observation observacao4 = new Observation(29.0); 
        observacao4.setIndependentValue ("serie",4);
 
        DataSet dataSet = new DataSet (); 
 
        // Adicionar observações ao DataSet 
        dataSet.add (observacao1); 
        dataSet.add (observacao2); 
        dataSet.add (observacao3); 
        dataSet.add (observacao4); 
        
        // Criar o modelo de previsão
        ForecastingModel modelo = Forecaster.getBestForecast(dataSet); 
        modelo.init(dataSet); 
 
        // Criar próximo ponto de previsão, o qual será previsto
        DataPoint fcDataPoint = new Observation(0.0); 
        fcDataPoint.setIndependentValue ("serie", 5); 
        
        // Criar conjunto de dados de previsão e adicionar esses pontos de dados 
        DataSet fcDataSet = new DataSet(); 
        fcDataSet.add (fcDataPoint); 
        
        // Gerar a previsão
        Iterator itt = fcDataSet.iterator();
        Double value;
        DataPoint dp = (DataPoint) itt.next();
        double forecastValue = dp.getDependentValue();
        value = forecastValue; 
        modelo.forecast(fcDataPoint);
        
        System.out.println("Valor previsto= " + fcDataPoint.getDependentValue());

 

Execute e terá o seguinte resultado:

 

 

 

Valor previsto = 26.5

 

Note que prever um próximo evento em uma série temporal não é tão simples assim, mas essa biblioteca pode lhe economizar um monte de matemática pesada. A ideia foi mostrar que o OpenForecast existe e como usá-la basicamente.

 

Divirta-se!

Adicionar comentário


Código de segurança
Atualizar

You are here: