Multirrótulo

1.1 – Supervisionado
1.1.2 – Classificacao
1.1.2.3 – Multirrotulo
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

O que é classificação multirrótulo

A classificação multirrótulo é um tipo de aprendizado supervisionado. Nela, cada exemplo pode pertencer a várias classes simultaneamente. Por exemplo, uma flor pode ter múltiplas características ao mesmo tempo. Diferentemente da classificação multiclasse, aqui as saídas não são exclusivas. O modelo aprende a prever um vetor binário de rótulos. Cada posição indica a presença ou ausência de um atributo. Esse problema é comum em biologia, textos e imagens. Ele é mais desafiador que a classificação tradicional. Contudo, muitas técnicas podem ser adaptadas para ele.

Primeiramente, os dados são rotulados com múltiplos alvos binários. Por exemplo, uma planta pode ser “venenosa” e “medicinal” ao mesmo tempo. Além disso, os rótulos podem apresentar correlações estatísticas. Essas correlações podem ser exploradas pelo modelo. A avaliação usa métricas como acurácia por rótulo. Outra métrica comum é o erro de cobertura (coverage error). Modelos simples tratam cada rótulo de forma independente. Modelos mais avançados capturam dependências entre eles. A escolha depende da complexidade do problema.

Arquitetura do modelo

A arquitetura mais usada é a rede neural multissaída. A camada de entrada recebe as características do exemplo. Em seguida, uma ou mais camadas ocultas processam os dados. A ativação comum nessas camadas é a ReLU. Finalmente, a camada de saída usa a função sigmoide. Cada neurônio de saída corresponde a um rótulo binário. A sigmoide é definida pela fórmula: \(\sigma(z) = \frac{1}{1 + e^{-z}}\). Ela transforma qualquer valor real em probabilidade entre 0 e 1. Um limiar (geralmente 0,5) decide se o rótulo é ativado.

Outra abordagem é o classificador de cadeia (Classifier Chain). Ele transforma o problema multirrótulo em uma sequência binária. Cada predição é usada como entrada para o próximo modelo. Assim, dependências entre rótulos são capturadas explicitamente. Contudo, a ordem dos rótulos influencia o resultado final. Por isso, múltiplas cadeias aleatórias são frequentemente usadas. A arquitetura MLP com saída sigmoide é mais simples. Ela é recomendada para iniciantes neste tópico. Sua implementação é direta no scikit-learn.

Hiperparâmetros e fórmulas

Os hiperparâmetros controlam o comportamento do modelo. O número de neurônios ocultos afeta a capacidade de aprendizado. A taxa de aprendizado determina o passo da atualização. O número de épocas é quantas vezes os dados são vistos. A regularização evita overfitting em redes neurais. O limiar de decisão pode ser ajustado após o treinamento. Esses parâmetros são otimizados com validação cruzada. Cada problema exige uma configuração diferente.

A função de perda é a entropia cruzada binária. Ela é calculada separadamente para cada rótulo: \(L_j = -\frac{1}{N}\sum_{i=1}^{N} [y_{ij} \log(\hat{y}_{ij}) + (1-y_{ij})\log(1-\hat{y}_{ij})]\). Nessa fórmula, \(y_{ij}\) é o rótulo verdadeiro. \(\hat{y}_{ij}\) é a probabilidade prevista pelo modelo. A perda total é a soma sobre todos os \(M\) rótulos: \(L = \sum_{j=1}^{M} L_j\). O gradiente descendente minimiza essa perda. A regra de atualização dos pesos é: \(w_{novo} = w_{velho} – \eta \frac{\partial L}{\partial w}\). Aqui, \(\eta\) é a taxa de aprendizado.

Enunciado do exemplo com flor íris (realista)

Você recebeu dados modificados da flor Íris com ruído. Cada flor pode ter múltiplos atributos biológicos ativos. Os atributos são: “pétala alongada”, “sépala larga” e “flor vistosa”. Os dados originais contêm medidas de pétala e sépala. Contudo, os rótulos agora têm 15% de ruído aleatório. Isso significa que flores similares podem ter rótulos diferentes. Seu objetivo é prever todos os atributos ativos para cada flor. Use uma rede neural com camada oculta de 8 neurônios. A saída deve usar ativação sigmoide para cada atributo. Divida os dados em treino (80%) e teste (20%). Normalize as características antes do treinamento. Exiba dois gráficos: correlação dos atributos e acurácias.

O código abaixo resolve este enunciado realisticamente. Ele roda no Google Colab sem necessidade de ajustes. A acurácia não será 100% devido ao ruído introduzido. Isso permite avaliar a real capacidade de generalização. Boa prática! A classificação multirrótulo é muito útil.

Esse código corrigido introduz ruído realista nos rótulos. Agora a acurácia fica tipicamente entre 80% e 90%. Isso porque flores semelhantes podem ter rótulos diferentes. A perda Hamming é uma métrica específica para multirrótulo. Ela mede a fração de rótulos preditos incorretamente. O gráfico de correlação mostra relações menos perfeitas. A regularização (alpha=0.01) ajuda a evitar overfitting. O early_stopping interrompe o treinamento no momento certo. Este exemplo é muito mais realista para aprendizado. Parabéns por compreender a diferença fundamental!

Deixe um comentário