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

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

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


时序数据的聚类方法

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

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


点击标题查阅往期内容


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


01

02

03

04


用肘法计算簇数


什么是肘法...

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

相关文章
|
13天前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
114 1
|
2月前
|
机器学习/深度学习 数据采集 数据挖掘
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
|
2月前
|
调度 Python
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
|
2月前
|
传感器 大数据 API
Python数字限制在指定范围内:方法与实践
在Python编程中,限制数字范围是常见需求,如游戏属性控制、金融计算和数据过滤等场景。本文介绍了五种主流方法:基础条件判断、数学运算、装饰器模式、类封装及NumPy数组处理,分别适用于不同复杂度和性能要求的场景。每种方法均有示例代码和适用情况说明,帮助开发者根据实际需求选择最优方案。
82 0
|
6天前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
67 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
7天前
|
缓存 供应链 芯片
电子元件类商品 item_get - 商品详情接口深度分析及 Python 实现
电子元件商品接口需精准返回型号参数、规格属性、认证及库存等专业数据,支持供应链管理与采购决策。本文详解其接口特性、数据结构与Python实现方案。
|
18天前
|
算法 调度 决策智能
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
|
2月前
|
机器学习/深度学习 数据采集 算法
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
132 4
|
2月前
|
机器学习/深度学习 数据采集 TensorFlow
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
|
2月前
|
数据采集 数据可视化 API
驱动业务决策:基于Python的App用户行为分析与可视化方案
驱动业务决策:基于Python的App用户行为分析与可视化方案

热门文章

最新文章

推荐镜像

更多