【问题标题】:Clustering approaches/algorithms for datetime data with categorical dtypes具有分类数据类型的日期时间数据的聚类方法/算法
【发布时间】:2021-12-17 23:19:44
【问题描述】:

我有一个包含大约 200 个特征的大型数据集,主要由日期和分类数据组成,还有一些连续特征。数据集是从邮政服务中提取的。小例子:

我试图使示例尽可能通用,以供将来参考。这些是上下文的选定(加扰)条目:

  shipment        delivery          cost        time        location                weight_kg

 2020-04-22      2020-04-27         77.31     19:42:00     UK:66c54f531....           0.5
 2020-04-22      2020-04-25         44.14     19:42:00     DK:22c54f531....           2.23
 2020-04-24      2020-04-24         53.84     09:55:00     UK:66c54f531....           1.57 
 2020-04-24      2020-04-26         22.09     14:27:00     UK:66c54f531....           1.2

我的第一个想法是在 shipping/count_monthly(shipment) 上创建一个需求预测模型,但考虑到功能的数量,多变量案例似乎更相关。我只是不确定要添加哪些附加功能 - 更重要的是 - 这样该项目确实变得通用(线性回归)。我的初始 EDA 描述的变量相关性较低,否则会被删除以避免多重共线性。

  • 然后,我考虑了一种聚类方法,以更详细地收集特征之间的关系。只是不知道如何处理如此大的数据量以及看起来像时间序列的数据,以前从未真正使用过该 dtype。

我说的表面上是,据我了解,时间序列数据必须按时间顺序排列且不能重复,上述日期列(装运/交付)都有。

  • 那么,我是否应该将日期列视为类别?即使某些特征是时间序列(时间列)。

【问题讨论】:

    标签: python time-series cluster-analysis categorical-data


    【解决方案1】:

    很抱歉,关于您是否应该将日期列转换为类别的问题,我不能说太多,因为我以前从未尝试过。但是,我不会将日期分类(例如编码)为分类特征,因为这意味着每个日期都将是一个单独的类别。最好将日期子集化为月份并将月份编码为 12 个类别(但要注意高基数)或季节(冬季、春季、夏季、秋季)。

    尽管如此,我在下面回答的目的是让您在开始考虑所需的数据转换之前,先考虑是否真的需要执行集群来解决您的项目问题。我希望您和阅读本文的其他所有人都对这次尝试表示赞赏:

    您应该问自己的主要问题是:

    1. 您希望从聚类分析中得到什么?
    2. 聚类分析能否帮助您实现这一目标?

    我无法为您回答这些问题,因为我对您的项目了解得不够多。但是,对于围绕集群的一些挑战,这是我的两分钱。

    聚类分析的主要挑战之一是您在数据集中定义相似性的方式。如果您有混合数据类型数据集,这在您的情况下是正确的(分类和连续特征),这将变得越来越具有挑战性。我知道已经提出了几种距离或相似度矩阵来组合连续和分类特征(例如 Gower 距离矩阵和无监督随机森林)。

    假设您成功创建了一个混合数据类型的距离矩阵。那么下一个问题就变成了你会使用哪种聚类算法?由于其计算效率和相对直观的机制,通常会列出更传统的(硬)聚类算法(K-means、层次聚类等)。然而,这些方法在本质上也是启发式的。例如,当在层次聚类中存在两个或多个具有相似树状图切割阈值的分区或 K 方法中的轮廓分数时,很难选择正确的截止值。我也不知道这些聚类方法的替代(例如统计上合理的)拟合优度度量。此外,这些传统的聚类方法将始终识别聚类,即使实际上没有聚类。

    聚类分析的目的通常是找出定义聚类成员的“共同点”。同样,您将如何评估分区的正确性及其各自的特征,因为正确的分区是未知的(否则您将不会首先执行聚类)?当您拥有无法很好分离的异构数据时,这会更加麻烦,因为不同的算法很有可能会识别同一数据集中的不同集群。然后哪个算法识别出正确的集群?

    (部分)克服这些挑战的一种方法是(混合)基于模型的聚类,但这可能在计算上很昂贵,并且在 Python 中实现是一个挑战。我认为 R 中有一些基于模型的聚类包允许使用混合数据类型的数据集(例如 mclust),但我没有广泛使用这些,也没有研究过他们的论文。

    附:我确实认为这个问题(或我的答案)可能更适合交叉验证,因为该平台更关注数据驱动方法的理论原则。

    *我发现一些关于集群挑战的有趣文献:

    Luxburg Uv、Williamson RC、Guyon I. 聚类:科学还是艺术?在:Isabelle G、Gideon D、Vincent L、Graham T、Daniel S,编辑。 ICML无监督和迁移学习研讨会论文集;机器学习研究论文集:PMLR; 2012 年。 65--79。

    Peel L,Larremore DB,Clauset A。关于网络中元数据和社区检测的基本事实。科学进步。 2017;3(5):e1602548.

    【讨论】:

      猜你喜欢
      • 2011-05-18
      • 2012-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-07
      • 1970-01-01
      • 1970-01-01
      • 2011-09-24
      相关资源
      最近更新 更多