我怎样才能干净地规范化数据然后 "unnormalize" 呢?
How can I cleanly normalize data and then "unnormalize" it later?
我正在使用带有 Tensorflow 神经网络的 Anaconda。我的大部分数据都存储在 pandas
.
我试图预测加密货币市场。我知道很多人可能都在这样做,而且很可能不会很有效,我这样做主要是为了让自己熟悉 Tensorflow 和 Anaconda 工具。
我对此很陌生,所以如果我做错了什么或不够理想,请告诉我。
以下是我获取和处理数据的方式:
- 将数据集从 quandl.com 下载到 pandas
DataFrames
- Select 每个下载数据集中的所需列
- 连接
DataFrames
- 从新合并的
DataFrame
中删除所有 NaN
- 使用代码
df = (df - df.min()) / (df.max() - df.min())
将新 DataFrame
中的每一列(独立地)归一化为 0.0-1.0
- 将标准化数据输入我的神经网络
- 非规范化数据(这是我没有实现的部分)
现在,我的问题是,我怎样才能干净地规范化然后非规范化这些数据?我意识到如果我想对数据进行非规范化,我将需要存储初始 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
)return 是 numpy.array
,而不是 pandas.Dataframe
。
我正在使用带有 Tensorflow 神经网络的 Anaconda。我的大部分数据都存储在 pandas
.
我试图预测加密货币市场。我知道很多人可能都在这样做,而且很可能不会很有效,我这样做主要是为了让自己熟悉 Tensorflow 和 Anaconda 工具。
我对此很陌生,所以如果我做错了什么或不够理想,请告诉我。
以下是我获取和处理数据的方式:
- 将数据集从 quandl.com 下载到 pandas
DataFrames
- Select 每个下载数据集中的所需列
- 连接
DataFrames
- 从新合并的
DataFrame
中删除所有 NaN
- 使用代码
df = (df - df.min()) / (df.max() - df.min())
将新 - 将标准化数据输入我的神经网络
- 非规范化数据(这是我没有实现的部分)
DataFrame
中的每一列(独立地)归一化为 0.0-1.0
现在,我的问题是,我怎样才能干净地规范化然后非规范化这些数据?我意识到如果我想对数据进行非规范化,我将需要存储初始 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
)return 是 numpy.array
,而不是 pandas.Dataframe
。