Com a evolução da inteligência artificial, pesquisadores da ciência da computação estão a todo momento sugerindo novas abordagens para tornar os computadores ainda mais autônomos e capazes de executar tarefas com precisão.
Por essa razão, tem aumentado a utilização de algoritmos de Machine Learning para resolver problemas complexos. Entre seus benefícios está a capacidade das máquinas aprenderem sem serem explicitamente programadas para determinada atividade.
Neste artigo, apresentarei as 3 principais abordagens para aprendizagem de máquinas: supervisionada, não supervisionada e por reforço. Além disso, explicarei, resumidamente, como funcionam os principais algoritmos de machine learning, monstrando exemplos de casos de uso.
🆕 Este artigo foi revisado e atualizado em Abril de 2024!
O que é Machine Learning?
Tradicionalmente, os programadores sempre desenvolveram sistemas especificando cada passo em código, de forma clara. Para isso, engenheiros de software precisavam conhecer bem os problemas que buscavam resolver e ter uma boa noção de todas as variáveis e possibilidades envolvidas.
Machine Learning (ML) é um subcampo da inteligência artificial que visa resolver problemas mais complexos, dos quais os programadores ainda não têm um conhecimento tão amplo.
Também se aplica quando é inviável mapear todas as variáveis e possibilidades. Para essa finalidade, os sistemas são estimulados a solucionar problemas de forma autônoma, aprendendo sobre eles e propondo uma saída.
Nesse contexto, os algoritmos analisam dados de entrada, processam e preveem saídas possíveis dentro de um intervalo definido. No processo, eles tentam diferentes abordagens e otimizam sua capacidade de chegar ao resultado.
Os sistemas artificiais no ML passam por duas fases: treino e execução. Na primeira, são alimentados por um conjunto de entrada para que sejam contextualizados com a situação específica que envolve o problema.
Então, na segunda fase, eles começam a deduzir os caminhos a partir do que aprenderam na etapa anterior. Essas duas fases variam a depender do tipo de algoritmo, como veremos mais adiante neste artigo.
Embora não seja novo, o Machine Learning é um campo do conhecimento em desenvolvimento, ou seja, ganha novas abordagens e novos modelos frequentemente. Essas evoluções buscam resolver problemas com ainda mais precisão e oferecer opções especiais para que cada ferramenta se adapte ao problema específico.
Métodos de Machine Learning
A seguir, discutiremos os principais métodos do ML e suas características.
Aprendizagem supervisionada
A aprendizagem supervisionada é útil nos casos em que uma propriedade (rótulo) está disponível para um determinado conjunto de dados (conjunto de treinamento). Todas as entradas e saídas são conhecidas, mas precisam ser previstas para outras instâncias.
Então, esses dados são passados para o sistema de aprendizagem, que tem como função descobrir caminhos e ajustar seu próprio modelo para chegar aos resultados esperados.
Um exemplo prático seria ensinar uma máquina a reconhecer e categorizar e-mails, separando os que são relevantes dos que são SPAM.
Na fase de treinamento, são transmitidas para o algoritmo amostras de ambos os casos, visto que os dois blocos de informação são plenamente conhecidos. Já na fase de execução, o sistema terá a capacidade de determinar se um e-mail novo é ou não uma mensagem indesejada.
Ou seja, o software já sabe quais entradas estão associadas com quais saídas, mas precisa aprender um meio de entender essa associação.
Nesse processo, ele tenta identificar padrões e estabelecer previsões que ajudam a otimizar a abordagem. Esse modelo tem esse nome porque é como se o operador humano estivesse sempre dando assistência ao sistema, ensinando-o de uma forma direta.
Os resultados desse tipo de algoritmo são geralmente marcados como classificação e regressão. O primeiro diz respeito a uma forma de mapear elementos iguais em categorias específicas, como no exemplo acima, “spam” e “não spam”. Já o segundo consiste em identificar uma tendência para os dados que permite, inclusive, predizer o futuro com base em dados históricos.
Uma aplicação comum é no setor de segurança, com o uso de ferramentas para identificar comportamentos suspeitos em uma rede e garantir proteção contra ataques.
Aprendizagem não-supervisionada
Já na aprendizagem não-supervisionada o desafio é descobrir relações implícitas em um conjunto de dados não rotulados. Dessa forma, o algoritmo fica encarregado de identificar padrões para rotular os dados.
Um exemplo muito comum é a empresa que fornece como base para um sistema de ML um conjunto de dados sobre os clientes e espera que ele identifique possíveis atributos comuns e padrões de comportamento para criar ofertas específicas e segmentadas. No começo, a companhia não conhece bem as informações a ponto de saber as possíveis saídas.
É como um aprendizado sem assistência humana, com o sistema ditando os caminhos a seguir. Nesse modelo de algoritmo, as estratégias comuns são clustering e redução de dimensão.
Abordagens como essas podem ser utilizadas em sistemas de recomendação, em que, com base em informações colaborativas ou específicas, um software consegue filtrar conteúdos ideais em meio a uma miríade deles.
É muito usado em lojas de e-commerce, para recomendar produtos que possam ser interessantes para o cliente que visita o site. Similarmente, há serviços de streaming que sugerem músicas ou vídeos que devem ser vistos por um usuário. Tanto Netflix como Amazon utilizam essa abordagem para criar seus algoritmos de recomendação.
Aprendizagem por reforço
Nesse método de aprendizagem, que segue o estilo utilizado no início dos estudos sobre Inteligência Artificial, o computador é estimulado a aprender com base em tentativas e erros, otimizando o processo na prática direta. Com essa abordagem, é possível, por exemplo, ensinar um sistema a priorizar hábitos em detrimento de outros, com recompensas proporcionais ao acerto.
A aprendizagem por reforço foi inspirada por psicólogos comportamentalistas, que acreditavam na eficácia de recompensas e punições na educação dos seres humanos. Também lembra o procedimento de adestração de animais domésticos.
É um método, portanto, baseado na construção de experiência. A partir disso, o algoritmo sabe quais caminhos são melhores que outros e quais processos são mais ágeis.
Exemplos de aplicação são os veículos autônomos e máquinas que jogam xadrez. O sistema aprende com múltiplas tentativas, que envolvem erros como uma jogada ruim ou um choque contra um obstáculo.
Quais os principais algoritmos de machine learning?
Existe uma infinidade de algoritmos utilizados em machine learning, cada um com uma finalidade específica.
Há também características que podem inviabilizar a escolha do modelo mais preciso para determinado problema, como a utilização de alto poder computacional.
Algoritmos para aprendizagem supervisionada
O que é: Um algoritmo usa dados de treinamento e feedback de humanos para aprender a relação de dados insumos para um determinado produto (por exemplo, como os insumos “época do ano” e “taxas de juros” prevêem os preços das moradias).
Quando usar: Quando você sabe como classificar os dados de entrada e o tipo de comportamento que deseja prever, mas precisa do algoritmo para calculá-lo em novos dados.
Regressão linear
A regressão linear é uma técnica estatística clássica, utilizada para modelar a relação entre uma variável dependente e uma ou mais variáveis independentes, assumindo que essa relação é linear. Em sua forma mais simples, a regressão linear envolve a criação de uma linha reta (a equação linear) que melhor se ajusta aos dados observados, minimizando a soma dos quadrados das diferenças entre os valores observados e os valores preditos pela linha. Essa linha de melhor ajuste pode ser usada para prever valores futuros da variável dependente com base nas variáveis independentes
Exemplo de casos de uso:
- Compreender os impulsionadores das vendas de produtos, como preços da concorrência, distribuição, propaganda, etc;
- Otimizar os pontos de preço e estimar a elasticidade de preços dos produtos.
Regressão logística
A regressão logística é uma técnica utilizada para modelar a probabilidade de um evento binário (com dois possíveis resultados, como “sucesso” e “fracasso”) ocorrer, em função de uma ou mais variáveis independentes. Diferente da regressão linear, que assume uma relação linear entre as variáveis, a regressão logística usa uma função logística, ou sigmoide, para garantir que os valores preditos estejam entre 0 e 1.
Isso é particularmente útil em classificações binárias, como prever se um cliente comprará um produto ou não com base em suas características. A saída do modelo é uma probabilidade que pode ser convertida em uma decisão binária com base em um limiar predeterminado.
Exemplo de casos de uso:
- Classificar os clientes com base na probabilidade de eles pagarem um empréstimo;
- Prever se uma lesão de pele é benigna ou maligna com base em suas características (tamanho, forma, cor, etc).
Análise discriminante linear/quadrática
Atualiza uma regressão logística para lidar com problemas não lineares – aqueles em que mudanças no valor das variáveis de entrada não resultam em mudanças proporcionais nas variáveis de saída.
Exemplo de casos de uso:
- Prever a rotatividade do cliente;
- Prever a probabilidade de fechamento de um lead de vendas.
Árvore de decisão
Classificação altamente interpretável ou modelo de regressão que divide os valores dos recursos de dados em ramos nos nós de decisão (por exemplo, se um recurso é uma cor, cada cor possível se torna um novo ramo) até que uma saída de decisão final seja feita.
Exemplo de casos de uso:
- Fornecer uma estrutura de decisão para a contratação de novos funcionários;
- Compreender os atributos que tornam um produto mais provável de ser comprado.
Naive Bayes
Naive Bayes é uma técnica de classificação que aplica o teorema de Bayes e permite que a probabilidade de um evento seja calculada com base no conhecimento dos fatores que podem afetar esse evento (por exemplo, se um e-mail contém a palavra “dinheiro”, então a probabilidade de ser spam é alta).
Exemplo de casos de uso:
- Analisar sentimento para avaliar a percepção do produto no mercado;
- Criar classificadores para filtrar e-mails de spam.
Support Vector Machine
Uma técnica que normalmente é usada para classificação, mas que pode ser transformada para também realizar regressões. O algoritmo traça uma divisão ideal entre as classes (a mais ampla possível). Também pode ser rapidamente generalizado para resolver problemas não lineares.
Exemplo de casos de uso:
- Prever quantos pacientes um hospital precisará atender em um determinado período;
- Prever a probabilidade de alguém clicar em um anúncio online.
Random Forest
O random forest é Modelo utilizado para problemas de classificação e regressão. Ele melhora a precisão de uma árvore de decisão simples, gerando várias árvores de decisão e selecionando a maioria dos votos para prever o resultado, que é uma variável contínua (por exemplo, idade) para um problema de regressão e é uma variável discreta (ex: preto, branco ou vermelho) para classificação.
Exemplo de casos de uso:
- Prever o volume de chamadas em call centers para gerar decisões relacionadas à equipe de atendimento;
- Prever o uso de energia em uma rede de distribuição elétrica.
k-Nearest Neighbors
O k-Nearest Neighbors (k-NN) é um algoritmo de aprendizado de máquina não paramétrico, usado tanto para classificação quanto para regressão. O algoritmo funciona identificando os k pontos de dados mais próximos (vizinhos) de um ponto de teste e prevendo sua etiqueta ou valor com base nos vizinhos selecionados. Na classificação, a classe é atribuída por votação majoritária entre os vizinhos, enquanto na regressão, o valor é geralmente calculado como a média ou mediana dos valores dos vizinhos.
Exemplo de casos de uso:
- Classificar clientes em grupos de acordo com seu comportamento de compra para direcionar campanhas de marketing personalizadas;
- Prever preços imobiliários com base em vendas recentes de imóveis próximos;
- Detectar anomalias em redes de computadores, identificando comportamentos que se desviam da norma observada.
AdaBoost
Técnica de classificação ou regressão que usa uma infinidade de modelos para chegar a uma decisão, mas os pondera com base em sua precisão na previsão do resultado.
Exemplo de casos de uso:
- Detectar atividades fraudulentas em transações com cartão de crédito. Alcança uma precisão menor do que o aprendizado profundo (deep learning);
- Forma simples e de baixo custo para classificar imagens (por exemplo, reconhecer o uso da terra a partir de imagens de satélite para modelos de mudanças climáticas). Também atinge uma precisão menor do que o aprendizado profundo.
Árvores com aumento de gradiente
Técnica de classificação ou regressão que gera árvores de decisão sequencialmente, onde cada árvore se concentra em corrigir os erros provenientes do modelo de árvore anterior. O resultado final é uma combinação dos resultados de todas as árvores.
Exemplo de casos de uso:
- Previsão de demanda de produtos e níveis de estoque;
- Prever o preço dos carros com base em suas características (por exemplo, idade e quilometragem).
Rede neural simples
Modelo no qual neurônios artificiais (calculadoras baseadas em software) formam três camadas (uma camada de entrada, uma camada oculta onde os cálculos ocorrem e uma camada de saída) que podem ser usados para classificar dados ou encontrar a relação entre variáveis em problemas de regressão.
Exemplo de casos de uso:
- Prever a probabilidade de um paciente ingressar em um programa de saúde;
- Prever se os usuários registrados estarão dispostos ou não a pagar um determinado preço por um produto.
Algoritmos para aprendizagem não-supervisionada
O que é: Um algoritmo explora dados de entrada sem receber uma variável de saída explícita (por exemplo, explora dados demográficos do cliente para identificar padrões).
Quando usar: Você não sabe como classificar os dados e deseja que o algoritmo encontre padrões e classifique os dados para você.
K-means Clustering (agrupamento)
Coloca os dados em vários grupos (k), cada um contendo dados com características semelhantes (conforme determinado pelo modelo, não antecipadamente por humanos).
Exemplo de casos de uso:
- Segmenta os clientes em grupos por características distintas (por exemplo, faixa etária) para melhor designar campanhas de marketing ou evitar churn.
Modelo de mistura gaussiana
Uma generalização do agrupamento k-means que fornece maior flexibilidade no tamanho e na forma dos grupos (clusters).
Exemplo de casos de uso:
- Segmentar os clientes para atribuir melhor as campanhas de marketing usando características menos distintas do cliente (por exemplo, preferências de produto);
- Segmentar funcionários com base na probabilidade de desgaste.
Agrupamento hierárquico
Divide ou agrega clusters ao longo de uma árvore hierárquica para formar um sistema de classificação.
Exemplo de casos de uso:
- Agrupar os clientes de cartões de fidelidade em grupos progressivamente mais microssegmentados;
- Informar o uso/desenvolvimento do produto agrupando clientes que mencionam palavras-chave em dados de mídia social.
Sistema de recomendação
Usa a previsão do comportamento do cluster para identificar os dados importantes necessários para fazer uma recomendação.
Exemplo de casos de uso:
- Recomendar quais filmes os consumidores devem assistir com base nas preferências de outros clientes com atributos semelhantes;
- Recomendar artigos de notícias que um leitor possa querer ler com base no artigo que está lendo.
Como escolher o algoritmo ideal?
Como são várias as formas de se chegar a um resultado com ML, por existir diversas abordagens, é preciso saber como escolher o algoritmo mais adequado ao problema proposto. Veremos algumas dicas a seguir.
Finalidade do problema
É importante conhecer bem a finalidade e o contexto do caso que deve ser processado pela máquina, com detalhes específicos, pois eles ajudam a selecionar o melhor jeito de tratar os dados.
Caso exista um objetivo bem definido, com saídas conhecidas, o ideal pode ser um método de aprendizagem supervisionada. Dentro dessa abordagem, caso o resultado seja um valor numérico, é possível usar regressão. Caso sejam categorias, classificação.
Quantidade de dados
Outro aspecto relevante é a quantidade de dados que será utilizada para alimentar o software. Redes neurais, por exemplo, geralmente precisam de grandes conjuntos de entrada.
É importante conhecer bem e se ater ao tamanho das bases para estabelecer qual método seguir, pois cada um lida com a quantidade de uma forma diferente. Além disso, caso a base de dados seja muito grande e o algoritmo demasiado complexo, pode ser preciso fazer uma avaliação a respeito da capacidade computacional necessária para a execução do algoritmo.
Complexidade do problema e acurácia
A complexidade do problema também é uma questão importante, pois isso determina o grau de acurácia desejado. Com isso, é possível selecionar qual algoritmo se encaixa melhor nesse grau de precisão analisando fatores como a periculosidade de um erro e as consequências que eles podem trazer.
Tempo
E, por fim, o tempo deve ser levado em conta. Existem problemas que vão requerer decisões em tempo real. Outros, no entanto, com um intervalo aceitável. Isso deve ser pensado na hora de escolher o tipo de ML que resolva o caso da melhor forma.
Considerações finais
Neste artigo, vimos como as soluções de Machine Learning diferem e são classificadas em três grandes categorias principais e em subcategorias menores. Cada uma tem sua própria característica e natureza.
Portanto, se adapta a problemas específicos de contextos especiais. Para selecionar o algoritmo que melhor resolve o seu caso é preciso analisar alguns fatores, como: complexidade, tempo e quantidade de dados.
Caso você queira se aprofundar no tema, recentemente eu participei de um evento online onde apresentei alguns exemplos práticos de machine learning. Você pode conferir a gravação:
Não deixe de conferir nosso guia completo sobre Data Science! E se você gostou de aprender mais sobre algoritmos de Machine Learning, escreva um comentário!
Caso queira trocar uma ideia pelo LinkeIN, me adiciona lá!
Ótimo post! Depois de estudar como implementar as soluções de ML estava diante dessa problemática de saber como escolher o algoritmo que se encaixa para cada tipo de situação, seu post me respondeu de um jeito simples e objetivo, parabéns.
Legal @Mayara. Obrigado pelo feedback!
Muito bom seu artigo. Parabéns !
Fico feliz em poder ajudar @cristiano!
Muito bom o seu post.
Obrigado por compartilhar o seu conhecimento.
✌️
Olá Pedro. Sou iniciante em inteligência artificial, estou me aprofundando em Machine Learning e adorei tanto o post como o Webinar. Mesmo já tendo se passado 2 anos, o seu post continua super atual. Parabéns e obrigado.
Ótimo conteúdo e muito bem explicado. Parabéns!
Gostei demais. Foi bem didático e esclarecedor. Obgdo.