У меня возникли некоторые трудности с использованием метода 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'])