从scikit_learn反转MinMaxScaler

时间:2017-01-09 15:19:23

标签: machine-learning scikit-learn

为了喂养我的生成神经网络,我需要将一些数据归一化到-1和1之间。

我是使用Sklearn的MinMaxScaler来做的,效果很好。 现在,我的生成器将输出介于-1和1之间的数据。

如何恢复MinMaxScaler以获取真实数据?

3 个答案:

答案 0 :(得分:5)

让我们首先定义一个pandas数据帧:

cols = ['A', 'B']
data = pd.DataFrame(np.array([[2,3],[1.02,1.2],[0.5,0.3]]),columns=cols)

enter image description here

我们使用MinMaxScaler

缩放数据
scaler = preprocessing.MinMaxScaler(feature_range = (0,1))
scaled_data = scaler.fit_transform(data[cols])

enter image description here

现在,要反转变换,你应该调用逆变换:

scaler.inverse_transform(scaled_data)

enter image description here

答案 1 :(得分:4)

您使用inverse transform执行此操作。

答案 2 :(得分:0)

def rev_min_max_func(scaled_val):
    max_val = max(df['target'])
    min_val = min(df['target'])
    og_val = (scaled_val*(max_val - min_val)) + min_val
    return og_val
df['pred_target'] = scaled_labeled_df['pred_scaled_target'].apply(lambda x: rev_min_max_func(x))

即使这对我有用!