时序数据的聚类方法,该算法按照以下流程执行。
import pandas as pd
# 读取数据帧,将其转化为时间序列数组,并将其存储在一个列表中 tata = [] for i, df in enmee(dfs):
# 检查每个时间序列数据的最大长度。 for ts in tsda:
if len(s) > ln_a:
lenmx = len(ts)
# 给出最后一个数据,以调整时间序列数据的长度 for i, ts in enumerate(tsdata):
dta[i] = ts + [ts[-1]] * n_dd
# 转换为矢量 stack_list = [] for j in range(len(timeseries_dataset)):
stack_list.append(data)
# 转换为一维数组 trasfome_daa = np.stack(ack_ist, axis=0)
return trafoed_data
# 文件列表flnes= soted(go.ob('mpldat/smeda*.csv'))
# 从文件中加载数据帧并将其存储在一个列表中。for ienme in fiemes:
df = pd.read_csv(filnme, indx_cl=one,hadr=0) flt.append(df)
# 为了计算交叉关系,需要对它们进行归一化处理。# TimeSeriesScalerMeanVariance将是对数据进行规范化的类。sac_da = TimeeiesalerMVarne(mu=0.0, std=1.0).fit_trnform(tranfome_data)# KShape类的实例化。ks = KShpe(_clusrs=2, n_nit=10, vrboe=True, rano_stte=sed)
yprd = ks.ft_reitsak_ata)# 聚类和可视化plt.tight_layout()
plt.show()
点击标题查阅往期内容
左右滑动查看更多
01
02
03
04
#计算到1~10个群组 for i in range(1,11):
#进行聚类计算。
ks.fit(sacdta)
#KS.fit给出KS.inrta_ disorons.append(ks.netia_)
plt.plot(range(1,11), disorins, marker='o')
本文选自《Python用KShape对时间序列进行聚类和肘方法确定最优聚类数k可视化》。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。