13/06/2018 Luis Uzai

Executando previsões com inteligência artificial de forma rápida e prática

Neste post, vamos demonstrar um exemplo de utilização de métodos simples de inteligência artificial para aplicações práticas utilizando R direto da ferramenta Power BI. 

Para seguir com o tutorial é necessário que seja instalado o Power BI e do R for Windows.

Uma dificuldade comum para os desenvolvedores é fazer estimativas assertivas. Imagine a vantagem de ter de forma automática para obter macro estimativas de desenvolvimento com base no histórico? Isso pode facilitar o gerenciamento de projetos em geral, pois daria uma ideia do tamanho da demanda antes dos desenvolvedores desempenharem tempo nas estimativas. Bom, vamos tentar algo semelhante utilizando regressão linear.  

Primeiro, para treinar o modelo utilizarei os seguintes dados históricos: 

  • Estimativa dos requisitos 
  • Tempo realizado para escrita dos requisitos 
  • Tempo estimado das tarefas  
  • Tempo realizado das tarefas 

O Tempo realizado das tarefas é nossa classe e o valor que pretendemos predizer.  

Para obter os dados, é possível acessar o botão “Obter Dados” do Power BI e alimenta-lo com uma consulta no banco ou pela importação de arquivos (csv, xlsx, etc..), temos então os dados: 

inteligência artificial tutorial

Tendo os dados carregados podemos acessar o menu ou “Editar Consulta” localizada na aba principal, e em seguida, acionar o botão ou “Executar Script R” na aba “Transformar”. 

tutorial inteligência artificial

Agora é possível escrever o script na linguagem R. conforme descrito no comentário (#) a variável dataset possui um dataframe com os valores obtidos pela consulta.  

Primeiro, é preciso atribuir o dataset a uma variável de retorno para usamos em visões futuras 

resultado <- dataset 

É possível criar um modelo treinado com regressão linear em R utilizando a função lm (linear model). 

modelo <- lm(TempoGastoDesenvolvimento ~ EstimativaRequisito + TempoGastoRequisito + EstimativaDesenvolvimento, dataset) 

A função cria o modelo linear considerando a classe como TempoGastoDesenvolvimento e os outros campos como insumo para o cálculo.  

Em seguida, tendo um modelo de dados já treinado, é possível realizar previsões. Nesse caso, usaremos o mesmo dataset para previsões para simplificar um conjunto de treinamento e teste. 

resultado $CalculadoIA <- predict(modelo, resultado) 

Está sendo armazenado o resultado de cada linha prevista na nova coluna “CalculadoIA”.  

tutorial inteligência artificial

Depois de Fechar e Aplicar a nova coluna, irá pertencer a base de dados:

Tutorial inteligência artificial

Usando o Entregável como Eixo, é evidente que mesmo errando algumas vezes na média, a previsão da estimativa é bem próxima da realizada pelo desenvolvimento, sendo em vários casos até mais assertiva.

Tutorial inteligência artificial

Vermelho = o Tempo Gasto Real, Amarelo = o Tempo Estimado pelo Desenvolvimento e Azul = o tempo Estimado pela Regressão Linear

tutorial inteligência artificial

tutorial inteligência artificial

É importante lembrar que desde a versão 2016, o SQL Server possui suporte para execução de código R pela system procedure sys.sp_execute_external_script (pretendo demonstrar o funcionamento em outro post) e que todos os exemplos demonstrados aqui podem ser aplicados diretamente no SQL Server. 

Comentários

comentários

Sobre o autor

Luis Uzai Luis Uzai é desenvolvedor, trabalhando com .net e T-SQL desde 2010. Graduado em informática para gestão de negócios, especialista em engenharia de software e mestrando em inteligência artificial. Atualmente, desenvolvedor e Scrum Master na DB1 IT Services. Seus interesses principais são em análise de dados e inteligência artificial, especialmente análise e detecção de anomalias em séries temporais.