相同用户的kmeans算法
kmeans algorithm for same users
希望你今天过得愉快。我的数据库中有用户,在此数据库中,用户具有与其他用户相似的功能。例如:
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?或者我需要使用其他算法,有什么想法吗?
k-means 可能不是最适合的,但您可以通过将离散变量(特征 on/off)更改为连续变量来尝试。
每个特征都有自己的维度,值可以是 1,0(特征存在)或 0,0(特征缺失)。在您的情况下,您似乎至少有 7 个特征维度 (a-g)。所以你会 运行 k-means 在 7 维 space.
研究更适合您的场景的算法可能是个好主意。例如,层次聚类。在那里你可以应用曼哈顿距离而不是 k-means 使用的欧几里德距离。曼哈顿距离更适合您的 n 维网格特征 space。首先尝试单链接和完全链接。计算层次结构后,您可以简单地在树中提取一个切口,为您提供所需数量的簇。
有关此算法的详细概述,请参阅 https://scikit-learn.org/stable/modules/clustering.html#hierarchical-clustering。易于实施和试用您对 Python.
有点熟悉
希望你今天过得愉快。我的数据库中有用户,在此数据库中,用户具有与其他用户相似的功能。例如:
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?或者我需要使用其他算法,有什么想法吗?
k-means 可能不是最适合的,但您可以通过将离散变量(特征 on/off)更改为连续变量来尝试。
每个特征都有自己的维度,值可以是 1,0(特征存在)或 0,0(特征缺失)。在您的情况下,您似乎至少有 7 个特征维度 (a-g)。所以你会 运行 k-means 在 7 维 space.
研究更适合您的场景的算法可能是个好主意。例如,层次聚类。在那里你可以应用曼哈顿距离而不是 k-means 使用的欧几里德距离。曼哈顿距离更适合您的 n 维网格特征 space。首先尝试单链接和完全链接。计算层次结构后,您可以简单地在树中提取一个切口,为您提供所需数量的簇。
有关此算法的详细概述,请参阅 https://scikit-learn.org/stable/modules/clustering.html#hierarchical-clustering。易于实施和试用您对 Python.
有点熟悉