Sobes.tech
Middle — Senior

¿Qué es el pseudo-labeling en tareas de tablas?

sobes.tech AI

Respuesta de la IA

El pseudo-etiquetado es un método de aprendizaje semi-supervisado que se aplica a menudo en tareas con datos tabulares. La idea es utilizar un modelo entrenado en datos etiquetados para predecir etiquetas en datos no etiquetados, y luego agregar estas etiquetas predichas (pseudo-etiquetas) al conjunto de entrenamiento para un entrenamiento adicional.

En tareas tabulares con boosting, esto ayuda a aumentar el volumen de datos de entrenamiento, especialmente cuando hay pocos datos etiquetados. Por ejemplo, después de la primera fase de entrenamiento del modelo en datos etiquetados, el modelo predice etiquetas para registros no etiquetados. Luego, estos registros con pseudo-etiquetas se añaden al conjunto de entrenamiento, y el modelo se entrena adicionalmente en la muestra ampliada.

Es importante controlar la calidad de las pseudo-etiquetas, por ejemplo, seleccionando solo aquellas predicciones en las que el modelo está seguro (por probabilidad), para no deteriorar la calidad del entrenamiento.

Ejemplo en pseudocódigo:

# Entrenamiento en datos etiquetados
model.fit(X_labeled, y_labeled)

# Predicción en datos no etiquetados
pseudo_labels = model.predict(X_unlabeled)

# Selección de predicciones confiables
confident_indices = [i for i, p in enumerate(model.predict_proba(X_unlabeled)) if max(p) > threshold]

# Añadir pseudo-etiquetas al conjunto de entrenamiento
X_extended = np.concatenate([X_labeled, X_unlabeled[confident_indices]])
y_extended = np.concatenate([y_labeled, pseudo_labels[confident_indices]])

# Entrenamiento adicional del modelo
model.fit(X_extended, y_extended)