非参数混合模型和集群

机器算法验证 机器学习 聚类 计算统计 混合分布
2022-04-11 15:59:52

我有一个关于我正在考虑用非参数混合方法处理的集群的问题(我认为)。我正在研究人类行为的解释。
我的数据库的每一行都包含:

  1. 某人的身份证
  2. 环境X的一些参数(例如:温度、风等)
  3. 一个二元变量Y,表示人对参数的反应(例如:生病或不会因为天气而生病)。

我的想法(基于直觉而不是数据)是我们可以将人们聚集在有限数量的组中,以便在一个组中,人们对温度有相同的反应(有些人很容易生病,有些人从不生病......) . 在给定的组中,更正式地说,以参数X为条件的Y定律是相同的。

我不知道以X为条件的Y定律。对于参数X,如有必要,我可以做一些假设。

我想创建一些“或多或少”对参数有相同反应的人。此外,我想预测给定人对给定参数值的反应(即使该事件从未在数据库中发生过)。

在我看来,我们可以将问题视为非参数混合模型。由于我对Y的条件定律没有假设,我想我将不得不使用 kernels 方法来创建它。我找到了这篇论文此外,在我看来,在这种情况下,每一行观察(X一世,一世)不是一些随机变量的简单实现,而是X一世是一个随机变量的实现,并且一世是一个随机变量的实现,条件是X一世. 我不知道这是否有区别。

我有大约 100000 行。向量X一世有一些离散的组件,而其他的则是连续的。我想知道:

  • 我的方法正确吗?
  • 你会为这个问题提出另一种观点吗?

我会对有关它的任何参考资料非常感兴趣。
不要犹豫,让我重新制定问题陈述。

1个回答

回答你的观点“你会为这个问题提出另一种观点吗?”,我建议你实际上看看你的数据。这可以帮助您更好地计划接下来要采取的步骤。毕竟,人眼-大脑系统在模式识别方面非常出色,如果您选择无监督聚类,您可能能够更好地决定聚类的数量。

因此,由于您的数据似乎是“高”维的,您可以尝试执行主成分分析 (PCA),因为这是一种非常快速的分析,尤其是对于 100k 点的数据集。但是,PCA 不是唯一的,也不一定是最合适的降维方法,目标是(2D/3D)可视化,因为它是一种参数化的线性方法。不过,您的数据可能表现非线性。我可以推荐来自 Laurens van der Maaten的 Matlab 降维工具箱,其中包括许多不同的技术。但是,其中的一些技术本质上很慢,因此您可能希望在子采样数据上对其进行测试。一个非常新的和强大的非参数和非线性降维技术是BH-SNE这也应该适用于您的数据集大小,尽管根据您可用的硬件可能需要大约 30 分钟到 1 小时。由于您对集群的检测感兴趣,BH-SNE 可能是一个不错的选择,因为它(它的“前身”t-SN​​E)在各种数据集(见手稿)上的这些方面表现出令人印象深刻的性能。

最后,解决您关于连续/离散数据的观点,这是我还没有经验如何影响降维的地方。因此,如果可能,您可能想尝试离散化连续变量或忽略(少数?)离散变量。或者,您可能希望使用二进制变量(人的反应)对低维 (2D/3D) 可视化中的点进行颜色编码。

PS 执行层次聚类(链接分析)并查看生成的树状图是另一种创建数据低维表示的方法,它可以帮助您更好地估计是否有集群以及可能有多少集群。