Python 3.x 如何使用sklearn规范化具有多个特征的时间序列数据?
对于具有形状Python 3.x 如何使用sklearn规范化具有多个特征的时间序列数据?,python-3.x,scikit-learn,Python 3.x,Scikit Learn,对于具有形状(num_samples,features)的数据,sklearn中的MinMaxScaler。可以使用预处理来轻松地对其进行规范化 但是,当对具有形状(num\u samples,time\u steps,features)的时间序列数据使用相同的方法时,sklearn将给出一个错误 from sklearn.preprocessing import MinMaxScaler import numpy as np #Making artifical time data x1 =
(num_samples,features)
的数据,sklearn中的MinMaxScaler
。可以使用预处理来轻松地对其进行规范化
但是,当对具有形状(num\u samples,time\u steps,features)
的时间序列数据使用相同的方法时,sklearn将给出一个错误
from sklearn.preprocessing import MinMaxScaler
import numpy as np
#Making artifical time data
x1 = np.linspace(0,3,4).reshape(-1,1)
x2 = np.linspace(10,13,4).reshape(-1,1)
X1 = np.concatenate((x1*0.1,x2*0.1),axis=1)
X2 = np.concatenate((x1,x2),axis=1)
X = np.stack((X1,X2))
#Trying to normalize
scaler = MinMaxScaler()
X_norm = scaler.fit_transform(X) <--- error here
然而,它只适用于只有一个特性的数据。由于我的数据具有多个特征,因此此方法不起作用
如何规范化具有多个特征的时间序列数据?要规范化形状的三维张量(n_样本、时间步长、n_特征),请使用以下方法:
(timeseries-timeseries.min(axis=2))/(timeseries.max(axis=2)-timeseries.min(axis=2))
使用参数axis=2将返回沿三维(即特征轴)执行的张量运算的结果。因此,每个特征将被独立地标准化 要规范化形状的三维张量(n_样本、时间步长、n_特征),请使用以下命令:
(timeseries-timeseries.min(axis=2))/(timeseries.max(axis=2)-timeseries.min(axis=2))
使用参数axis=2将返回沿三维(即特征轴)执行的张量运算的结果。因此,每个特征将被独立地标准化