Aprendizado Supervisionado (Supervised Learning)

Definição

Aprendizado Supervisionado (Supervised Learning) é um tipo de aprendizado de máquina onde o modelo é treinado com dados rotulados, ou seja, cada exemplo inclui entradas conhecidas (atributos) e saídas desejadas (respostas corretas).

O objetivo é fazer com que o modelo aprenda a relação entre os dados e os rótulos, para que possa prever o rótulo correto de novos dados que nunca viu antes.

Exemplos de problemas supervisionados:

  • Classificação: o e-mail é spam ou não spam?
  • Regressão: qual será o preço de uma casa com determinadas características?

Exemplo prático (Python) — Classificador de flores com aprendizado supervisionado

Neste exemplo, utilizaremos o conjunto de dados Iris, amplamente conhecido em projetos de aprendizado de máquina, para treinar um modelo do tipo KNN (K-Nearest Neighbors) — uma técnica clássica de aprendizado supervisionado usada para tarefas de classificação.

Sobre o load_iris()

A função load_iris() do scikit-learn fornece um conjunto com 150 registros de flores Iris, cada uma com 4 atributos numéricos:

  • comprimento e largura da sépala
  • comprimento e largura da pétala

Cada flor é classificada em uma de três espécies:

  • Iris setosa
  • Iris versicolor
  • Iris virginica

Nosso objetivo é treinar um modelo supervisionado para prever a espécie da flor com base em suas medidas.

Código

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# 1. Carregar o conjunto de dados Iris
iris = load_iris()

# X = atributos das flores (as medidas)
# y = rótulos das espécies (0 = setosa, 1 = versicolor, 2 = virginica)
X = iris.data
y = iris.target

# 2. Dividir os dados em treino (80%) e teste (20%)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=0
)

# 3. Criar o modelo supervisionado (KNN = K-Nearest Neighbors)
modelo = KNeighborsClassifier(n_neighbors=3)

# 4. Treinar o modelo com os dados de treino
modelo.fit(X_train, y_train)

# 5. Fazer previsões com os dados de teste
y_pred = modelo.predict(X_test)

# 6. Avaliar o desempenho do modelo
acuracia = accuracy_score(y_test, y_pred)
print("Acurácia do modelo:", acuracia)

Saída esperada (exemplo)

Acurácia do modelo: 1.0

(O valor pode variar entre execuções. O importante é observar que o modelo está acertando a maioria das classificações.)

O que o modelo aprendeu?

Durante o treinamento, o modelo recebeu dados como:

[5.1, 3.5, 1.4, 0.2] → setosa
[6.3, 3.3, 6.0, 2.5] → virginica

Ele aprendeu que certas combinações de medidas estão associadas a certas espécies de flores.

Ao receber uma nova flor com medidas como:

[6.7, 3.1, 4.4, 1.4]

O modelo compara com os exemplos já vistos e retorna a espécie mais próxima, de acordo com os 3 vizinhos mais semelhantes (no caso do n_neighbors=3).

Você pode imprimir os resultados de forma clara assim:

for medidas, previsto, esperado in zip(X_test, y_pred, y_test):
    print(f"Medidas: {medidas}, Previsto: {iris.target_names[previsto]}, Esperado: {iris.target_names[esperado]}")

Exemplo de saída:

Medidas: [6.7 3.1 4.4 1.4], Previsto: versicolor, Esperado: versicolor
Medidas: [5.0 3.4 1.6 0.4], Previsto: setosa, Esperado: setosa
Medidas: [5.8 2.7 4.1 1.0], Previsto: versicolor, Esperado: virginica

O ciclo do Aprendizado Supervisionado

[Conjunto de Dados Rotulado]
         ↓
[Pré-processamento dos Dados]
         ↓
[Separação em Treino e Teste]
         ↓
[Escolha do Algoritmo]
         ↓
[Treinamento com Dados e Rótulos]
         ↓
[Teste e Avaliação do Modelo]
         ↓
[Ajustes e Repetição]

O aprendizado supervisionado é altamente utilizado em sistemas de recomendação, diagnósticos médicos, reconhecimento de imagem, e previsão de demanda, entre muitos outros.

Relacionados

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com