Sobes.tech
Middle — Senior

Какво е pseudo-labeling при таблицови задачи?

sobes.tech AI

Отговор от AI

Pseudo-labeling е метод за полунадзорно обучение, който често се използва при задачи с таблични данни. Идеята е да се използва модел, обучен върху означени данни, за да се предскажат етикети за неозначени данни, а след това тези предсказани етикети (pseudo-етикети) да се добавят към обучаващия набор за допълнително обучение.

При задачи с boosting и таблични данни това помага да се увеличи обемът на обучаващите данни, особено когато има малко означени данни. Например, след първия етап на обучение на модела върху означените данни, моделът предсказва етикети за неозначени записи. След това тези записи с pseudo-етикети се добавят към обучаващия набор, и моделът се дообучава върху разширения набор.

Важно е да се контролира качеството на pseudo-етикетите, например като се избират само онези предсказания, в които моделът е уверен (по вероятност), за да не се влоши качеството на обучението.

Пример в псевдокод:

# Обучение върху означени данни
model.fit(X_labeled, y_labeled)

# Предсказване върху неозначени данни
pseudo_labels = model.predict(X_unlabeled)

# Избиране на надеждни предсказания
confident_indices = [i for i, p in enumerate(model.predict_proba(X_unlabeled)) if max(p) > threshold]

# Добавяне на pseudo-етикети към обучаващия набор
X_extended = np.concatenate([X_labeled, X_unlabeled[confident_indices]])
y_extended = np.concatenate([y_labeled, pseudo_labels[confident_indices]])

# Допълнително обучение на модела
model.fit(X_extended, y_extended)