Pular para o conteúdo
</>RoByte

Buscar cursos e aulas

Aulas do curso

Vídeo em breve

Por enquanto, esta aula está disponível só em texto — o vídeo entra assim que ficar pronto.

Fundamentos

O que é Machine Learning

A ideia por trás do aprendizado de máquina, os tipos de problema e o fluxo de um projeto do início ao fim. · 14 min

Até aqui, em todo programa que você escreveu, foi você quem definiu as regras: “se a idade for maior ou igual a 18, então…”. Em Machine Learning (aprendizado de máquina) essa lógica se inverte: em vez de escrever as regras, você mostra exemplos e o computador descobre as regras sozinho.

Programar regras vs. aprender com dados

  • Programação tradicional: regras + dados entram, respostas saem.
  • Machine Learning: dados + respostas entram, e o que sai são as regras (chamadas de modelo), que depois você aplica a dados novos.

Pense num filtro de spam. Escrever à mão todas as regras (“se tem a palavra promoção…”) é inviável, porque os spammers mudam o texto o tempo todo. Já com Machine Learning você entrega milhares de e-mails já marcados como spam ou não spam, e o modelo aprende os padrões por conta própria.

Vocabulário básico

Todo problema de ML usa os mesmos termos. Olhe esta tabela de exemplo:

area_m2 quartos preco
50 2 250000
80 3 380000
120 4 560000
  • Amostra: cada linha (um imóvel).
  • Features (atributos): as colunas usadas para prever, aqui area_m2 e quartos.
  • Target (alvo ou rótulo): o que queremos prever, aqui preco.
  • Modelo: o “programa” que o algoritmo gera ao aprender a relação entre features e target.
  • Treino e teste: separamos os dados em duas partes. O modelo aprende na parte de treino e é avaliado na de teste, que ele nunca viu.

Os principais tipos de aprendizado

  • Supervisionado: os dados já vêm com a resposta (o target). Se o alvo é um número (preço, temperatura), é um problema de regressão. Se é uma categoria (spam ou não, qual dígito), é classificação.
  • Não supervisionado: não há resposta pronta. O modelo procura estrutura nos dados, como grupos parecidos (agrupamento).
  • Por reforço: um agente aprende por tentativa e erro, recebendo recompensas. É muito usado em robótica, e vai aparecer em cursos futuros.

Dica

Neste curso vamos focar em aprendizado supervisionado e um pouco de não supervisionado, com a biblioteca scikit-learn. É o caminho mais direto para aprender os conceitos que valem para qualquer framework.

O fluxo de um projeto de ML

  1. Definir o problema: o que queremos prever, e com que dados?
  2. Coletar e explorar os dados: olhar tabelas e gráficos.
  3. Preparar os dados: tratar valores ausentes, converter texto em número.
  4. Dividir em treino e teste.
  5. Treinar o modelo com os dados de treino.
  6. Avaliar com os dados de teste e melhorar, repetindo se preciso.

Boa parte do tempo real de um projeto vai nos passos 2 e 3, e não no treino em si.

Preparando o ambiente

Crie um ambiente virtual e instale as bibliotecas do curso:

python -m venv .venv

# Windows
.venv\Scripts\activate
# Linux ou macOS
source .venv/bin/activate

pip install numpy pandas matplotlib scikit-learn

Só para dar um gostinho do que vem pela frente, este é um modelo completo em poucas linhas, que classifica flores de íris pelo tamanho das pétalas e sépalas:

from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier

X, y = load_iris(return_X_y=True)   # X: medidas das flores, y: a espécie

modelo = KNeighborsClassifier(n_neighbors=3)
modelo.fit(X, y)                     # aqui o modelo "aprende"

print(modelo.predict([[5.1, 3.5, 1.4, 0.2]]))  # [0], espécie "setosa"

Atenção

Nesse exemplo treinamos e “testamos” com os mesmos dados, só para mostrar a sintaxe. Isso não é uma avaliação honesta: um modelo pode simplesmente decorar o que já viu. Nas próximas aulas você aprende a separar treino e teste do jeito certo.

Exercícios

Exercício

1. Aquecimento. Classifique cada problema como regressão, classificação ou agrupamento: (a) prever a temperatura de amanhã; (b) decidir se uma imagem tem um gato ou um cachorro; (c) separar clientes de uma loja em perfis parecidos, sem categorias prontas.

Exercício

2. Ambiente. Crie o ambiente virtual, instale as bibliotecas e rode o exemplo da íris. Depois imprima a versão do scikit-learn com import sklearn e print(sklearn.__version__).

Exercício

3. Desafio. Pense em um problema real do seu curso ou do seu dia a dia que poderia ser resolvido com ML. Escreva qual seria o target, quais seriam as features, e se seria regressão ou classificação. Guarde essa ideia: ela pode virar um projeto seu no final do curso.