Sobes.tech
Middle — Senior

O que é pseudo-labeling em tarefas de tabelas?

sobes.tech IA

Resposta da IA

Pseudo-rótulo é um método de aprendizagem semi-supervisionada frequentemente utilizado em tarefas com dados tabulares. A ideia é usar um modelo treinado com dados rotulados para prever rótulos em dados não rotulados, e então adicionar esses rótulos previstos (pseudo-rótulos) ao conjunto de treino para um treinamento adicional.

Em tarefas tabulares com boosting, isso ajuda a aumentar o volume de dados de treino, especialmente quando há poucos dados rotulados. Por exemplo, após a primeira fase de treino do modelo com dados rotulados, o modelo prevê rótulos para registros não rotulados. Depois, esses registros com pseudo-rótulos são adicionados ao conjunto de treino, e o modelo é treinado novamente com esse conjunto ampliado.

É importante controlar a qualidade dos pseudo-rótulos, por exemplo, selecionando apenas aquelas previsões em que o modelo está confiante (por probabilidade), para não prejudicar a qualidade do treino.

Exemplo em pseudocódigo:

# Treinamento com dados rotulados
model.fit(X_labeled, y_labeled)

# Previsão com dados não rotulados
pseudo_labels = model.predict(X_unlabeled)

# Seleção de previsões confiantes
confident_indices = [i for i, p in enumerate(model.predict_proba(X_unlabeled)) if max(p) > threshold]

# Adição de pseudo-rótulos ao conjunto de treino
X_extended = np.concatenate([X_labeled, X_unlabeled[confident_indices]])
y_extended = np.concatenate([y_labeled, pseudo_labels[confident_indices]])

# Treinamento adicional do modelo
model.fit(X_extended, y_extended)