如何定量判断一维数据是围绕 1 个值还是 3 个值聚集?

机器算法验证 聚类
2022-03-02 06:23:15

我有一些关于人类心跳之间时间的数据。异位(额外)心跳的一个迹象是这些间隔聚集在三个值而不是一个值周围。我怎样才能获得对此的定量测量?

我正在寻找比较多个数据集,这两个 100-bin 直方图代表了所有数据集。

在此处输入图像描述

我可以比较方差,但我希望我的算法能够检测每种情况下是否存在一个或三个集群,而无需与其他情况进行比较。

这是用于离线处理的,因此如果需要,可以使用大量计算能力。

4个回答

将混合分布拟合到数据中,类似于 3 个正态分布的混合,然后将该拟合的似然性与单个正态分布的拟合进行比较(使用似然比检验或 AIC/BIC)。flexmix软件包R可能会有所帮助。

如果要使用 K-means 聚类,则需要一种方法来比较的情况。一种方法是使用Tibshirani 等人的差距统计数据。并选择提供更好值SLmisc中有一个可用的 R 实现,尽管该特定函数将尝试,因此您需要注意确保只有可以作为最佳值返回。K=1K=3KK=1,2,3K=1K=3

我强烈建议不要在这里使用 k-means。不同 k 值的结果没有很好的可比性。该方法只是一种粗略的启发式方法。如果您真的想使用聚类,请使用 EM 聚类,因为您的数据似乎包含正态分布。并验证您的结果!

相反,显而易见的方法是尝试拟合单个高斯函数并(例如使用 Levenberg-Marquard 方法)拟合三个高斯函数,可能会限制到相同的高度(以避免退化)。

然后测试,这两个分布中哪个更适合。

使用 K-means 聚类算法来识别各种均值

在 R-seek 中寻找函数 KNN 以找到合适的函数