从频繁项集中聚类相似用户行为的方法

Way to cluster Similar user behavior from frequent item set

我想在交易数据集上对相似用户的行为进行聚类。执行此操作的 easiest/best 算法是什么?

假设我有 1000 笔用户购买交易。我需要根据购买的商品对相似用户进行聚类。

这是我的数据集的一部分

    T1  U1  T1,T2,T3,T4
    T2  U2  T7,T5,T1
    T3  U3  T1,T3,T2,T9
    T4  U4  T9,T2,T5
    T5  U5  T2,T5
    T6  U6  T7,T8
    T7  U7  T1,T5,T4
    T8  U8  T5,T3,T1,T9
    T9  U9  T9,T2
    T10 U10 T1,T7,T6,T5

T = 1..n for transactions 
U = 1..m for users 
T = 1..l for items 

这取决于您对"similar"的定义。根据您的描述,我认为您想构建一个每个用户一行的数据框;每个项目都是该框架中的一列。数据值表示该用户是否购买了该商品(True / False 或 1 / 0)。

现在您需要决定 "similar" 是什么意思。您可以通过 运行 一些 k-means 测试来了解什么看起来合理,或者随机森林或朴素贝叶斯来帮助您做出相似性决定。

完成该研究后,编写适合您 "similar" 感觉的亲和函数。构建一个连接用户的图,边权重是这两个用户之间的亲和力。现在您几乎可以使用任何 non-spectral 聚类方法来获得您想要的;体面的层次聚类可能会为您提供大量可供选择的聚类。