gpt4 book ai didi

machine-learning - 如何根据标签对用户进行聚类

转载 作者:行者123 更新时间:2023-11-30 08:41:36 24 4
gpt4 key购买 nike

我想根据用户观看的节目的类别或标签对用户进行聚类。最简单/最好的算法是什么?

假设我有大约 20,000 个标签和几百万个可以用作信号的监视事件,是否有一种算法可以使用 Pig/hadoop/mortar 或在 Neo4j 上实现?

就数据而言,我有用户、他们观看过的节目以及节目所具有的标签(通常每个节目大约有 10 个标签)。

我希望最终有 k 个集群(也许是十几个?)或广泛的存储桶,我可以使用它们对用户进行分类和分组到存储桶中,并且还可以深入了解如何划分它们 - 使用代表每个集群的标签集。

我看到一些帖子建议采用分层算法,但不确定在这种情况下如何计算“距离”。这是两个用户之间的距离,还是用户和一组标签之间的距离,等等。

最佳答案

您基本上希望根据用户的标签对用户进行聚类

为了简单起见,假设您只有 10 个标签(而不是 20,000 个标签)。假设用户(例如 user_34)具有第二个和第七个标签。对于这个聚类任务,user_34可以表示为10维空间中的一个,他对应的坐标为:[0,1,0,0,0, 0,1,0,0,0]。

在您自己的情况下,每个用户都可以类似地表示为 20,000 维空间中的一个点。您可以使用Apache Mahout其中包含许多有效的聚类算法,例如K-means。

由于一切都在数学坐标系中明确定义,因此计算任意两个用户之间的距离很容易!它可以使用任何距离函数来计算,但欧几里得距离是事实上的标准。

注意: Mahout 和许多其他数据挖掘程序支持许多适合稀疏特征的格式,即您不需要插入 ...,0,0,0,0, ... 在文件中,但只需要指定选择哪些标签。 (参见RandomAccessSparseVector in Mahout.)

注意:我假设您只想对用户进行聚类。从集群中提取代表性信息有些棘手。例如,对于每个集群,您可以选择该集群的用户之间更常见的标签。或者,您可以使用信息论中的概念,例如信息增益来找出哪些标签包含有关集群的更多信息。

关于machine-learning - 如何根据标签对用户进行聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23943391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com