首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我正在尝试对我的数据集进行层次聚类,在其中我希望将借款人的姓名分为3类

我正在尝试对我的数据集进行层次聚类,在其中我希望将借款人的姓名分为3类
EN

Stack Overflow用户
提问于 2019-06-08 18:58:58
回答 2查看 61关注 0票数 0

我正在尝试根据R中的借款人的过去行为将我的数据分组为3个集群

我正在使用dtwclust包使用DTW距离进行层次聚类。我的数据集有4000行--年份是按列表示的。我想分成3组。这需要永远的时间来运行。有没有更好的方法去做,或者我做错了什么?

代码语言:javascript
复制
install.packages("BBmisc")
install.packages("dtwclust")
cluster_data <- data.frame(name = LETTERS, x2001 = 1:26 , x2002 = 27:52,x2003 = 52:77)
remit.norm <- BBmisc::normalize(cluster_data, method="standardize")
remit.norm <- remit.norm[-1,-1]
cluster_dtw_h <- tsclust(remit.norm, type = "h", k = 3L,  distance = "dtw", control = hierarchical_control(method = "complete"), seed = 390, preproc = NULL)
EN

回答 2

Stack Overflow用户

发布于 2019-06-08 22:11:31

我不明白,因为对我来说,上面的代码几乎是瞬间就能工作的。您也可以尝试使用hclust函数的TSdist包,效果可能会更好。希望能有所帮助

票数 0
EN

Stack Overflow用户

发布于 2019-06-09 00:27:37

有几件事。DTW是昂贵的,如果你有4k系列,层次聚类需要执行800万次DTW计算,这将需要时间。然而,您使用的是dtw::dtw距离,它是而不是针对交叉距离矩阵优化的。尝试使用distance = "dtw_basic",它是包含在dtwclust中的多线程版本,并查看help("dtw_basic") (考虑使用窗口约束)。还要检查timing experiments,以了解预期的运行时间,可能在几分钟到几个小时的顺序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56505710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档