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_m2equartos. - 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
- Definir o problema: o que queremos prever, e com que dados?
- Coletar e explorar os dados: olhar tabelas e gráficos.
- Preparar os dados: tratar valores ausentes, converter texto em número.
- Dividir em treino e teste.
- Treinar o modelo com os dados de treino.
- 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.