Sobes.tech
Middle — Senior

Czym jest pseudo-labeling w zadaniach tabelarycznych?

sobes.tech AI

Odpowiedź od AI

Pseudo-labeling to metoda uczenia półnadzorowanego, która jest często stosowana w zadaniach z danymi tabelarycznymi. Pomysł polega na użyciu modelu wytrenowanego na danych oznakowanych do przewidywania etykiet na danych nieoznaczonych, a następnie dodaniu tych przewidywanych etykiet (pseudo-etykiet) do zbioru treningowego w celu dalszego uczenia.

W zadaniach tabelarycznych z boostingiem, pomaga to zwiększyć ilość danych treningowych, szczególnie gdy oznakowanych danych jest mało. Na przykład, po pierwszym etapie treningu modelu na oznakowanych danych, model przewiduje etykiety dla nieoznaczonych rekordów. Następnie te rekordy z pseudo-etykietami są dodawane do zbioru treningowego, a model jest dalej trenowany na rozszerzonym zbiorze.

Ważne jest kontrolowanie jakości pseudo-etykiet, na przykład wybierając tylko te przewidywania, w których model jest pewny (według prawdopodobieństwa), aby nie pogorszyć jakości uczenia.

Przykład w pseudokodzie:

# Trenowanie na oznakowanych danych
model.fit(X_labeled, y_labeled)

# Przewidywanie na nieoznaczonych danych
pseudo_labels = model.predict(X_unlabeled)

# Wybór pewnych przewidywań
confident_indices = [i for i, p in enumerate(model.predict_proba(X_unlabeled)) if max(p) > threshold]

# Dodanie pseudo-etykiet do zbioru treningowego
X_extended = np.concatenate([X_labeled, X_unlabeled[confident_indices]])
y_extended = np.concatenate([y_labeled, pseudo_labels[confident_indices]])

# Dalsze trenowanie modelu
model.fit(X_extended, y_extended)