DevSecOpsARTIGO

Machine Learning: Implementando Regressão Linear no Azure – Parte 01

Neste artigo, Gabriel Schade dá início à sua nova série sobre Machine Learning. Nesta primeira parte, ele mostra como implementar Regressão Linear no Azure.

Machine Learning: Implementando Regressão Linear no Azure – Parte 01
Imagem: Gabriel Schade

Olá, pessoal!

Ultimamente tenho estudado e lido bastante sobre Machine LearningMachine learning39 conteúdosClassificador de Sentimentos – Azure MLData · abr 2019Inteligência Artificial e Machine Learning: O que você precisa saberAI · fev 2024Inteligência Artificial: seminário online da USP debate o futuro do aprendizado de máquinaGestão Dev & TI · jun 2021Ver tudo em AI , e devo confessar: eu fiquei assustado com a facilidade de criar uma solução dessas com o AzureAzure76 conteúdosDeploy de Azure Stream Analytics job com CI/CD usando Azure PipelinesDevSecOps · mai 2019Azure – Como criar uma base de dados SQL no Microsoft Azure pronta para ser utilizadaData · abr 2019Azure Static Web Apps com Vue.js e Visual Studio CodeDevSecOps · out 2023Ver tudo em DevSecOps Machine Learning.

Vamos fazer um exemplo?

Este artigo faz parte de uma série! Para visualizar a série inteira, clique aqui.

Existem duas formas diferentes de utilizar o Azure Machine Learning StudioLeia tambémClassificador de Sentimentos – Azure MLData · abr 2019: uma delas é gratuita e a outra paga. Há algumas diferenças entre as duas versões, mas para fins de estudo, a versão gratuita é excelente.

Você pode ficar por dentro das restrições dessa versão acessando este link.

O exemplo será feito todo através da versão gratuita – você pode autenticar com sua conta Microsoft sem medo! Depois de autenticar no Studio, você será redirecionado para a seguinte página:

Bom, o exemplo de hoje será muito mais um hands-on do que um detalhamento de cada coisa que existe no Studio.

É muito importante que você tenha uma noção mínima de Machine Learning antes de começar a fazer essa implementação. Caso não tenha, dê uma passada neste artigo e depois volte pra cá.

O Azure nos permite fazer o experimento do início ao fim, desde obter os dados, até expor um modelo treinado por web service. Vamos entender o ambiente antes de começar a implementação.

É possível visualizar um menu lateral, conforme na imagem abaixo:

Este menu agrupa os artefatos envolvidos com sua conta. Hoje trabalharemos apenas com um experimento, então selecione o item Experiment.

Tudo começa com a criação de um experimento, então vá até o menu inferior e pressione o botão “+ NEW” no canto esquerdo, conforme na imagem a seguir:

Este botão mostrará um painel com diversos templates de experimentos. Por enquanto vamos selecionar o primeiro template: Blank Experiment.

Agora estamos na página de criação de experimentos. Você verá que um monte de itens apareceram no menu lateral e um monte de novas ações estão disponíveis no menu inferior.

Ok, vamos começar a trabalhar! Lembram da primeira etapa?

Respondendo algumas perguntas antes de começar

  • 1. Escolher a pergunta que estamos tentando responder
  • 2. Escolher o conjunto de dados para responder esta pergunta
  • 3. Identificar como medir o resultado

A pergunta que vamos tentar responder, é:

  • Baseando-se em suas características, qual o preço deste carro?

Para tentar responder a esta pergunta, vamos usar um conjunto de dados sobre automóveis, disponível no próprio Azure Machine Learning Studio.

Por fim, como faremos para medir os resultados obtidos?

Bom, essa é a etapa mais complicada, mas há uma boa estratégia para isso. Primeiro vamos analisar os dados que serão utilizados.

Para fazer isso, expanda o item Saved Datasets > Samples. Com isso, você verá o item Automobile price data (Raw), conforme na imagem a seguir:

Simplesmente clique e arraste para a área indicada no próprio Studio. Um item do tipo dataset será criado em seu experimento. Para visualizar os dados pressione o círculo na base do item e selecione a opção Visualize.

Sinta-se à vontade para explorar os dados! Há muito informação disponível. Logo de cara, no diálogo, já conseguimos ver que os dados possuem 205 linhas e 26 colunas.

Além disso, temos uma informação importantíssima sobre nossos dados: a última coluna nos dá a informação de preço, então sabemos que trata-se de um aprendizado supervisionado.

