Пакет python fancyimpute предоставляет несколько методов вменения данных. Я пытался использовать мягкий подход; однако soft-impute не предлагает метод преобразования, который будет использоваться в тестовом наборе данных. Точнее, Sklearn SimpleImputer (например, ниже) предоставляет методы fit, transform и fit_transform. С другой стороны, SoftImpute предоставляет только fit_transform, который позволяет мне подгонять данные при обучении, но не преобразовывать их в набор для тестирования. Я понимаю, что установка вменения в комплекты для обучения и тестирования приведет к утечке данных из комплекта для тестирования в тренинг. Для этого нам нужно пройти обучение и трансформироваться в тестирование. Есть ли какие-либо способы вписать тестовый набор того, что я установил из тренировочного набора в подход мягкого вменения? Я ценю любые мысли.
# this example from https://scikit-learn.org/stable/modules/generated/sklearn.impute.SimpleImputer.html
import numpy as np
from sklearn.impute import SimpleImputer
imp_mean = SimpleImputer(missing_values=np.nan, strategy='mean')
imp_mean.fit([[7, 2, 3], [4, np.nan, 6], [10, 5, 9]])
X_train = [[np.nan, 2, 3], [4, np.nan, 6], [10, np.nan, 9]]
print(imp_mean.transform(X_train))
# SimpleImputer provides transform method, so we can apply fitted imputation into the
testing data e.g.
# X_test =[...]
# print(imp_mean.transform(X_test))
from fancyimpute import SoftImpute
clf = SoftImpute(verbose=True)
clf.fit_transform(X_train)
## There is no clf.tranform to be used with test set e.g. clf.transform(X_test)