Conceitos básicos de Machine Learning (direto ao ponto)

Leibniz Venâncio
6 min readApr 25, 2023

--

Photo by Sigmund on Unsplash

Para quem está começando agora na área, tenho uma notícia para dar: a maior parte do trabalho de um cientista de dados consiste em coletar, analisar, limpar e formatar dados. Somente depois desse (longo) processo é que o tal do machine learning entra na jogada.

Claro que isso não significa que o aprendizado de máquina tenha um papel secundário. Pelo contrário: atualmente, este promissor (e complexo) campo da Inteligência Artificial vem sendo aplicado nos mais diversos contextos, desde campanhas eleitorais até identificação de facies geológicas.

Para dar um exemplo prático de aplicação de machine learning: sabe quando você está navegando pela Amazon e começam a aparecer aqueles produtos recomendados? Pois então.

Mas o que é Machine Learning?

Dentre as muitas definições possíveis, fico com a mais intuitiva: machine learning consiste em fazer o computador aprender a partir de dados, a fim de realizar previsões diante de um novo conjunto de dados.

Estas previsões podem ser coisas do tipo:

  • Detectar fraudes em cartão de crédito (meu último projeto, aliás);
  • Descobrir qual time de futebol irá ganhar um determinado campeonato;
  • Prever inadimplência de empréstimos;
  • Reconhecimento facial.

Em suma, a ideia por trás do aprendizagem de máquina é, fundamentalmente, analisar dados e extrair informações deles, por meio da criação, aplicação e aprimoramento de modelos matemáticos.

A partir dessa noção inicial de machine learning, vamos agora conhecer alguns dos termos técnicos que aparecem a todo momento quando estamos estudando essa área fascinante.

Modelos de Machine Learning

Photo by Jeswin Thomas on Unsplash

Como escreveu Joel Grus, basicamente, modelo é uma descrição de uma relação matemática (ou probabilística) existente entre diferentes variáveis. Um modelo de negócios, por exemplo, busca estimar o lucro da empresa para os próximos anos a partir de variáveis como receita e gasto.

Quando falamos de modelos de machine learning, há dois principais:

  • Modelo supervisionado: faz previsões a partir de dados previamente classificados ou rotulados (isto é, que já se sabe a saída esperada de cada entrada de dados); e
  • Modelo não-supervisionado: identifica estruturas em dados sem rotulação.

Um exemplo de modelo supervisionado são as aplicações de visão computacional capazes de reconhecer cachorros ou gatos em imagens. Para isso, o algoritmo de machine learning é treinado em um conjunto de dados com muitas fotos já rotuladas como “cachorro” e “gato”. É por isso que esses modelos são chamados de supervisionados: somos nós que estamos dizendo ao algoritmo o que ele deve prever.

Dog-Cat classification

Agora, há situações nas quais os dados de treino não vêm rotulados, fazendo com que o modelo tenha que identificar padrões ou grupos dentro deles. Na prática, para usar o exemplo anterior, um modelo não-supervisionado olharia para o conjunto de dados cheio de imagens de cachorros e gatos e buscaria, por si mesmo, identificar os aspectos semelhantes entre as fotos e, então, agrupá-las.

Conjunto treino, teste e variável alvo

Classificação de espécies de pássaros com base em suas características. Fonte: o autor.

Tal como na imagem acima, boa parte dos dados que lidamos vem no formato de matriz (tabela). É comum se referir às colunas como features ou atributes, e às linhas como instances.

No caso da figura acima, estamos interessados em usar um algoritmo de machine learning capaz de classificar a espécie de um pássaro com base em suas características. Para isso, precisamos antes alimentar o nosso algoritmo com dados, isto é, fazê-lo aprender. Estes dados pertencem ao conjunto treino, os quais têm como função, como o próprio nome sugere, treinar o modelo. Construir o modelo.

No caso do exemplo acima, o conjunto treino seria composto de quatro exemplos de treino, cada qual contendendo quatro features (peso, comprimento da asa, palmípede e cor das costas) e uma variável alvo (espécie). A variável alvo é o resultado que desejamos alcançar. Nos problemas de classificação, ela é chamada de classe.

Bom, com o algoritmo treinado, é hora de testá-lo. Para isso, mais do que um conjunto treino, precisamos também de um conjunto de dados à parte, o conjunto teste. Neste, as variáveis alvo de cada linha são desconhecidas pelo modelo, pois é ele quem decidirá classe pertencente de cada linha.

É comparando os valores previstos com as classes de cada exemplo de treino que temos uma noção da acurácia do modelo!

Overfitting e Underfitting

Estes são dois problemas que você deve contornar ao construir modelos. Overfitting é quando o seu modelo performa bem nos dados de treino, mas é incapaz de generalizar para dados novos. Underfitting, por outro lado, é quando seu modelo não tem boa performance nem mesmo nos dados de treino.

Model Fit: Underfitting vs. Overfitting

Scikit-Learn (sklearn)

Essa é uma das bibliotecas mais populares de Machine Learning que temos disponíveis hoje. Além de ser acessível a todos, visto que toda a parte matemática pesada dos algoritmos é ocultada, Scikit-Learn é uma ferramenta eficiente e estável para você treinar e testar seus modelos (sejam eles supervisionados ou não).

A documentação completa do sklearn pode ser acessada aqui.

Regressão e Classificação

Classificação e regressão são duas categorias de algoritmos que se enquadram dentro dos modelos supervisionados. Os algoritmos de classificação predizem as categorias (classes) de cada linha do conjunto de dados. Por exemplo: classificar se um e-mail é ou não spam, ou os gêneros de uma lista de filmes.

Já os algoritmos de regressão, por sua vez, buscam prever valores númericos, tais como: valor de imóvel, pressão sanguínea, expectativa de vida, etc.

Técnicas comuns de regressão e classificação são: Linear Regression, Logistic Regression, Naïve Bayes, k-Nearest Neighbors (kNN), Decision Tree e Random Forests.

Métricas comuns para avaliar modelos de regressão

Para podermos avaliar a precisão dos modelos de regressão, isto é, o quão próximo eles estão dos valores reais, podemos utilizar algumas métricas, tais como Mean Absolute Error (MAE), Mean Square Error (MSE), Root Mean Square Error (RMSE), e R-Squared (R²).

Métricas comuns para avaliar modelos de classificação

Já para os modelos de classificação, as mais comuns para avaliá-los são: acurácia, precisão, recall, F1-Score, e confusion matrix (que não é bem uma métrica, mas traz informações relevantes).

Por motivos de espaço, não entrarei nos detalhes de cada uma dessas métricas acima. Quem sabe não escrevo um artigo para abordar especialmente cada uma delas?

Considerações finais

Com este simples e breve artigo, espero ter ajudado você a compreender melhor alguns termos básicos (e muito recorrentes) de Machine Learning e ensejado o seu interesse em continuar a se aprofundar nessa área envolvente e complexa.

Algumas recomendações de leituras e cursos:

  1. DEITEL, Paul; DEITEL, Harvey; TEMES, David. Introduction to Python for Computer Science and Data Science;
  2. GRUS, Joel. Data Science from Scratch: First Principles with Python;
  3. HASTIE, Trevor; TIBSHIRANI, Robert; FRIEDMAN, Jerome. The Elements of Statistical Learning: Data Mining, Inference, and Prediction;
  4. HARRINGTON, Peter. Machine Learning in Action;
  5. Um ótimo curso de introdução: Supervised Machine Learning: Regression and Classification;

Obrigado por ter chegado até aqui! Adicione-me no Linkedln e siga-me por aqui para receber mais conteúdos de Data Science na prática como esse.

--

--