(python)时间序列归一化相关问题

问题一:
现有31条时间序列,大多数波动范围很大,少数几乎没有波动。

img


(图为31条时间序列的折线图)

在进行层次聚类(hierarchical clustering)前,我需要对数据进行归一化。
我打算利用MinMaxScaler()函数对数据归一化。对于波动剧烈的时间序列,效果不错。但是对于相对平稳的序列而言,归一化之后的效果非常糟糕。

以时间序列[28],[29],[30]为例:

img


(图为[28],[29],[30]号时间序列的折线图)

利用MinMaxScaler()归一化后,在0~1区间内 [28],[29]号时间序列会丢失它们原有的平稳特征。当时[30]号时间序列表现良好。

from sklearn import preprocessing 
min_max_scaler = preprocessing.MinMaxScaler() 
df_Tn = min_max_scaler.fit_transform(df_T)

img


(图为利用MinMaxScaler()归一化后[28],[29],[30]号时间序列的折线图)

请问我应当如何对数据作预处理呢?

问题二:
在进行层次聚类(hierarchical clustering)时,假定利用欧氏距离(metric='euclidean'),时间序列适合哪种测距方式呢?
(method=?)
比如single, complete, average, ward, weighted 中的哪一个,或者其他的测距方式呢?