Импутация на тестовом наборе с фантазией - PullRequest
0 голосов
/ 15 ноября 2018

Пакет Python Fancyimpute предоставляет несколько методов для вычисления отсутствующих значений в Python.В документации приводятся примеры, такие как:

# X is the complete data matrix
# X_incomplete has the same values as X except a subset have been replace with NaN

# Model each feature with missing values as a function of other features, and
# use that estimate for imputation.
X_filled_ii = IterativeImputer().fit_transform(X_incomplete)

Это прекрасно работает при применении метода вменения к набору данных X.Но что, если training/test разделение необходимо?Как только

X_train_filled = IterativeImputer().fit_transform(X_train_incomplete)

вызывается, как мне вменять тестовый набор и создать X_test_filled?Тестовый набор должен быть вменен, используя информацию из обучающего набора.Я предполагаю, что IterativeImputer() должен вернуть и объект, который может соответствовать X_test_incomplete.Это возможно?

Обратите внимание, что наложение на весь набор данных, а затем разделение на обучающие и тестовые наборы неверно .

1 Ответ

0 голосов
/ 15 ноября 2018

Пакет выглядит как имитирующий API scikit-learn. И после просмотра исходного кода, похоже, у него есть метод transform.

my_imputer = IterativeImputer()
X_trained_filled = my_imputer.fit_transform(X_train_incomplete)

# now transform test
X_test_filled = my_imputer.transform(X_test)

Инициатор применяет те же вменения, которые он выучил из тренировочного набора.

...