我正在尝试规范化我的数据(形状(23687,7((,然后将原始数据集的平均值和标准保存到"normalized_param.pkl">
将规范化数据拟合到我的 LSTM 模型后,我将得到一个答案数组(形状为(23687, 1((
现在我要做的是:
test_sc_path = os.path.join('normalized_standard', 'normalized_param.pkl')
test_scaler = load(test_sc_path)
test_denorm_value = test_scaler.inverse_transform(test_normalized_data)
值错误:形状 (23687,1( 的不可广播输出操作数与广播形状 (23687,7(
不匹配
我认为这是因为test_scaler对象内部有 7 个暗淡的参数,所以如果我想只对 1 个暗淡的数据进行非规范化,我应该使用test_scaler.mean_[-1]
和「test_scaler.scale_[-1]
来获取我要计算的最后一个参数。
但是,我认为这很复杂,有没有像scaler.inverse_transform()
一样可以轻松解决此问题的sklearn方法?
谢谢
是的,有一种方法。请参阅此处的文档。
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(data) # Basically fits the data, store means & standard deviations.
scaler.transform(data) # Standardize (Normalize) the data with the scaler parameters
scaler.fit_transform(data) # Fits & Transform
scaler.inverse_transform(data) # Apply inverse transformation for the input data.