Criando aprendizado de máquinas Desenvolvimento e ambiente de produção com Power BI – Parte 1

Para um melhor funcionamento de um projeto de BI, há necessidade de isolar o ambiente de desenvolvimento e o ambiente de produção. Configurar esses ambientes nos ajuda a oferecer um produto mais confiável aos nossos clientes.

Os projetos de machine learning também precisam de um ambiente de desenvolvimento, teste e produção.

Neste artigo, vou mostrar-lhe como podemos fazer isso no ambiente Power BI com a ajuda da Linguagem M e Power Query.

 

O que significa ambiente de desenvolvimento em projetos de machine learning

De acordo com o quadro abaixo (Data Science LifeCycle), após a compreensão do negócio, precisamos obter os dados e fazer a modelagem. Podemos colocar o estágio de aquisição e modelagem de dados no ambiente de desenvolvimento. A fase final que é o modelo de implantação deve ser colocada, também, no ambiente de desenvolvimento.

Figura 1. Ciclo de vida da ciência de dados – proposto pelo centro de pesquisa da Microsoft

 

Para simplificar, precisamos de um ambiente para treinar e testar o modelo, e outro ambiente para a implantação do modelo.  Então o usuário final pode trabalhar e fazer a previsão.

Figura 2. O ambiente diferente para a aprendizagem de máquina

 

Ambientes diferentes em Power BI – Power Query

Executaremos uma análise preditiva para o problema de classificação no Power Query usando o algoritmo da árvore de decisão (rpart para este exemplo). Só para lembrar, o Power BI é uma ferramenta de BI self-service. Ele é usado para visualização de dados, integração de dados e modelagem.

Existe a possibilidade de executar códigos R dentro do Power BI / Power Query.  Vamos usar o Power Query através de Edit Queries.

Figura 3. Janela do Edit Query

No Power Query, escolha New Source-> Texto/CSV, então escolha o arquivo (titanic.csv).  O conjunto de dados do Titanic é como um Hello World para ciência dos dados. Este é um conjunto de dados gratuito que você pode baixá-lo aqui Basta carregar o conjunto de dados. Depois de carregar o conjunto de dados, você pode ver a janela abaixo.

Figura 4. Ambiente do Power Query, após carregar o conjunto de dados Titanic.

Como você pode ver na figura 4, no número 1, temos o nome do conjunto de dados no grupo de consulta. A segunda área é o número 2, que mostra a coluna de dados e atributos para o Titanic. No número 3 na figura acima, você pode ver as etapas para obter os dados do recurso alterar o tipo de coluna (essas etapas são aplicadas automaticamente). Finalmente, no número 4, há um editor de código para linguagem M. O idioma M aumenta as possibilidades de fazer a limpeza de dados e a disputa de dados para nós.

Clique na guia Transform e, em seguida, em Run R scripts.

 

Ambiente de Treinamento

Nós vamos prever que uma pessoa com uma idade específica, gênero, a classe de passageiros vai sobreviver ou não. Para resolver esta questão, escrevi o código abaixo:

biblioteca (rpart)

Rpart é um famoso pacote R para a árvore de decisão. Eu já instalei este pacote no Rstudio e então aqui eu apenas me referi a ele.

Na próxima etapa, vou especificar o conjunto de dados de treinamento e teste. Para esse objetivo primeiro eu calculo o número de linhas no conjunto de dados usando o comando abaixo:

numrows <-nrow (conjunto de dados)

No próximo passo, vou tirar dados de 80% para treinamento e 20% para teste.

sampledata <- sample (numrows, 0.8 * numrows)
treinar <-dataset [sampledata,]
teste <-dataset [-sampledata,]

Agora, o conjunto de dados para treinamento está pronto. A seguir, aproveitamos a função rpart para criar um modelo de árvore de decisão. O primeiro parâmetro é a fórmula para criar um modelo g (Sobreviveu ~.). O segundo é o conjunto de dados de treinamento e o último é o método. O método para esta previsão é a classificação, portanto, para os últimos parâmetros eu uso “class”.
DT <-rpart (Sobreviveu ~., Data = train, method = “class”)

Finalmente, eu uso o comando predict para aplicar conjunto de dados de teste ao nosso modelo criado.
predição <-predict (DT, teste)

