Как правильно использовать метод inverse_transform при использовании PowerTransformer? - PullRequest
2 голосов
/ 08 июля 2019

У меня возникли некоторые трудности с использованием метода inverse_transform для обратного преобразования массива после выполнения последовательных преобразований в различных массивах.Я могу получить доступ к лямбда-значению, используемому для исходного преобразования, используя атрибут .lambdas_.Кроме того, я понимаю, что код для выполнения inverse_transform указан здесь .Однако я хотел бы знать, как правильно использовать метод inverse_transform.

Этот код выполняет обратное преобразование, как и ожидалось:

from sklearn.preprocessing import PowerTransformer

a = np.array([1,3,3,6,3]).reshape(-1, 1)

bc = PowerTransformer(method='box-cox', standardize=False)
bc.fit(a)
a_transformed = bc.transform(a)

a_inverse_transformed = bc.inverse_transform(a_transformed)
a_inverse_transformed

Вывод этого кода показывает, что a являетсятакой же как a_inverse_transformed.Тем не менее, я не могу хранить лямбды для последующего inverse_transform в других сценариях или после других преобразований.Вот код, который я попробовал:

a = np.array([1,3,3,6,3]).reshape(-1, 1)
bc = PowerTransformer(method='box-cox', standardize=False)
bc.fit(a)
a_transformed = bc.transform(a)
a_lambda = bc.lambdas_[0]

b = np.array([11,33,35,60,38]).reshape(-1, 1)
bc = PowerTransformer(method='box-cox', standardize=False)
bc.fit(b)
b_transformed = bc.transform(b)


bc.set_params(**{'lambdas_':a_lambda})
a_inverse_transformed = bc.inverse_transform(a_transformed)
a_inverse_transformed

Я получаю следующую ошибку в приведенном выше коде:

ValueError: Invalid parameter lambdas_ for estimator PowerTransformer(copy=True, method='box-cox', standardize=False). Check the list of available parameters with `estimator.get_params().keys()`.

Также я попытался найти правильный параметр с помощью bc.get_params() .keys ().Единственные ключи, которые я вижу:

dict_keys(['copy', 'method', 'standardize'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...