Python用 tslearn 进行时间序列聚类可视化

全文链接:https://tecdat.cn/?p=33484

我们最近在完成一些时间序列聚类任务,偶然发现了 tslearn 库。我很想看看启动和运行 tslearn 已内置的聚类有多简单,结果发现非常简单直接点击文末“阅读原文”获取完整代码数据)。

相关视频

首先,让我们导入我们需要的库:

import pandas as pd
import numpy as np

from tslearn.preprocessing import TimeSeriesScalerMeanVariance

netdata_pandas 用于提取一些时间序列数据到 pandas 数据框中。

plots为我添加了常用的绘图功能,我发现自己一次又一次地回到了这个库中。

我们定义输入,基本上任何我们可以使用和更改的东西都值得作为输入添加到笔记本的顶部:

n_clusters = 50 # number of clusters to fit

smooth_n = 15 # n observations to smooth over

model = 'kmeans' # one of ['kmeans','kshape','kernelkmeans','dtw']

接下来,我们将获取数据并进行一些标准的预处理:

if n_charts:
    charts = np.random.choice(get_chart_list(host), n_charts).tolist()
    print(charts)
else:
    charts = get_chart_list(host)
# get data
df = get_data(host, charts, after=-n, before=0)

if smooth_n > 0:
    if smooth_func == 'mean':
        df = df.rolling(smooth_n).mean().dropna(how='all')
    elif smooth_func == 'max':
        df = df.rolling(smooth_n).max().dropna(how='all')
    elif smooth_func == 'min':
        df = df.rolling(smooth_n).min().dropna(how='all')
    elif smooth_func == 'sum':
        df = df.rolling(smooth_n).sum().dropna(how='all')
    else:
        df = df.rolling(smooth_n).mean().dropna(how='all')

print(df.shape)
df.head()

然后用 tslearn 建立我们的聚类模型了:

if model == 'kshape':
    model = KShape(n_clusters=n_clusters, max_iter=10, n_init=2).fit(X)