Para mostrar o resultado da previsão, criei um quadro de dados a partir do resultado de previsão e do conjunto de dados de teste.
rpartresult <-data.frame (previsão, teste)

Finalmente, ao explorar o resultado, recebi a tabela abaixo. A primeira coluna é para pessoas que não sobreviveram, a segunda coluna é para pessoas que sobreviveram.

 

Ambiente de Treinamento

Criamos um ambiente de Treinamento para que outros usuários podem aplicar uma lista para classificação ou regressão em seus dados.

Etapa 1- Criar uma função

Na primeira etapa, vou clicar com o botão direito na query do Titanic, para criar uma função.

Em seguida, atribua um nome para função, como “rpartFunction”

Como você pode ver na figura abaixo, criamos uma função que ainda não possui argumentos. Para passar argumentos para esta função, precisamos clicar em Editor Avançado (número 3).

 

Vamos mudar as três primeiras linhas como abaixo

Substitua as três primeiras linhas de código conforme abaixo

(#”Source Table” as table,#”Prediction Column”as text,Split as number, Method as text) as table=>

let
Source = #”Source Table”,

1- Source Table – tabela para treinamento (no nosso caso o arquivo.csv)

2- Prediction Coulm – quais atributos vamos prever

3-Split- quanto de dados devem ser treinados e quanto de teste

4-Method – a previsão é para classificação ou regressão

Também na linha 6, podemos ver uma tag para “RunRscripts” e você pode ver o código já escrito no editor de script R.

http://radacad.com/wp-content/uploads/2018/01/13.png

Agora precisamos remover todas as etapas antes de executar os scripts R e colocar os parâmetros dentro dos códigos R.

Precisamos fazer mais mudanças no código, como você pode ver na figura abaixo.

Como mostra a figura, removemos outras linhas até a execução de scripts r.  Então nós começamos a substituir alguma variável. Por exemplo, na figura acima, substituímos o 0.8 por “&Text.From(Split)& “ .

Precisamos substituir outras variáveis, Sobrevivente, Method e dataset.

Como você pode ver na figura acima, na função rpart , substituímos a coluna Sobrevivente com: “& #” Prediction Column “&”, também substituímos “class” por “” “& Method &” “”. Finalmente, no final da linha para o dataset, nós o substituímos por “Source”.

Agora temos quatro parâmetros que foram substituídos no código.

Como você pode ver na imagem acima, agora temos quatro parâmetros principais. Para executar o código, precisamos apenas fornecer os dados. Criamos um novo conjunto de dados para Titanic que possui apenas as quatro colunas principais e todos os valores nulos foram removidos.

Agora chamamos a função, fornecendo os parâmetros

Depois de chamar o código, o resultado da previsão será mostrado como uma nova consulta.

 

Agora, vamos importar um novo conjunto de dados para o câncer e aplicar a função rpart para prever que um paciente se torne benigno ou maligno.

http://radacad.com/wp-content/uploads/2018/01/20.png

Para este post, não normalizei os dados de câncer.  Mas há necessidade de fazer uma preparação dos dados. Eu forneci os dados para invocar a função rpart de classificação como segue

http://radacad.com/wp-content/uploads/2018/01/21.png

Depois de disparar a função, abrirá a página de permissão para executar a consulta e mostrar os r scripts que serão executados.

http://radacad.com/wp-content/uploads/2018/01/22.png

Depois de executar o código, o resultado abaixo foi mostrado

http://radacad.com/wp-content/uploads/2018/01/23.png

 

Agora, faremos um outro exercício, vamos usar a função rpart para a regressão preditiva.  Eu vou prever a força do concreto.

Foi importado o conjunto de dados para o concreto.

 

Agora chamamos a função para os parâmetros.  Como você pode ver na figura abaixo, o conjunto de dados é concreto, a coluna de previsão é “strength”, o método desta vez é “anova” em vez de class.

 

 

Depois de chamarmos a função, a previsão para a resistência do concreto foi mostrada na consulta separada conforme abaixo

Neste post, mostramos como podemos parametrizar o modelo de treinamento no Power BI.  Mostraremos como podemos criar um grupo diferente para testar e treinar no próximo post.

Nesta publicação, cobrimos apenas, o ambiente de treinamento.

Abraço e até a próxima

 

fonte RADACAD

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *