如何清晰地标准化数据,然后再"标准化"?

Piz*_*rog 1 python numpy normalize pandas tensorflow

我正在使用带有Tensorflow神经网络的Anaconda.我的大多数数据都存储有pandas.
我试图预测加密货币市场.我知道很多人可能正在这样做,而且很可能不会非常有效,我主要是为了熟悉Tensorflow和Anaconda工具.
我对此很新,所以如果我做错了什么或不是最理想的,请告诉我.

以下是我如何获取和处理数据:

  1. 将quandl.com中的数据集下载到pandas中 DataFrames
  2. 从每个下载的数据集中选择所需的列
  3. 连接 DataFrames
  4. 从新合并中删除所有NaN DataFrame
  5. 使用代码0.0-1.0将每列(独立地)标准化为新列DataFrame
    df = (df - df.min()) / (df.max() - df.min())
  6. 将标准化数据输入我的神经网络
  7. 非规范化数据(这是我没有实现的部分)

现在,我的问题是,我如何干净地规范化然后将这些数据非标准化?我意识到,如果我想对数据进行非标准化,我将需要存储初始值df.min()df.max()值,但这看起来很丑陋并且感觉很麻烦.
我知道我可以用数据标准化数据sklearn.preprocessing.MinMaxScaler,但据我所知,我不能使用这个来对数据进行非标准化.

这可能是我在这里做了一些根本错误的事情,但如果没有一种干净的方法来使用Anaconda或其他库来规范化和非规范化数据,我会感到非常惊讶.

tmr*_*lvi 6

所有的缩放器sklearn.preprocessinginverse_transform采用专为此设计的方法.

例如,为了扩展和未扩展您的DataFrame使用MinMaxScaler,你可以做:

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaled = scaler.fit_transform(df)
unscaled = scaler.inverse_transform(scaled)
Run Code Online (Sandbox Code Playgroud)

请记住,transform函数(fit_transform以及)返回a numpy.array,而不是a pandas.Dataframe.