前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python用KShape对时间序列进行聚类和肘方法确定最优聚类数k可视化|附代码数据

Python用KShape对时间序列进行聚类和肘方法确定最优聚类数k可视化|附代码数据

原创
作者头像
拓端
发布2023-03-15 23:51:46
5720
发布2023-03-15 23:51:46
举报
文章被收录于专栏:拓端tecdat拓端tecdat

全文链接:http://tecdat.cn/?p=27078

最近我们被客户要求撰写关于KShape对时间序列进行聚类的研究报告,包括一些图形和统计输出。

时序数据的聚类方法,该算法按照以下流程执行。

  1. 使用基于互相关测量的距离标度(基于形状的距离:SBD)
  2. 根据 1 计算时间序列聚类的质心。(一种新的基于质心的聚类算法,可保留时间序列的形状)
  3. 划分成每个簇的方法和一般的kmeans一样,但是在计算距离尺度和重心的时候使用上面的1和2。
代码语言:javascript
复制
import pandas as pd
图片
图片
代码语言:javascript
复制
    # 读取数据帧,将其转化为时间序列数组,并将其存储在一个列表中    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

数据集准备

代码语言:javascript
复制
# 文件列表flnes= soted(go.ob('mpldat/smeda*.csv'))
代码语言:javascript
复制
# 从文件中加载数据帧并将其存储在一个列表中。for ienme in fiemes:

    df = pd.read_csv(filnme, indx_cl=one,hadr=0)    flt.append(df)

聚类结果的可视化

代码语言:javascript
复制
# 为了计算交叉关系,需要对它们进行归一化处理。# 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()
图片
图片

R语言k-Shape时间序列聚类方法对股票价格时间序列聚类

01

图片
图片

02

图片
图片

03

图片
图片

04

图片
图片

用肘法计算簇数

  • 什么是肘法...
  • 计算从每个点到簇中心的距离的平方和,指定为簇内误差平方和 (SSE)。
  • 它是一种更改簇数,绘制每个 SSE 值,并将像“肘”一样弯曲的点设置为最佳簇数的方法。
代码语言:javascript
复制
#计算到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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 全文链接:http://tecdat.cn/?p=27078
    • 数据集准备
      • 聚类结果的可视化
        • 用肘法计算簇数
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档