集群数量未知的集群

时间:2019-07-17 13:48:57

标签: python algorithm machine-learning scikit-learn cluster-analysis

我需要找到属于同一个人的登录名。该任务应在python环境中解决。 我有一个包含用户操作的数据集。通过这些操作,我创建了N个功能:

- login
- timestamp
- feature 1
- feature 2
    ...
- feature N

此外,还有一个包含成对登录的训练数据集,很可能属于同一个人。

- login_A 
- login_B 
- person_id

如何实现一种算法,该算法将破坏我属于同一个人的登录数据集。结果,我需要获取登录列表和一些生成的person_Id。 请帮助找到合适的方法来解决该问题,并链接到Python中的实现示例。

谢谢!

3 个答案:

答案 0 :(得分:0)

我对这种事情不是很精通,但是我想您应该将集群中心指定为每个人两次登录之间的中点,并为每个集群赋予person_id登录名它是从创建的。然后,当您进行分类时,您会找到最近的集群中心,并将该登录名分配为该人员ID。

答案 1 :(得分:0)

我建议您尝试使用sk-learn集群模块sklearn.cluster的某些算法。在市场上最常见的聚类算法中,有很多可用的。它真的很容易使用,您可以使用几行代码来运行非常复杂的聚类算法。

其中一些需要事先提供簇数,但并非所有簇都如此。

例如,层次聚类可用于获取任意数量的聚类(this page上有很好的解释)。
如果拥有不属于任何集群的孤独点不会打扰您,您也可以使用DBSCAN。

编辑:从对问题的描述中,我不确定集群是否是您想要的。对于一个庞大的用户社区,我们将使用集群来构建一些具有共同点并且彼此非常相似的人(集群)社区。

答案 2 :(得分:0)

您有培训数据。

然后,受监督的方法将始终胜过无监督的方法(例如聚类)。这是解决问题的错误工具。

学习对两个动作是否属于同一用户进行分类。