Por conta da natureza deste tipo de problema, podemos medir os resultados da seguinte maneira:

  • 1. Utilizamos parte dos dados para treinar nosso modelo
  • 2. Aplicamos o modelo treinado na segunda parte dos dados
  • 3. Comparamos o preço que o modelo informou com o preço presente no conjunto de dados

Com isso conseguimos medir o quão bom (ou ruim) nosso modelo ficou!

Começando as implementações

Com as perguntas respondidas, podemos começar nossa implementação! A única coisa que fizemos até agora foi arrastar os dados para o experimento, mas será que estes dados já estão preparados para o experimento?

Não, não estão. Lembram dos processos envolvidos?

  • Pré-processamento
  • Treinamento
  • Avaliação

Como citado no outro artigo, o pré-processamento geralmente é a etapa mais demorada e complicada – não seria diferente em nosso exemplo!

Pré-processamento

Bom, eu disse um pouquinho antes que os dados não estão preparados, mas o que isso significa, de fato?

Significa que devemos preparar os dados para treinarmos o modelo corretamente, removendo dados inconsistentes ou colunas desnecessárias.

Quando estamos visualizando os dados é possível selecionar cada feature (coluna) do dataset. Ao fazer isso, somos expostos à uma série de informações sobre a feature selecionada. A propósito, na terminologia de Machine Learning é muito comum as colunas serem chamadas de features.

Veja um exemplo de informações sobre uma feature específica:

Como a imagem ilustra, há um monte de informações sobre as features. Essas informações variam de acordo com o tipo da feature.

Uma das informações relevantes nesta feature é a quantidade de linhas que não possuem esta coluna preenchida: 41.

Geralmente, em massas de dados gigantes isso não seria um problema, mas quando 41 de 205 registros não possuem a informação, ela pode ser problemática.

Para resolver isso, vamos desconsiderar essa coluna! Escolha o item Data Transformation > Manipulation > Select Columns in Dataset.

Inicialmente, ao incluir este item, você verá que ele possuí um ícone vermelho. Isso porque a transformação precisa ser vinculada a um dataset, e para fazer isso, basta conectar os dois itens.

Pressione o mesmo círculo que usamos para visualizar os dados, mas desta vez mantenha o mouse pressionado e arraste até o item seguinte!

  • Mas espere, ainda temos problemas – o que houve?

Simples, ainda não selecionamos quais colunas vamos utilizar! Para fazer isso, pressione o item no experimento. No painel à direita pressione o botão Launch column selector e, por fim, selecione todas as colunas desejadas!

Depois de fazer isso, você deve pressionar o botão “Run” no menu inferior. Isso fará com que seu experimento seja executado e os resultados já possam ser visualizados.

Agora você pode visualizar os dados pressionando a base do item de transformação, assim como fizemos no dataset e você perceberá que a coluna excluída não está mais lá!

  • Ótimo, agora os dados estão prontos!

Não tão rápido. Ainda temos que lidar com outros valores que faltam. Desta vez são exemplos mais pontuais e pequenos.

Agora adicionaremos o item Clean Missing Data presente na mesma seção Data Transformation > Manipulation. Conectaremos a saída do item anterior à ela e nas opções do painel à direita vamos selecionar como Cleaning Mode o valor: Remove entire row.

Com isso, removeremos todas as linhas que possuem valores incompletos!

Ao terminar o processo e visualizar os dados novamente, é possível notar que temos 193 linhas, ao invés das 205 originais.

Agora, sim, os dados já estão no formato ideal! O último passo é dividir os dados em dois conjuntos diferentes. Um deles será utilizado para treinamento do modelo e o outro para validação do modelo.

Como isso é uma tarefa bastante comum, temos um item preparado para isso! Utilize o componente em: Data Transformation > Sample and Split > Split Data.

Para isso, basta conectar este componente aos dados e definir o percentual de registros para divisão:

Este item possui duas saídas de dados. Uma delas será utilizada para o treino do nosso modelo e a outra para a validação do modelo já treinado!

Execute novamente o experimento e com isso este processo está finalizado!

Ainda precisamos treinar e validar nosso modelo, mas por hoje o trabalho já está feito. No próximo artigo vamos terminar o trabalho e validar os resultados.

O que você achou deste artigo? Quer ver mais artigos sobre Machine Learning? Me conte nos comentários.

Até mais!

Mestre em Computação Aplicada com foco em Inteligência Artificial, Microsoft MVP, revisor no periódico científico Pattern Recognition Letters, autor de 4 livros pela editora Casa do Código e livros independentes. Entusiasta de programação funcional, IA e do uso de tecnologia como empoderamento das pessoas.

Ver perfil