【问题标题】:kmeans algorithm for same users相同用户的kmeans算法
【发布时间】:2021-05-04 18:36:41
【问题描述】:

我希望你有一个愉快的一天。我的数据库中有用户,在这个数据库中,用户具有可能与其他用户相似的功能。例如:

user1 has a,b,c,d,g feature
user2 has a,b,c,e feature
user3 has b,c,f feature
user4 has c feature
...

我想编写一个算法,将用户分成 4 个组,组内的那些应该是具有相似功能的最优化的,如何使用 kmeans 呢?还是我需要使用其他算法,有什么想法吗?

【问题讨论】:

  • 究竟什么是“功能”? - 注意缩放,比如如果 a,b,c...f 是 1,0,并且特征是 CM 中的长度,它几乎会忽略特征。
  • 功能是用户阅读的书籍@user3184950

标签: algorithm match k-means


【解决方案1】:

k-means 可能不是最适合这种情况,但您可以通过将离散变量(功能开/关)更改为连续变量来尝试。

然后,每个特征都有自己的维度,值可以是 1,0(特征存在)或 0,0(特征缺失)。在您的情况下,您似乎至少有 7 个特征维度 (a-g)。所以你会在 7 维空间中运行 k-means。

研究可能更适合您的场景的算法可能是一个好主意。例如,层次聚类。在那里,您可以应用曼哈顿距离而不是 k-means 使用的欧几里得距离。曼哈顿距离更适合您的 n 维网格特征空间。先试试单联动和全联动。计算出层次结构后,您可以简单地在树中提取一个切口,从而为您提供所需的集群数量。

请参阅https://scikit-learn.org/stable/modules/clustering.html#hierarchical-clustering 以获得对该算法的全面了解。易于实现和试用你对Python有点熟悉。

【讨论】:

    猜你喜欢
    • 2012-07-30
    • 2019-12-21
    • 2017-01-07
    • 2019-12-22
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 2018-08-14
    相关资源
    最近更新 更多