Cos'è il pseudo-labeling nei compiti tabellari?
sobes.tech AI
Risposta dell'AI
Il pseudo-labeling è un metodo di apprendimento semi-supervisionato spesso utilizzato in compiti con dati tabulari. L'idea è di usare un modello addestrato su dati etichettati per prevedere le etichette su dati non etichettati, e poi aggiungere queste etichette previste (pseudo-etichettature) al set di addestramento per un ulteriore addestramento.
Nei compiti tabulari con boosting, questo aiuta ad aumentare la quantità di dati di addestramento, specialmente quando ci sono pochi dati etichettati. Ad esempio, dopo la prima fase di addestramento del modello sui dati etichettati, il modello predice le etichette per i record non etichettati. Questi record con pseudo-etichettature vengono quindi aggiunti al set di addestramento, e il modello viene riaddestrato su questo set ampliato.
È importante controllare la qualità delle pseudo-etichettature, ad esempio selezionando solo le previsioni in cui il modello è sicuro (per probabilità), per non degradare la qualità dell'apprendimento.
Esempio in pseudocodice:
# Addestramento sui dati etichettati
model.fit(X_labeled, y_labeled)
# Previsione sui dati non etichettati
pseudo_labels = model.predict(X_unlabeled)
# Selezione delle previsioni affidabili
confident_indices = [i for i, p in enumerate(model.predict_proba(X_unlabeled)) if max(p) > threshold]
# Aggiunta delle pseudo-etichettature al set di addestramento
X_extended = np.concatenate([X_labeled, X_unlabeled[confident_indices]])
y_extended = np.concatenate([y_labeled, pseudo_labels[confident_indices]])
# Riaddestramento del modello
model.fit(X_extended, y_extended)