Quando você começa a aprender o aprendizado de máquina, uma das primeiras bifurcações no caminho é esta: que tipo de aprendizado você está fazendo? A resposta muda tudo – os algoritmos disponíveis para você, os dados de que você precisa e o que você pode esperar que seu modelo faça.
As duas categorias fundamentais são aprendizagem supervisionada e aprendizagem não supervisionada. Compreender a diferença não é apenas acadêmico – é a primeira decisão que você tomará ao abordar qualquer novo problema de ML.
A diferença mais fundamental entre aprendizagem supervisionada e não supervisionada é se seus dados de treinamento incluem rótulos.
Dados rotulados significa que cada exemplo em seu conjunto de dados vem com a "resposta certa" — o resultado que você deseja que o modelo preveja ou classifique:
# Labelled dataset (supervised)
email_text | label
------------------------------------|-------
"Congratulations! You've won £1000" | spam
"Meeting rescheduled to Thursday" | not_spam
"URGENT: Your account is suspended" | spam
Dados não rotulados significa que você tem as informações, mas não tem respostas predefinidas — apenas as observações brutas:
# Unlabelled dataset (unsupervised)
customer_id | age | annual_spend | frequency | location
------------|-----|--------------|-----------|----------
C001 | 34 | £2,400 | 12/year | London
C002 | 52 | £18,000 | 52/year | Manchester
C003 | 28 | £650 | 3/year | London
A produção de dados rotulados é cara e demorada – exige que humanos anote manualmente os exemplos. Os dados não rotulados são abundantes (a maioria dos dados no mundo não tem rótulos). Esta restrição prática molda qual abordagem é possível para um determinado problema.
Na aprendizagem supervisionada, o modelo aprende um mapeamento de entradas para saídas estudando exemplos rotulados. O “supervisor” são os próprios dados rotulados – cada exemplo de treinamento informa ao modelo qual deve ser a saída correta.
Quando a saída é uma categoria discreta, é um problema de classificação.
Exemplos:
Entrar participar da discussão
Algoritmos comuns:
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
classifier = RandomForestClassifier(n_estimators=100)
classifier.fit(X_train, y_train)
accuracy = classifier.score(X_test, y_test)
print(f"Test accuracy: {accuracy:.2%}")
Quando a saída é um número contínuo, é um problema de regressão.
Exemplos:
Algoritmos comuns:
from sklearn.ensemble import GradientBoostingRegressor
model = GradientBoostingRegressor(n_estimators=200, learning_rate=0.1)
model.fit(X_train, y_train)
predictions = model.predict(X_test)
# predictions = [245000, 182000, 412000, ...] (house prices in £)
Na aprendizagem não supervisionada, o modelo explora a estrutura dos dados sem quaisquer rótulos. Em vez de aprender um mapeamento para uma saída conhecida, ele descobre padrões, agrupamentos ou representações ocultos por conta própria.
Os algoritmos de cluster agrupam pontos de dados semelhantes sem saber quais deveriam ser os grupos.
Exemplos:
Algoritmos comuns:
from sklearn.cluster import KMeans
# We don't know how many customer segments exist — let's try 4
kmeans = KMeans(n_clusters=4, random_state=42)
kmeans.fit(customer_data_scaled)
# Each customer now has a cluster label (0, 1, 2, or 3)
df['segment'] = kmeans.labels_
# Analyse what each segment looks like
print(df.groupby('segment')[['age', 'annual_spend', 'frequency']].mean())
Compacte dados de alta dimensão em menos dimensões, preservando o máximo de estrutura possível. Usado para visualização, pré-processamento e remoção de informações redundantes.
Algoritmos comuns:
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
# Reduce 50-dimensional data to 2D for visualisation
pca = PCA(n_components=2)
X_2d = pca.fit_transform(X_scaled)
plt.scatter(X_2d[:, 0], X_2d[:, 1], c=cluster_labels, cmap='tab10')
plt.title('Customer segments visualised in 2D')
plt.show()
A distinção supervisionado/não supervisionado é fundamental, mas o panorama do ML é mais rico do que apenas essas duas categorias.
Usa uma pequena quantidade de dados rotulados combinada com uma grande quantidade de dados não rotulados. Isto é muito prático porque a rotulagem é cara.
Exemplo: você tem 1.000 exames médicos rotulados e 100.000 exames não rotulados. O aprendizado semissupervisionado permite que você se beneficie dos dados não rotulados para melhorar o desempenho além do que apenas 1.000 rótulos poderiam alcançar.
Um caso especial em que os rótulos são gerados automaticamente a partir dos próprios dados. É assim que os modelos modernos de grandes linguagens são pré-treinados.
Exemplo: pegue uma frase, oculte algumas palavras e treine o modelo para prever as palavras que faltam. Os “rótulos” (as palavras corretas) são gratuitos – vêm diretamente do próprio texto. Foi assim que o BERT foi treinado.
Input: "The cat sat on the [MASK]."
Target: "mat"
A aprendizagem autossupervisionada tem sido transformadora porque permite o treinamento em dados em escala da Internet sem anotação humana.
Um agente aprende realizando ações em um ambiente e recebendo recompensas ou penalidades. Não existem rótulos – apenas sinais de feedback dos resultados.
Exemplos: jogar xadrez, treinar um robô para andar, otimizar o sistema de refrigeração de um data center. Abordaremos isso em profundidade em sua própria lição.
Aqui está uma estrutura de decisão prática:
Do you have labelled data?
├── YES → Supervised Learning
│ ├── Output is a category? → Classification
│ │ (spam/not spam, dog/cat, fraud/legit)
│ └── Output is a number? → Regression
│ (price, temperature, sales volume)
└── NO → Unsupervised Learning
├── Want to find groups? → Clustering
│ (customer segments, document topics)
├── Want to compress data? → Dimensionality Reduction
│ (visualisation, pre-processing)
└── Want to detect anomalies? → Anomaly Detection
(fraud, equipment failure)
Partially labelled? → Semi-Supervised Learning
Learning from interaction? → Reinforcement Learning
Você tem 50.000 avaliações de produtos sem avaliações com estrelas ou rótulos de sentimento. Você deseja agrupá-los automaticamente por tópico. Qual abordagem de aprendizagem você deve usar?