我最近进入了机器学习领域,我正在做的一个项目要求我根据用户访问网站上的网页的顺序对用户进行聚类。我有以下形式的数据:
['user_id', 1, 2, 4, 6, 3, 7, 3, 2, 4...]
其中每个数字是用户访问的类别/页面。此外,每个用户的数据长度也不相同,即一些用户访问的页面比其他用户多。
我意识到这真的很模糊,很难定义相似性。我尝试按照这篇研究论文中的示例进行操作,老实说,其中很多内容都超出了我的想象。
我需要帮助来解决这个问题,并且愿意接受新的想法和建议。
我最近进入了机器学习领域,我正在做的一个项目要求我根据用户访问网站上的网页的顺序对用户进行聚类。我有以下形式的数据:
['user_id', 1, 2, 4, 6, 3, 7, 3, 2, 4...]
其中每个数字是用户访问的类别/页面。此外,每个用户的数据长度也不相同,即一些用户访问的页面比其他用户多。
我意识到这真的很模糊,很难定义相似性。我尝试按照这篇研究论文中的示例进行操作,老实说,其中很多内容都超出了我的想象。
我需要帮助来解决这个问题,并且愿意接受新的想法和建议。
这是一个很好的问题,有许多实际应用。
您的数据是连续的,因此我们需要任何一对序列之间的相似性度量。我推荐Levensthein距离,因为它非常直观且定义非常好。另请参阅这篇不错的学士论文,其中概述了序列数据的更多度量。
最后,如果有所有序列对之间的距离,我们可以使用任何将距离矩阵作为输入的聚类算法(例如任何分层算法)。
您可以在 R 语言中使用包 clickstream 或 clickclust。它完全符合您的要求。