如何聚类直方图或密度分布?

数据挖掘 r 聚类 k-均值
2022-02-14 14:32:26

我不知道从哪里开始集群分布并找出相似的相似之处。R中有一个包可以完成这项工作吗?

3个回答

有很多方法可以衡量两个分布之间的差异。看看维基百科上的这篇概述文章

在机器和深度学习中经常使用的一种非常常见的方法是Kullback-Leibler (KL) Divergence它最常用于最小化训练数据分布与您正在分析的问题的预期(广义)分布之间的交叉熵。一般来说,接近0的值表示预计两个分布会表现出相似的行为,而较大的值表示分布的行为非常不同 - 因此了解第一个分布并不能帮助您了解第二个分布。

更一般的分布之间差异度量的类别是所谓的f-divergence,“一个平均值,由函数加权f[概率测量] 给出的优势比PQ”。维基百科的文章包含一个正式的定义和一个带有函数的表f这给出了一些流行的差异/距离,包括 KL 散度。

下表列出了概率分布和概率分布之间的许多常见差异f它们对应的功能(参见 Liese & Vajda (2006))

分布距离指标

KL-Divergence 与熵本身相结合,定义了交叉熵在 Information Theory View 下查看这里,了解更多信息。

使用流行的K-means 聚类算法结合Hellinger距离作为距离度量。

海灵格距离量化了两个分布/直方图之间的相似性,因此它可以很容易地与 K-means 合并为您的目的:)

安装broom,并阅读小插图,尤其是“ kmeans with dplyr and broom ”。这个小插曲包含一个冗长、简洁、有效的示例,可能会给您一个良好的开端。

broom 包在整洁的数据框中总结了有关统计对象的关键信息。这使得报告结果、创建绘图和同时处理大量模型变得容易。