基于 Python 中的 String/Integer 序列的聚类和 Distance/Dissimilarity 矩阵

Clustering and Distance/Dissimilarity Matrrix based on String/Integer sequences in Python

我有顾客在店里逗留的数据。商店有 4 个区域;区域 1、2、3 和 4。现在每 2 分钟,我根据他所在的区域读取他的 10 个数字。例如:

1-1-1-1-1-1-1-1-3-3-2
4-4-3-3-3-3-3-2-1-3-3
3-4-1-2-2-3-1-4-2-1-4

基本上,我希望有些客户大多位于特定区域,并且他们会相应地聚集在一起。所以,在第一个序列中,客户似乎更喜欢区域 1,接下来是区域 3,最后一个就像噪音。

我提供给程序的只是一堆序列(未标记)。如何生成一个 distance/dissimilarity 矩阵来计算 Python 中每个序列之间的距离?

经过一些挖掘,我在 python 中发现了 textdistance 库。

https://pypi.org/project/textdistance/

虽然我的输入是一个整数序列,但它似乎很适合这个问题。

您可以使用余弦或欧氏距离来计算距离。

https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.spatial.distance.cosine.html

https://scikit-learn.org/stable/modules/generated/sklearn.metrics.pairwise.euclidean_distances.html