首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大数据集的特征缩放

大数据集的特征缩放
EN

Stack Overflow用户
提问于 2018-10-04 09:04:08
回答 1查看 1.9K关注 0票数 2

我试图使用深度学习模型来预测时间序列,在将数据传递给模型之前,我想对不同的变量进行缩放,因为它们有很大的不同范围。

我通常是“动态地”这样做的:加载数据集的训练子集,从整个子集获取定标器,存储它,然后在我想要使用它进行测试时加载它。

现在的数据是相当大的,我不会一次加载所有的训练数据进行训练。

我怎么才能去拿定价器呢?一开始,我想做一个一次性的操作,加载所有的数据,只是为了计算定标器(通常我使用sklearn定标器,比如StandardScaler),然后在我的训练过程中加载它。

这是常见的做法吗?如果是,如果将数据添加到培训数据集,您将如何做?定标器能不能结合起来,避免一次性操作,只需“更新”定标器?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-04 09:53:19

StandardScaler in scikit-learn能够使用partial_fit()以增量方式(对于小块数据)计算数据的平均值和std:

partial_fit(X,y=None) X上均值和std的在线计算,以供以后的标度。所有X都是作为一批处理的。当fit由于非常多的n_samples或X是从一个连续的流中读取而不可行时,这将适用于这种情况。

您需要对数据进行两次传递:

  • 一个完整的传递(可以是批处理,调用partial_fit()来计算平均值和std),
  • 其他传递的数据,您发送到深度学习框架,以transform()它的飞行。

示例示例:

代码语言:javascript
复制
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
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52642940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档