查找两个直方图之间的相似性
数据挖掘
Python
scikit-学习
相似
距离
绘图
2022-02-24 16:03:45
2个回答
我很好奇其他人会说什么,但一种选择是使用KL-divergence。如果您的两个直方图具有相同的 x 轴,您可以将每列除以总计数以将计数转换为比例。然后您可以将直方图视为概率质量,并使用 KL 散度。KL 散度实际上是两个概率分布之间距离的度量,但直方图是离散分布的近似值。你会选择你的分布之一是 P,一个是 Q,然后计算在哪里是直方图 x 轴上的每个 bin。请注意,此距离度量是有方向的,这意味着如果交换 P 和 Q,您将得到不同的答案。原因是 KL 散度是信息传递的度量(例如,从 Q 移动到P),但我认为这与您的问题无关。
您显示的那些图不是直方图,它们只是条形图。在直方图中,条形的高度是对有多少数据点落在由 X 轴上的该值表示的存储桶中的计数(例如,该特定年龄或年龄组的人数)。
您可以做的是绘制男性年龄的直方图(每个年龄或年龄组有多少男性)并将其与女性年龄的直方图进行比较。目前尚不清楚将男性年龄的直方图与他们财富的直方图进行比较意味着什么。
可以通过调整 Jaccard 相似度来计算同一变量的两个直方图(或分布)之间的相似度(参见本文的示例)。
您可能会发现年龄分布的相似度很高(例如 0.9),但财富的相似度很低。有趣的可能是直方图不同的那些(男性和女性的情况非常不同)。
其它你可能感兴趣的问题

