如何创建交易数据的Jaccard距离矩阵?

时间:2019-02-03 20:54:55

标签: python scipy transactions distance distance-matrix

我是编程新手,这是我发布的第一个问题,因此请耐心等待:)我正在尝试根据交易数据创建距离矩阵,以便进行聚类分析并分析一起购买的产品。我使用pandas.get_dummies将事务表示为行,将产品表示为列。原始数据集非常大,有200列和超过300.000行。为了首先理解该概念,我正在使用此测试数据。

data = [[0,1,1,0],[1,1,1,0], [0,0,0,0],[1,0,1,1],[1,0,0,1]]

prods = ['Apple', 'Milk', 'Bread', 'Soap']

ids = [345,123,869,567,376]

df = pd.DataFrame(data, columns = prods ,index = ids)

我希望矩阵看起来像这样(请忽略这些值)。 https://imgur.com/a/uFvM9nv

我尝试了scipy pdist函数(请参见下面的代码),但它是在计算交易距离,而不是我想要的单个产品。

res = 1 - pdist(df, 'jaccard')

squareform(res)

distance = pd.DataFrame(squareform(res), index= df.columns, columns=df.columns)

能否请您告诉我如何为产品创建此距离矩阵?非常感谢你!

0 个答案:

没有答案