归一化序列数据

归一化是从原始范围的数据重新缩放,使得所有的值都在0到1的范围之内。规范化要求您指导或能够准确地最小和最大可观测值。您可以从可用的数据中估计这些值。如果您可以从可用的数据中估计这些值。如果您的序列是呈增长趋势的或者下降趋势的,估计这些期望值可能是困难的,并且规范化可能不是解决您问题的最好办法。

如果要缩放的值超过最小值和最大值的边界,则所得到的值的范围不在0到1的范围之内。在进行预测之前,你可以先检查下这些观测值,或者将它们从数据集中删除,或者将它们限制在一个预先定义的最大值或者最小值的范围内。可以使用scikit-learn对象的MinMaxScaler来归一化数据集。使用MinMaxScaler缩放技术以及其他缩放技术的的一个好的例子如下:

  • 使用可用的训练数据拟合缩放器。对于归一化,这意味着训练数据将被用来估计最小和最大的可观测值。这可以通过调用 fit()函数来完成。

  • 将尺度运用于训练数据。这意味着可以使用归一化数据来训练模型。这可以通过调用 transform()函数来完成。

  • 将尺度应用于后面的数据。这意味着你可以在未来准备你想要用于预测的新的数据。

如果需要的话,变换可以反过来。这将有助于将预测转化为原始尺度的报告或者绘图。这个可以通过调用反向的 transform()函数来实现。下面是对10个单位的人为归一化的序列的例子。缩放器对象需要提供数据作为行和列的矩阵。加载的时间序列数据作为Pandas Series。

from sklearn.preprocessing import MinMaxScaler
from pandas import Series

data = [3.3, 5.3, 6.6 , 8.2, 9.9, 8.6, 7.7, 6.4, 9.1, 10.0]
print(type(data))
serise = Series(data)
print(type(serise))
value = serise.values.reshape(len(serise), 1)
print(type(value))
scaler = MinMaxScaler(feature_range=(0, 1)).fit_transform(value)
print(type(scaler))
print(scaler)

'''
<class 'list'>
<class 'pandas.core.series.Series'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
[[0.        ]
 [0.29850746]
 [0.49253731]
 [0.73134328]
 [0.98507463]
 [0.79104478]
 [0.65671642]
 [0.46268657]
 [0.86567164]
 [1.        ]]
'''

转自:学术头条

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值