Project Icon

dtwclust

R语言时间序列聚类工具包 支持多种算法和距离度量

dtwclust是一个用于时间序列聚类的R语言包,实现了多种聚类算法,包括传统方法和新型的k-Shape、TADPole等。该包支持分区、层次和模糊聚类,提供DTW、GAK、软DTW等距离度量,并针对DTW进行了优化。它还包含聚类有效性指数、多变量支持和并行计算功能。dtwclust设计灵活,允许用户自定义距离度量和质心计算方法,适用于各类时间序列聚类任务。

CRAN状态徽章 R-CMD-检查 代码覆盖率 下载量

时间序列聚类及动态时间规整(DTW)距离优化

时间序列聚类采用多种策略,并针对动态时间规整(DTW)距离及其相应的下界(LBs)进行了一系列优化。包含传统聚类算法的实现,以及更新的程序如k-Shape和TADPole聚类。功能可以通过自定义距离度量和质心定义轻松扩展。

本包实现的许多算法都是专门为DTW设计的,因此得名。然而,主要的聚类函数非常灵活,可以测试多种不同的聚类方法,直接使用时间序列,或通过应用适当的转换然后在结果空间中进行聚类。包中包含的其他实现提供了一些DTW的替代方案。

更多信息:

实现

  • 划分、层次和模糊聚类
    • k-Shape聚类
      • 基于形状的距离
      • 时间序列的形状提取
    • TADPole聚类
  • DTW的优化版本
  • Keogh和Lemire的DTW下界
  • 全局对齐核(GAK)距离
  • DTW重心平均
  • 软-DTW(距离和质心)
  • 部分多变量支持(GAK、DTW和软-DTW)
  • 聚类有效性指标(硬性和模糊、内部和外部)
  • 大多数函数的并行化

安装

可以通过install.packages("dtwclust")安装CRAN上的最新版本。

如果想测试github上的最新版本,首先安装R包开发的先决条件(只有在需要构建vignette时才需要LaTeX)以及remotes包,然后输入remotes::install_github("asardaes/dtwclust")

如果你不确定安装哪个版本,可以查看CHANGELOG文件,我会尽量保持更新。检查持续集成构建以确保一切正常。

许可证

GNU通用公共许可证v3.0。参见许可证版权

本软件包独立于任何与作者有关或曾经有关的组织或机构开发。

示例

# 加载数据
data("uciCT")

划分聚类

pc <- tsclust(CharTraj, type = "partitional", k = 20L, 
              distance = "dtw_basic", centroid = "pam", 
              seed = 3247L, trace = TRUE,
              args = tsclust_args(dist = list(window.size = 20L)))
#> 
#>  预计算距离矩阵...
#> 
#> 迭代1:变化 / 距离和 = 100 / 1361.256
#> 迭代2:变化 / 距离和 = 8 / 1101.633
#> 迭代3:变化 / 距离和 = 2 / 1036.096
#> 迭代4:变化 / 距离和 = 0 / 1031.353
#> 
#>  耗时0.412秒。
plot(pc)

层次聚类

hc <- tsclust(CharTraj, type = "hierarchical", k = 20L, 
              distance = "sbd", trace = TRUE,
              control = hierarchical_control(method = "average"))
#> 
#> 计算距离矩阵...
#> 执行层次聚类...
#> 提取中心点...
#> 
#>  耗时0.147秒。
plot(hc)

模糊聚类

# 计算最多50阶的自相关,将时间序列列表作为输入
acf_fun <- function(series, ...) {
    lapply(series, function(x) { as.numeric(acf(x, lag.max = 50L, plot = FALSE)$acf) })
}
# 基于自相关的模糊c均值聚类
fc <- tsclust(CharTraj[1L:25L], type = "fuzzy", k = 5L,
              preproc = acf_fun, distance = "L2",
              seed = 123L)
fc
#> 具有5个簇的模糊聚类
#> 使用L2距离
#> 使用fcm中心点
#> 使用acf_fun预处理
#> 
#> 分析所需时间:
#>    用户  系统 经过时间 
#>    0.03    0.00    0.03 
#> 
#> 模糊隶属度的前几行:
#> 
#>       簇_1   簇_2  簇_3  簇_4 簇_5
#> A.V1 0.04550608 0.015278671 0.06017278 0.02854909 0.8504934
#> A.V2 0.02649930 0.007304681 0.03576385 0.01482575 0.9156064
#> A.V3 0.03891669 0.007107856 0.03584082 0.01348798 0.9046467
#> A.V4 0.09316283 0.194096301 0.10463724 0.20029868 0.4078050
#> A.V5 0.09423895 0.163296699 0.11727901 0.17605511 0.4491302
#> B.V1 0.39131228 0.034768969 0.35717141 0.07915848 0.1375889

一些多变量支持

# 多变量序列以矩阵列表的形式提供,使用GAK距离
mvc <- tsclust(CharTrajMV[1L:20L], k = 4L, distance = "gak", seed = 390L)
# 注意每个序列的变量是如何在图中依次附加的
plot(mvc, labels = list(nudge_x = -10, nudge_y = 1))

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号