聚类概率分布 - 方法和指标?

机器算法验证 分布 聚类 特征选择 kolmogorov-smirnov 测试 k-均值
2022-03-18 09:08:50

我有一些数据点,每个数据点包含 5 个聚集离散结果的向量,每个向量的结果由不同的分布生成,(我不确定的具体类型,我最好的猜测是 Weibull,形状参数在指数幂附近变化规律(大致为 1 到 0)。)

我希望使用像 K-Means 这样的聚类算法,根据其 5 个分量分布的属性将每个数据点分组。我想知道是否有任何既定的距离指标可以用于这些目的。到目前为止,我已经有了三个想法,但我不是一个经验丰富的统计学家(更像是一个刚开始数据挖掘的计算机科学家),所以我不知道我离正轨有多远。

  1. 因为我不确切知道我正在处理什么样的分布,所以我解决这个问题的蛮力方法是将每个分布(我每点有 5 个)切分到其各自的离散数据值中(我填充每个对应的长度相同,最后为零)并将这些值中的每一个用作数据点本身的单独属性。对于 PDF 和 CDF,我尝试使用曼哈顿距离和欧几里得距离作为基于这些属性的度量。

  2. 同样,由于我不知道我有什么样的分布,我想如果我要测量整体分布之间的距离,我可以在分布之间成对使用某种非参数检验,例如 KS 检验,找出给定分布由不同 PDF 生成的可能性。我认为我使用曼哈顿距离的第一个选项(上图)将是我使用这种方法可能得到的一种上限(因为 KS 统计量是 CDF 差异的最大绝对值,其中曼哈顿距离是PDF中差异的绝对值之和)。然后我考虑在每个数据点内组合不同的 KS-Statistics 或 P 值,可能使用欧几里得距离,但可能只取所有这些值的最大值。

  3. 最后,为了使用我能解释的关于分布形状的一点点信息,我想我可以尝试估计分布的参数以适应 Weibull 曲线。然后,我可以根据 Weibull 分布的两个参数 lambda 和 k(比例和形状)的差异对分布进行聚类,可能根据这些参数的方差或类似参数进行归一化。这是我认为我可能对如何规范化参数有所了解的唯一情况。

所以我的问题是,你会推荐什么度量/方法来聚类分布?我什至在这些方面都走在正确的轨道上吗?K-Means 甚至是一个很好的算法吗?

编辑:澄清数据。

每个数据点(Obj我想要聚类的每个对象)实际上都包含5 vectors数据。我知道这些对象恰好可以处于 5 个阶段。我们会说(为了简化起见)每个向量都是length N.

这些向量中的每一个(称为vector i)都是一个从 1 到 N 的整数概率分布x-values,其中每个对应的 y 值表示测量对象value x的概率N 是我希望在对象的任何阶段测量的最大 x 值(这实际上不是我分析中的固定数字)。phase iObj

我通过以下方式确定这些概率:

  1. 我拿了一个单Obj,把它放进去phase ik trials在每次试验中测量一次。每个测量值都是一个整数。我为单个对象的 5 个阶段中的每一个执行此操作,然后依次为每个对象执行此操作。我对单个对象的原始测量数据可能如下所示:

    向量 1. [90, 42, 30, 9, 3, 4, 0, 1, 0, 0, 1]

    向量 2. [150, 16, 5, 0, 1, 0, 0, 0, 0, 0, 0]

    ...

    向量 5. [16, ... ..., 0]

  2. 然后,我根据给定向量中的测量总数对每个向量进行归一化。这给了我该向量中的概率分布,其中每个对应的 y 值表示在 中测量的value x概率phase i

3个回答

(计算)信息几何是一个专门处理这类问题的领域。K-means 有一个称为Bregman k-means的扩展,它使用散度(标准 K-means 的平方欧几里得是一个特例,但也是 Kullback-Leibler)。给定的散度与分布相关联,例如平方欧几里得到高斯。

你也可以看看Frank Nielsen的作品,例如

您还可以查看Wasserstein 距离(最佳运输),在上一篇文章中称为“地球移动距离”。

在他们关于EP-Means 算法的论文中,Henderson 等人回顾了解决这个问题的方法并给出了他们自己的方法。他们认为:

  1. 参数聚类 - 根据分布的先验知识确定分布的参数,并根据这些参数进行聚类
    • 请注意,在这里,您实际上可以对数据使用任何功能,而不仅仅是参数估计,如果您知道您的数据来自不同的分布,这很有用
  2. 直方图分箱 - 将数据分成箱,并将每个箱视为要用于空间聚类的维度
  3. EP-Means(他们的方法) - 定义分布质心(分配给集群的所有分布的混合)并最小化 Earth Mover 距离的平方和(类似于CDF 之间距离的预期值)分布质心和分配给该集群的分布。L1

我成功使用的另一种技术是将所有分布中的所有观察点单独聚类,然后分配给分布 i 与最终在每个聚类中的点的比例相对应的软概率。不利的一面是,以这种方式分离分布要困难得多。从好的方面来说,它会自动规范化并假设所有分布都是相同的。不过,我只会在需要该正则化属性时使用它。

您应该分两步进行。(1) 数据缩减和 (2) 聚类。

对于步骤 (1),您应该仔细检查数据并确定数据的合理概率分布。您似乎已经考虑过这一步。下一步是估计这些分布的参数。您可以为要聚类的每个单元单独拟合一个模型,或者使用更复杂的模型(例如广义线性混合模型)可能是合适的。

对于步骤 (2),您可以根据这些参数估计进行聚类。在这个阶段,您应该对每个单位进行少量参数估计。如本文的答案所述,然后您可以对这些参数估计进行聚类。

这个答案必然有些模糊——这里没有“固定”的解决方案,每个步骤都需要大量的统计洞察力来从几乎无限数量的可能相关的方法中进行选择,具体取决于您的独特问题。您的问题陈述表明您自学了很多统计知识,这是值得称赞的,但是您仍然对核心统计概念存在一些基本误解,例如概率分布与概率分布观察值之间的区别. 考虑参加/审核一两门数理统计课程。