gpt4 book ai didi

python - 使用 PowerTransformer 时如何正确使用 inverse_transform 方法?

转载 作者:行者123 更新时间:2023-12-05 07:21:22 29 4
gpt4 key购买 nike

在对各种数组执行连续变换后,我在使用 inverse_transform 方法对数组进行反向变换时遇到了一些困难。我可以使用 .lambdas_ 属性访问用于原始转换的 lambda 值。此外,据我所知,用于执行 inverse_transform 的代码已列出 here .但是,我想知道如何正确使用 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 存储 lambda。这是我试过的代码:

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'])

最佳答案

显然,您可以直接分配 lambda 值。因此,最初您保存用于转换的 .lambdas_,例如:savedLamdas = bc.lambdas_

然后,在执行 .inverse_transformed() 之前,您直接恢复保存的 lambda,例如:bc.lambdas_ = savedLamdas

我很惊讶你可以直接设置 lambdas_ 属性,但它有效(至少在我的 scikit-learn 0.21.2 版本中)。

关于python - 使用 PowerTransformer 时如何正确使用 inverse_transform 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56936780/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com