image

Access unlimited bootcamps and 650+ courses

50
%OFF
Daniel Bevilacqua
Daniel Bevilacqua31/03/2025 23:49
Share
Microsoft Certification Challenge #3 DP-100Recommended for youMicrosoft Certification Challenge #3 DP-100

Operações de Machine Learning (MLOPs) & exemplos de aplicações de machine learning usando Python

    A linguagem Python ganhou muita popularidade ao longo dos últimos anos devido a sua sintaxe simples e também devido a várias bibliotecas e frameworks especializados que permitem executar diversas aplicações práticas. Neste artigo, vou mostrar as 6 etapas do ciclo de vida do processo de MLOPs (operações de machine learning) e um exemplo de código que mostra como funciona na prática o ciclo de vida de um projeto de aprendizado de máquina e ao longo do artigo vou mostrar aplicações práticas de aprendizado de máquina que são utilizados no nosso dia-a-dia e que facilitam a nossa vida

    As 6 etapas do ciclo de vida do processo de aprendizado de máquina (MLOPs)

    1. Definir o problema: Faça perguntas para os gestores do negócio, ou entenda profundamente o negócio que você está atuando para assim encontrar o problema que precisa ser solucionado
    2. Obtenção dos dados: Após encontrar o problema que precisa ser solucionado, crie uma fonte de dados ou use uma fonte de dados existente começando por uma planilha eletrônica como o Excel o Google Planilhas ou até mesmo um bloco de notas (o Python lê com facilidade arquivos txt). Pois são ferramentas para efetuar as etapas de organização, estruturação da base de dados e por fim armazenar a base de dados em uma fonte de dados tradicional e de fácil manuseio.
    3. Preparação dos dados: Após ter todo a base de dados organizada e devidamente estruturada, devemos extrair essa base de dados para o ambiente de programação, que é onde será feito o processo de aprendizado de máquina
    4. Treinamento do modelo de aprendizado de máquina: Nesta etapa você irá pegar a tabela que você criou durante a etapa de preparação dos dados, leva para dentro do modelo, qual será a técnica utilizada ( aprendizado supervisionado, não supervisionado, árvores de decisão, florestas aleatórias, regressão linear entre outros)? e após escolher a técnica você poderá escolher o tipo de modelo que você irá utilizar, como também será necessário definir os hiperparâmetros que serão o foco do treinamento e por fim efetuar os ajustes e testes do algoritmo. 

    4.1 https://learn.microsoft.com/pt-br/training/paths/introduction-machine-learn-operations/ ( nesse link você pode entender como o conceito de MLOps se aplica no ambiente em nuvem da Azure)

    https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning?hl=pt-br (nesse link você pode entender como o conceito de MLOps se aplica no ambiente em nuvem da Google Cloud)

    https://aws.amazon.com/pt/sagemaker-ai/mlops/?sagemaker-data-wrangler-whats-new.sort-by=item.additionalFields.postDateTime&sagemaker-data-wrangler-whats-new.sort-order=desc ( nesse link você pode entender como o conceito de MLOps se aplica no ambiente em nuvem da Amazon Web Services)

    1. Integrar o modelo: É a etapa final em que se coloca o modelo em produção para que ele resolva o problema do seu negócio, em que ele irá atuar como uma inteligência artificial. Você pode implementar ele no site da sua empresa por meio de uma API Rest, ou via Docker (o docker pode ser usado via nuvem ou por meio de um servidor local, o Docker simplifica muito a fase final implantação da solução devido a sua portabilidade). Caso, a sua empresa possua um aplicativo móvel para uso no android ou em IOs, pode-se utilizar o Firebase ML Kit que oferece flexibilidade para integrar modelos de aprendizado de máquina em aplicativos, seja executando-os no dispositivo com o ML Kit ou na nuvem com o Cloud Functions criando APIs personalizadas que conectam a inteligência artificial com o seu aplicativo
    2. Monitorar o desempenho do modelo: É necessário sempre monitorar o modelo de aprendizado de máquina, pois pode acontecer desvios das funcionalidades, ou o comportamento da aplicação pode mudar o que pode resultar em casos que o resultado entregue não seja o esperado, é necessário garantir que funcione corretamente. Você consegue fazer isso por meio do Databricks Community Edition permitindo compartilhar, gerenciar e comparar com segurança os resultados do experimento de machine learning.

    Analisando o ciclo de vida de um projeto básico de machine learning de forma simplificada com exemplos de código

    A Árvore de Decisão é um algoritmo de aprendizado supervisionado que pode ser usado tanto para problemas de classificação quanto de regressão. A sua principal vantagem para iniciantes é a fácil interpretação do seu código. Uma árvore de decisão é fácil de visualizar e entender, o que facilita a explicação de cada etapa do processo de Machine Learning.

    Vamos usar a Árvore de Decisão como exemplo para detalhar cada fase do ciclo de vida de um projeto de Machine Learning, desde a preparação dos dados até o deploy.

    1. Preparação dos Dados (Data Preparation)

    Esta fase é crucial e geralmente a mais demorada em qualquer projeto de Machine Learning. A qualidade dos dados impacta diretamente a performance do modelo.

    • Coleta de Dados: O primeiro passo é coletar os dados relevantes para o problema que você deseja resolver. Para um exemplo com Árvore de Decisão, imagine que queremos prever se um cliente irá cancelar um serviço de assinatura (churn). Precisamos coletar dados sobre os clientes, como idade, tempo de assinatura, uso do serviço, histórico de pagamentos, etc.
    • Limpeza de Dados: Dados do mundo real frequentemente contêm erros, valores faltantes ou inconsistências. É necessário limpar os dados para garantir a qualidade. Isso pode incluir:
    • Tratar valores faltantes: Remover as linhas com valores faltantes ou preencher com valores médios, medianos ou outros métodos de imputação.
    • Remover outliers: Identificar e tratar valores que estão muito fora do padrão.
    • Corrigir erros: Corrigir dados inconsistentes ou errados.
    • Seleção de Features (Atributos): Nem todos os dados coletados serão relevantes para o estimador. Selecionar as features mais importantes ajuda a simplificar o modelo inteligente, melhorar a performance e reduzir o tempo de treinamento. Para Árvores de Decisão, podemos usar técnicas como importância de features fornecidas pelo próprio algoritmo ou métodos de seleção baseados em estatística.
    • Engenharia de Features (Opcional, mas recomendado para aprendizado): Criar novas features a partir das existentes pode melhorar a performance do modelo. Por exemplo, a partir da data de início e data de fim de assinatura, podemos criar uma feature 'tempo de assinatura' em meses.
    • Divisão dos Dados: Os dados precisam ser divididos em pelo menos dois conjuntos:
    • Conjunto de Treinamento: Usado para treinar o modelo, ou seja, para o algoritmo aprender os padrões nos dados. Geralmente corresponde a 70-80% dos dados.
    • Conjunto de Teste: Usado para avaliar a performance do modelo após o treinamento, simulando dados não vistos pelo modelo durante o treinamento. Geralmente 20-30% dos dados.
    • Em projetos mais complexos, pode-se usar também um Conjunto de Validação para ajustar hiperparâmetros do modelo durante o treinamento.

    2. Treinamento do Modelo (Model Training)

    Nesta fase, o algoritmo de Machine Learning aprende com os dados de treinamento.

    • Escolha do Algoritmo: Neste caso, escolhemos a Árvore de Decisão. É importante explicar que existem outros algoritmos (Regressão Linear, Regressão Logística, Redes Neurais, etc.), mas a Árvore de Decisão é didática para iniciantes.
    • Treinamento do Algoritmo: O algoritmo da Árvore de Decisão aprende a criar regras de decisão com base nos dados de treinamento. Ele faz isso dividindo os dados em subconjuntos menores com base nas features, buscando maximizar a "pureza" (homogeneidade) das classes em cada subconjunto. Conceitos chave para explicar são:
    • Nós de decisão: Representam uma feature (atributo) que será testada.
    • Ramos: Representam o resultado do teste e levam a outros nós ou nós folha.
    • Nós folha (ou terminais): Representam a decisão final ou a previsão.
    • O algoritmo busca dividir os dados de forma que a impureza (ex: Entropia ou Gini) seja minimizada a cada divisão.
    • Ajuste de Hiperparâmetros (Opcional, mas importante para melhorar o modelo): As Árvores de Decisão têm hiperparâmetros que podem ser ajustados para controlar a complexidade da árvore e evitar overfitting (quando o modelo aprende muito bem os dados de treinamento, mas performa mal em dados novos). Exemplos de hiperparâmetros são a profundidade máxima da árvore (max_depth), número mínimo de amostras para dividir um nó (min_samples_split), etc.

    3. Implementação/Construção do Modelo (Model Implementation/Building)

    Nesta fase, construímos o modelo utilizando uma biblioteca de Machine Learning.

    • Codificação: Usando uma biblioteca como scikit-learn em Python, a implementação de uma Árvore de Decisão é relativamente simples. Veja um exemplo conceitual em Python:

    Python

    from sklearn.tree import DecisionTreeClassifier # Para classificação

    from sklearn.model_selection import train_test_split

    from sklearn.metrics import accuracy_score

    # Suponha que você já preparou os dados X (features) e y (variável alvo)

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Divide os dados

    arvore_decisao = DecisionTreeClassifier(max_depth=3) # Cria o modelo de Árvore de Decisão, ajustando hiperparâmetro

    arvore_decisao.fit(X_train, y_train) # Treina o modelo com os dados de treinamento

    # (A fase de teste e deploy virão depois)

    • Visualização da Árvore (Ótimo para Árvores de Decisão): Uma das grandes vantagens das Árvores de Decisão é que podemos visualizar a árvore gerada. Isso ajuda muito na interpretação e no entendimento de como o modelo toma decisões.

    Você pode adicionar aqui uma imagem de exemplo de uma árvore de decisão simples, mostrando nós de decisão, ramos e nós folha.

    image

    Abre em uma nova janelawww.smartdraw.com

    decision tree

    4. Testes e Validação do Modelo (Model Testing and Validation)

    Após treinar o modelo, precisamos avaliar o quão bem ele performa em dados não vistos (conjunto de teste).

    • Previsões no Conjunto de Teste: Usamos o modelo treinado para fazer previsões no conjunto de teste:

    Python

    y_pred = arvore_decisao.predict(X_test) # Faz previsões nos dados de teste

    • Métricas de Avaliação: Precisamos de métricas para quantificar a performance do modelo. As métricas dependem do tipo de problema:

    • Para Classificação:

    • Acurácia (Accuracy): Proporção de previsões corretas.
    • Precisão (Precision): Das previsões positivas, quantas são realmente positivas.
    • Recall (Sensibilidade): De todas as instâncias positivas reais, quantas foram corretamente previstas como positivas.
    • F1-Score: Média harmônica de Precision e Recall.
    • Matriz de Confusão: Visualiza o número de verdadeiros positivos, verdadeiros negativos, falsos positivos e falsos negativos.

    Você pode adicionar aqui uma imagem de exemplo de uma matriz de confusão, explicando os quadrantes.

    bimage

    • Abre em uma nova janelah2o.ai
    • confusion matrix

    • Para Regressão:

    • Erro Médio Absoluto (MAE)
    • Erro Quadrático Médio (MSE)
    • Raiz do Erro Quadrático Médio (RMSE)
    • R-squared (Coeficiente de Determinação)
    • Validação Cruzada (Opcional, mas recomendado para efetuar uma avaliação mais robusta da performance do algoritmo): Para uma avaliação mais robusta, podemos usar validação cruzada. Ela divide os dados de treinamento em várias partes (folds), treina o modelo em algumas partes e valida em outra, repetindo o processo várias vezes e calculando a média das métricas. 
    • documentação técnica referente a validação cruzada: (https://scikit-learn.org/stable/modules/cross_validation.html)
    • Isso dá uma estimativa mais confiável da performance do modelo em dados não vistos.

    5. Deploy (Deployment)

    A fase final é colocar o modelo em produção para que ele possa ser usado para fazer previsões em dados reais.

    • Integração em um Sistema: O modelo treinado precisa ser integrado em um sistema ou aplicação para ser utilizado. Isso pode ser:
    • API (Application Programming Interface): Criar uma API que recebe dados como entrada e retorna a previsão do modelo como saída. Essa API pode ser consumida por outras aplicações web, mobile, etc.
    • Incorporação em um Aplicativo Existente: Integrar o modelo diretamente em um aplicativo já existente.
    • Batch Processing: Executar o modelo periodicamente para processar um grande volume de dados (ex: previsões de churn de clientes mensalmente).
    • Monitoramento do Modelo: Após o deploy, é importante monitorar a performance do modelo em produção. A performance do algoritmo pode se degradar ao longo do tempo devido a mudanças nos dados (drift de dados). É necessário monitorar métricas de performance e retreinar o modelo periodicamente com dados mais recentes, se necessário.
    • Exemplo Conceitual de Deploy: Imagine que você criou um modelo de Árvore de Decisão para prever se um email é spam ou não. No deploy, você pode criar um serviço web que recebe o texto de um email como entrada, usa o modelo treinado para classificar o email como "spam" ou "não spam" e retorna essa classificação.

    Bibliotecas e frameworks do Python

    Pandas: Biblioteca voltada para a manipulação e análise de dados

    Matplotlib: para criação de gráficos e visualizações de dados em geral, feita para a linguagem de programação Python e é uma extensão da biblioteca de matemática NumPy.

    Numpy: é uma biblioteca para a linguagem de programação Python, que suporta o processamento de grandes, multidimensionais arranjos e matrizes, juntamente com uma grande coleção de funções matemáticas de alto nível para operar sobre estas matrizes

    Scipy: é uma biblioteca Open Source em linguagem Python que foi feita para matemáticos, cientistas e engenheiros. Também tem o nome de uma popular conferência de programação científica com Python. A sua biblioteca central é NumPy que fornece uma manipulação conveniente e rápida de um array N-dimensional

    OpenCV: é totalmente livre ao uso acadêmico e comercial, para o desenvolvimento de aplicativos na área de Visão computacional e além disso é uma biblioteca que já tem inteligência artificial dentro dela, com ela você consegue facilmente detectar a face das pessoas com poucas linhas de código

    Scikit-Learn: Esta biblioteca dispõe de ferramentas simples e eficientes para análise preditiva de dados, é reutilizável em diferentes situações, possui código aberto, sendo acessível a todos e foi construída sobre os pacotes NumPy, SciPy e Matplotlib

    Keras: é uma biblioteca de rede neural de código aberto escrita em Python. Ele é capaz de rodar em cima de TensorFlow e Pytorch

    Tensor Flow: é uma biblioteca de código aberto criada para aprendizado de máquina, computação numérica e muitas outras tarefas. Foi desenvolvido pelo Google em 2015 e rapidamente se tornou uma das principais ferramentas para machine learning e deep learning.

    PyTorch é um framework de aprendizagem profunda de código aberto baseada em software, usada para construir redes neurais, combinando a biblioteca de aprendizado de máquina da Torch com uma API de alto nível baseada em Python. Sua flexibilidade e facilidade de uso, entre outros benefícios, a tornaram a estrutura líder de ML para comunidades acadêmicas e de pesquisa

    …… Essas são as principais bibliotecas e frameworks de machine learning do Python

    https://matplotlib.org/

    https://numpy.org/

    https://scipy.org/

    https://opencv.org/

    https://scikit-learn.org/

    https://keras.io/

    https://www.tensorflow.org/?hl=pt-br

    https://pytorch.org/

    Aplicações de Machine Learning no nosso dia-a-dia

    Machine learning 

    Aplicações com base em modelos de aprendizado lineares

    • Regressão Linear

    Com ele você consegue efetuar:    

    Previsão do preço das ações, Previsão do preço da habitação, Previsão do valor da vida útil do cliente

    • Regressão logística: Previsão de pontuação de risco de crédito ( muito usado em sistemas bancários) Previsão de rotatividade de clientes
    • Regressão Ridge : Estimativa para se efetuar a manutenção preditiva em equipamentos ou máquinas, estimativa de previsão de receita de vendas de automóveis
    • Regressão de Lasso: Estimativa da previsão do preço da habitação previsão de resultados clínicos com base em dados de saúde

    https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html

    Aplicações com base em modelos de aprendizado de árvore de decisão

    Árvore de decisão: Predição de rotatividade de clientes, Modelo ideal para a estimativa de pontuação de crédito, Cálculo de predição de doenças

    Floresta randômica: Modelo de pontuação de crédito, efetua a previsão de preços de habitação

    Regressão de aumento de gradiente: Cálculo da previsão de emissões de carros, previsão do valor da tarifa de carona

    XG Boost: Cálculo da previsão de Churn (cancelamento de assinatura) Processamento de sinistros em seguros

    Regressor Light GBM: Previsão do tempo de voo para a companhia aérea Previsão dos níveis de colesterol com base em dados de saúde

    Aplicações com base em modelos de aprendizado de clusterização

    Algoritmo K-Means: Pode ser usado para efetuar Segmentação de clientes e para Sistemas de recomendação

    Agrupamento hierárquicoDetecção de fraude e Agrupamento de documentos com base na semelhança

    Modelos de Mistura Gaussiana scikit: Pode ser usado para efetuar Segmentação de clientes e para Sistemas de recomendação

    Aplicações com base na Associação

    Algoritmo Apriori documentaçãoColocações de produtos, Mecanismos de recomendação, Otimização de promoção

    Deep Learning: 

    Redes neurais de classificação para economia de pesticidas e para evitar devastação ambiental em áreas agrícolas (chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/ALGORITMO DE ​DEEP LEARNING​ PARA CLASSIFICAÇÃO DE ÁREAS DE LAVOURA COM VANTS

    )

    Redes neurais de classificação e detecção que veículos autônomos utilizam para ver o trânsito e poderem efetuar o deslocamento do veículo (Análise e fusão de imagens 2D e 3D com vistas para detecção e classificação de sinais…)

    Detecção e classificação de pneumonia por meio de radiografias de tórax (chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://rosario.ufma.br/jspui/bitstream/123456789/3508/1/GABRIEL-SOUSA.pdf)

     

    Fontes consultadas:

      https://didatica.tech/o-que-e-tensorflow-para-que-serve/

      https://www.ibm.com/br-pt/topics/pytorch

    https://www.datacamp.com/pt/cheat-sheet/machine-learning-cheat-sheet

    Análise e fusão de imagens 2D e 3D com vistas para detecção e classificação de sinais...

    Deep Learning para a Detecção e Classificação de Pneumonia por Radiografias do Tórax

    https://larcc.setrem.com.br/wp-content/uploads/2020/11/SAPS_2020_Anthony.pdf

    32. Implantação de Modelos de Machine Learning em Produção

    Consulta em 28/03/2025

    https://www.dio.me/articles/o-que-voce-precisa-saber-antes-de-aprender-docker

    Consulta em 28/03/2025

    Firebase Machine Learning | Firebase ML, Kit de ML para Firebase  Consulta em 28/03/2025

    https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning?hl=pt-br

    MLflow gerenciado | Databricks.

    Share
    Recommended for you
    XP Inc. - Cloud com Inteligência Artificial
    Microsoft AI for Tech - Azure Databricks
    Microsoft Certification Challenge #3 DP-100
    Comments (1)
    DIO Community
    DIO Community - 01/04/2025 14:49

    Daniel, você fez um excelente trabalho explicando as etapas do ciclo de vida do processo de MLOps e a importância das ferramentas e técnicas que envolvem Machine Learning, desde a definição do problema até a implementação e monitoramento do modelo. O uso do Python e bibliotecas como o scikit-learn, TensorFlow, e Keras para aplicar esses modelos foi bem detalhado, e o exemplo prático da Árvore de Decisão foi uma ótima escolha para explicar de forma didática.

    Além disso, a conexão entre a teoria e as aplicações reais de Machine Learning, como previsão de churn, pontuação de crédito e detecção de fraudes, ajuda muito a entender como essas tecnologias estão impactando o dia a dia das empresas e da sociedade.

    Você também mencionou de maneira clara os diferentes tipos de algoritmos e suas aplicações práticas. Tenho certeza de que esse conteúdo será muito útil para quem está começando a se aprofundar em MLOps.

    Se você tivesse que sugerir uma próxima etapa para quem está querendo iniciar com MLOps, qual seria a recomendação?

    Recommended for youMicrosoft Certification Challenge #3 DP-100