python - 我怎样才能干净地规范化数据然后 "unnormalize"呢?

标签 python pandas numpy tensorflow normalize

我将 Anaconda 与 Tensorflow 神经网络结合使用。我的大部分数据都存储在 pandas 中。
我试图预测加密货币市场。我知道很多人可能都在这样做,而且很可能不会很有效,我这样做主要是为了让自己熟悉 Tensorflow 和 Anaconda 工具。
我对此很陌生,所以如果我做错了什么或不够理想,请告诉我。

以下是我获取和处理数据的方式:

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

现在,我的问题是,我怎样才能干净地规范化然后非规范化这些数据?我意识到,如果我想对数据进行非规范化,我将需要存储初始的 df.min()df.max() 值,但这看起来又丑又笨重。
我知道我可以使用 sklearn.preprocessing.MinMaxScaler 对数据进行规范化,但据我所知,我无法使用它对数据进行非规范化。

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

最佳答案

sklearn.preprocessing 中的所有缩放器有专门为此设计的 inverse_transform 方法。

例如,要使用 MinMaxScaler 缩放和取消缩放您的 DataFrame,您可以执行以下操作:

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaled = scaler.fit_transform(df)
unscaled = scaler.inverse_transform(scaled)

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

关于python - 我怎样才能干净地规范化数据然后 "unnormalize"呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43382716/

相关文章:

python - Coursera ML - 在 python 中实现正则化逻辑回归成本函数

python - 使用请求在 Python 中搜索网站时出现 502 错误

python - 使用 matplotlib 缺少第一个 x 标签

python - 如何将列转换为十六进制,然后连接以获得固定长度的新列?

行的 python pandas 着色

Python 翻译 C saxpy

python - cv2.minAreaRect 错误,给了我与我没有使用过的凸包函数相关的错误

python - 如何在 INSERT IGNORE 上获取 rowID

python - Pandas 在循环中合并数据帧

python - 向量中元素之间的最小距离