elif model == 'kmeans':
    model = TimeSeriesKMeans(n_clusters=n_clusters,

有了聚类集群后,我们就可以制作一些辅助对象供以后使用:

cluster_metrics_dict = df_cluster.groupby(['cluster'])['metric'].apply(lambda x: [x for x in x]).to_dict()
cluster_len_dict = df_cluster['cluster'].value_counts().to_dict()

clusters_final.sort()

df_cluster.head()

最后,让我们分别绘制每个聚类群组,看看有什么结果:

for cluster_number in clusters_final:
 
    x_corr = df[cluster_metrics_dict[cluster_number]].corr().abs().values
   
    plot_lines(df, cols=cluster_metrics_dict[cluster_number], renderer='colab', theme=None, title=plot_title)

这里有一些很好的例子:

6daf3f9230456141d92165565c86af4b.png


点击标题查阅往期内容

7b08ea4c567c8b7727cb130fd0c8fe57.jpeg

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

outside_default.png

左右滑动查看更多

outside_default.png

01

outside_default.png

02

outside_default.png

03

outside_default.png

04

outside_default.png

outside_default.png

outside_default.png

outside_default.png

聚类的典型特征是你总是会得到一些看起来很糟糕的随机数据,尤其是凭空选取了上面的很多参数,最重要的是 K 聚类的数量,鉴于我们有大量的指标(超过 700 个),我将其设置为 50 个。

总之,我发现 tslearn 库非常有用,因为它节省了我很多时间,让我快速建立并运行了一个工作原型,所以我期待着还能使用它提供的其他一些时间序列相关功能。


outside_default.png

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《Python用 tslearn 进行时间序列聚类可视化》。

outside_default.png

outside_default.png

点击标题查阅往期内容

K-means和层次聚类分析癌细胞系微阵列数据和树状图可视化比较

KMEANS均值聚类和层次聚类:亚洲国家地区生活幸福质量异同可视化分析和选择最佳聚类数

PYTHON实现谱聚类算法和改变聚类簇数结果可视化比较

有限混合模型聚类FMM、广义线性回归模型GLM混合应用分析威士忌市场和研究专利申请数据

R语言多维数据层次聚类散点图矩阵、配对图、平行坐标图、树状图可视化城市宏观经济指标数据

r语言有限正态混合模型EM算法的分层聚类、分类和密度估计及可视化

Python Monte Carlo K-Means聚类实战研究

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

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

R语言谱聚类、K-MEANS聚类分析非线性环状数据比较

R语言实现k-means聚类优化的分层抽样(Stratified Sampling)分析各市镇的人口

R语言聚类有效性:确定最优聚类数分析IRIS鸢尾花数据和可视化

Python、R对小说进行文本挖掘和层次聚类可视化分析案例

R语言k-means聚类、层次聚类、主成分(PCA)降维及可视化分析鸢尾花iris数据集

R语言有限混合模型(FMM,finite mixture model)EM算法聚类分析间歇泉喷发时间

R语言用温度对城市层次聚类、kmean聚类、主成分分析和Voronoi图可视化

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

R语言中的SOM(自组织映射神经网络)对NBA球员聚类分析

R语言复杂网络分析:聚类(社区检测)和可视化

R语言中的划分聚类模型

基于模型的聚类和R语言中的高斯混合模型

r语言聚类分析:k-means和层次聚类

SAS用K-Means 聚类最优k值的选取和分析

用R语言进行网站评论文本挖掘聚类

基于LDA主题模型聚类的商品评论文本挖掘

R语言鸢尾花iris数据集的层次聚类分析

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

R语言聚类算法的应用实例

outside_default.png

outside_default.png

outside_default.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/93723.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

远程办公中安全远程访问解决方案

什么是安全远程访问 安全的远程访问是一个至关重要的过程,可让您使用互联网从远处完全控制某人的设备。为了确保安全,为受保护的远程访问采取了额外的身份验证和加密措施。 为什么安全远程访问解决方案很重要 当 IT 技术人员从远处帮助人们解决计算机…

yolov3加上迁移学习和适度的数据增强形成的网络应用在输电线异物检测

Neural Detection of Foreign Objects for Transmission Lines in Power Systems Abstract. 输电线路为电能从一个地方输送到另一个地方提供了一条路径,确保输电线路的正常运行是向城市和企业供电的先决条件。主要威胁来自外来物,可能导致电力传输中断。…

【微服务】06-安全问题

文章目录 1.反跨站请求伪造1.1 攻击过程1.2 攻击核心1.3 如何防御1.4 使用AntiforgeryToken机制来防御用到的类 2. 防开发重定向共计2.1 攻击过程2.2 攻击核心2.3 防范措施 3.防跨站脚本3.1 攻击过程3.2 防范措施 4.跨域请求4.1 同源与跨域4.2 CORS过程4.2 CORS是什么4.3 CORS请…

10万字智慧政务大数据平台项目建设方案222页[Word]

导读:原文《10万字智慧政务大数据平台项目建设方案222页[Word]》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 1.1 项目建设目标 推进市一级政府搭建数…

Transformer (Attention Is All You Need) 论文精读笔记

Transformer(Attention Is All You Need) Attention Is All You Need 参考:跟李沐学AI-Transformer论文逐段精读【论文精读】 摘要(Abstract) 首先摘要说明:目前,主流的序列转录(序列转录:给…

商城-学习整理-集群-K8S-集群环境部署(二十四)

目录 一、MySQL集群1、mysql集群原理2、Docker安装模拟MySQL主从复制集群1、下载mysql镜像2、创建Master实例并启动3、创建 Slave 实例并启动4、为 master 授权用户来同步数据1、进入 master 容器2、进入 mysql 内部 (mysql –uroot -p)3、查看 master 状…

分发饼干【贪心算法】

分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个…

MySQL 8.1安装

1. 下载地址 https://dev.mysql.com/downloads/mysql/8.0.html 我这里没有采用installer安装,因为installer安装依赖visual studio,所以,我下载的是zip文件。 最终下载的版本如下: 2. 添加环境变量 解压,添加环境…

原生微信小程序使用 wxs;微信小程序使用 vant-weapp组件

1.原生微信小程序使用 wxs 1.内嵌 WXS 脚本 2. 定义外链 wxs 3. 使用外连wxs 在这里插入图片描述 2. 微信小程序使用 vant weapp 1.安装步骤 2. 安装包管理(package.json)文件的方法 操作顺序 :文档地址 如果使用 typescript 需要操作步骤3,否则不…

第59步 深度学习图像识别:误判病例分析(TensorFlow)

基于WIN10的64位系统演示 一、写在前面 本期内容对等于机器学习二分类系列的误判病例分析(传送门)。既然前面的数据可以这么分析,那么图形识别自然也可以。 本期以mobilenet_v2模型为例,因为它建模速度快。 同样,基…

BM20 数组中的逆序对

描述 解题思路:归并排序 分治:分治即“分而治之”,“分”指的是将一个大而复杂的问题划分成多个性质相同但是规模更小的子问题,子问题继续按照这样划分,直到问题可以被轻易解决;“治”指的是将子问题单独进…

RabbitMQ默认监听的ip地址

RabbitMQ 默认监听所有可用 ip 地址,当Rabbitmq 所在的服务端节点上存在多 ip 时,只要客户端能与服务端任一 ip 通信,即可向 RabbitMQ 发送消息

电子词典dictionary

一、项目要求: 1.登录注册功能,不能重复登录,重复注册。用户信息也存储在数据库中。 2.单词查询功能 3.历史记录功能,存储单词,意思,以及查询时间,存储在数据库 4.基于TCP,支持多客户…

【25考研】- 整体规划及高数一起步

【25考研】- 整体规划及高数一起步 一、整体规划二、专业课870计算机应用基础参考网上考研学长学姐: 三、高数一典型题目、易错点及常用结论(一)典型题目(二)易错点(三)常用结论1.令tarctanx, 则…

k8s 安装 kubernetes安装教程 虚拟机安装k8s centos7安装k8s kuberadmin安装k8s k8s工具安装 k8s安装前配置参数

k8s采用master, node1, node2 。三台虚拟机安装的一主两从,机器已提前安装好docker。下面是机器配置,k8s安装过程,以及出现的问题与解决方法 虚拟机全部采用静态ip, master 30机器, node1 31机器, node2 32机器 机器ip 192.168.164.30 # ma…

Javaweb基础学习(4)

Javaweb基础学习(4) 一、JSP学习1.1 JSP的简介概述1.2 JSP快速入门1.3 JSP原理1.4 JSP脚本1.5 JSP缺点1.6 EL表达式1.7 JSL标签1.7.1 JSL快速入门 1.8 MVC 模式和三层架构1.9 三层架构 三、会话跟踪技术3.1 会话跟踪技术介绍3.2 Cookie的基本使用3.3、Co…

List 去重两种方式:stream(需要JDK1.8及以上)、HashSet

1、使用Stream 方法 使用JDK1.8及以上 /*** Java合并两个List并去掉重复项的几种做法* param args*/public static void main(String[] args) {String[] str1 {"1", "2", "3", "4", "5", "6"};List<String&…

【【Verilog典型电路设计之CORDIC算法的Verilog HDL 实现】】

Verilog典型电路设计之CORDIC算法的Verilog HDL 实现 典型电路设计之CORDIC算法的Verilog HDL 实现 坐标旋转数字计算机CORDIC(Coordinate Rotation Digital Computer)算法&#xff0c;通过移位和加减运算&#xff0c;能递归计算常用函数值&#xff0c;如sin&#xff0c;cos,…

用QT实现MVP模式

近些天用qt 作项目,遇到参数界面.偷闲写个mvp模式示例. mvp模式重要的有两点 1 低耦合: 界面与后端数据类,不直接引用,可方便替换. 2 形成界面驱动-界面更新的闭环.:通过函数指针类技术,让数据自动回流. MVP (Model-View-Presenter) 视图&#xff08;View&#xff09;: 接…

uniapp 项目实践总结(一)uniapp 框架知识总结

导语&#xff1a;最近开发了一个基于 uniapp 框架的项目&#xff0c;有一些感触和体会&#xff0c;所以想记录以下一些技术和经验&#xff0c;在这里做一个系列总结&#xff0c;算是对自己做一个交代吧。 目录 简介全局文件全局组件常用 API条件编译插件开发 简介 uniapp 是…