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

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

原文出处:拓端数据部落公众号

 【视频】KMEANS均值聚类和层次聚类:R语言分析生活幸福质量系数可视化实例

KMEANS均值聚类和层次聚类:R语言分析生活幸福质量系数可视化实例

,时长06:05

时序数据的聚类方法

该算法按照以下流程执行。

  1. 使用基于互相关测量的距离标度(基于形状的距离:SBD)
  2. 根据 1 计算时间序列聚类的质心。(一种新的基于质心的聚类算法,可保留时间序列的形状)
  3. 划分成每个簇的方法和一般的kmeans一样,但是在计算距离尺度和重心的时候使用上面的1和2。
import pandas as pd

  1.  
    # 读取数据帧,将其转化为时间序列数组,并将其存储在一个列表中
  2.  
    tata = []
  3.  
    for i, df in enmee(dfs):
  4.  
     
  5.  
    # 检查每个时间序列数据的最大长度。
  6.  
    for ts in tsda:
  7.  
    if len(s) > ln_a:
  8.  
    lenmx = len(ts)
  9.  
     
  10.  
    # 给出最后一个数据,以调整时间序列数据的长度
  11.  
    for i, ts in enumerate(tsdata):
  12.  
    dta[i] = ts + [ts[-1]] * n_dd
  13.  
     
  14.  
     
  15.  
     
  16.  
    # 转换为矢量
  17.  
    stack_list = []
  18.  
    for j in range(len(timeseries_dataset)):
  19.  
     
  20.  
    stack_list.append(data)
  21.  
     
  22.  
    # 转换为一维数组
  23.  
    trasfome_daa = np.stack(ack_ist, axis=0)
  24.  
    return trafoed_data

数据集准备

  1.  
    # 文件列表
  2.  
    flnes= soted(go.ob('mpldat/smeda*.csv'))
  1.  
    # 从文件中加载数据帧并将其存储在一个列表中。
  2.  
    for ienme in fiemes:
  3.  
    df = pd.read_csv(filnme, indx_cl=one,hadr=0)
  4.  
    flt.append(df)

聚类结果的可视化

  1.  
    # 为了计算交叉关系,需要对它们进行归一化处理。
  2.  
    # TimeSeriesScalerMeanVariance将是对数据进行规范化的类。
  3.  
    sac_da = TimeeiesalerMVarne(mu=0.0, std=1.0).fit_trnform(tranfome_data)
  4.  
     
  5.  
    # KShape类的实例化。
  6.  
    ks = KShpe(_clusrs=2, n_nit=10, vrboe=True, rano_stte=sed)
  7.  
    yprd = ks.ft_reitsak_ata)
  8.  
    # 聚类和可视化
  9.  
     
  10.  
    plt.tight_layout()
  11.  
    plt.show()

用肘法计算簇数

  • 什么是肘法...

    • 计算从每个点到簇中心的距离的平方和,指定为簇内误差平方和 (SSE)。
    • 它是一种更改簇数,绘制每个 SSE 值,并将像“肘”一样弯曲的点设置为最佳簇数的方法。
  1.  
     
  2.  
    #计算到1~10个群组
  3.  
    for i in range(1,11):
  4.  
    #进行聚类计算。
  5.  
    ks.fit(sacdta)
  6.  
    #KS.fit给出KS.inrta_
  7.  
    disorons.append(ks.netia_)
  8.  
     
  9.  
    plt.plot(range(1,11), disorins, marker='o')


最受欢迎的见解

1.R语言k-Shape算法股票价格时间序列聚类

2.R语言中不同类型的聚类方法比较

3.R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归

4.r语言鸢尾花iris数据集的层次聚类

5.Python Monte Carlo K-Means聚类实战

6.用R进行网站评论文本挖掘聚类

7.用于NLP的Python:使用Keras的多标签文本LSTM神经网络

8.R语言对MNIST数据集分析 探索手写数字分类数据

9.R语言基于Keras的小数据集深度学习图像分类

posted @ 2022-07-03 10:32  拓端tecdat  阅读(881)  评论(0)    收藏  举报