Sobes.tech
Middle — Senior

Ce este pseudo-labeling în sarcinile tabelare?

sobes.tech AI

Răspuns de la AI

Pseudo-labeling este o metodă de învățare semi-supervizată care se aplică frecvent în sarcini cu date tabelare. Ideea este de a folosi un model antrenat pe date etichetate pentru a prezice etichete pe date neetichetate, apoi de a adăuga aceste etichete prezise (pseudo-etichetări) la setul de antrenament pentru antrenament suplimentar.

În sarcinile tabelare cu boosting, acest lucru ajută la creșterea volumului de date de antrenament, mai ales când datele etichetate sunt puține. De exemplu, după prima etapă de antrenament a modelului pe date etichetate, modelul prezice etichete pentru înregistrările neetichetate. Apoi, aceste înregistrări cu pseudo-etichetări sunt adăugate la setul de antrenament, iar modelul este reantrenat pe acest set extins.

Este important să controlezi calitatea pseudo-etichetărilor, de exemplu, selectând doar acele predicții în care modelul este sigur (după probabilitate), pentru a nu deteriora calitatea învățării.

Exemplu în pseudocod:

# Antrenament pe date etichetate
model.fit(X_labeled, y_labeled)

# Prezicere pe date neetichetate
pseudo_labels = model.predict(X_unlabeled)

# Selectarea predicțiilor de încredere
confident_indices = [i for i, p in enumerate(model.predict_proba(X_unlabeled)) if max(p) > threshold]

# Adăugarea pseudo-etichetărilor la setul de antrenament
X_extended = np.concatenate([X_labeled, X_unlabeled[confident_indices]])
y_extended = np.concatenate([y_labeled, pseudo_labels[confident_indices]])

# Reantrenarea modelului
model.fit(X_extended, y_extended)