Софт-вменение на тестовом наборе с фантазией - PullRequest
0 голосов
/ 13 апреля 2020

Пакет 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)


...