1

我是编程新手,这是我发布的第一个问题,所以请耐心等待 :) 我正在尝试从交易数据创建一个距离矩阵,以便我可以进行聚类并分析一起购买的产品。我使用 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)

你能告诉我如何为产品创建这个距离矩阵吗?非常感谢!

4

0 回答 0