rpi*_*ste 1 python machine-learning scikit-learn data-science
我正在尝试使用深度学习模型进行时间序列预测,在将数据传递给模型之前,我想缩放不同的变量,因为它们的范围大不相同。
我通常“即时”完成此操作:加载数据集的训练子集,从整个子集中获取缩放器,存储它,然后在我想使用它进行测试时加载它。
现在数据非常大,我不会一次加载所有训练数据进行训练。
我怎样才能获得定标器?先验我想到做一次加载所有数据的操作,只是为了计算缩放器(通常我使用 sklearn 缩放器,如 StandardScaler),然后在我进行训练过程时加载它。
这是一种常见的做法吗?如果是,如果将数据添加到训练数据集中你会怎么做?可以组合缩放器以避免一次性操作而只是“更新”缩放器吗?
Viv*_*mar 11
StandardScaler
inscikit-learn
能够使用以下方法以增量方式(对于小数据块)计算数据的均值和标准差partial_fit()
:
partial_fit(X, y=None)
在线计算 X 上的均值和标准差以供以后缩放。所有 X 都作为一个批次处理。这适用于由于大量 n_samples 或因为 X 是从连续流中读取而导致拟合不可行的情况。
您将需要两次传递数据:-
partial_fit()
计算均值和标准差),transform()
的数据即时传递给它。示例:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
# First pass
# some_generator can be anything which reads the data in batches
for data in some_generator:
scaler.partial_fit(data)
# View the updated mean and std variance at each batch
print(scaler.mean_)
print(scaler.var_)
# Second pass
for data in some_generator:
scaled_data = scaler.transform(data)
# Do whatever you want with the scaled_data
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1440 次 |
最近记录: |