R 如何表示k均值聚类的数据

R 如何表示k均值聚类的数据,r,k-means,R,K Means,我有一组用户和他们的关联词。以下是我对它们进行分组的方式: 我已将每个单词与一个数字关联,如果用户没有关联这些单词,我将给出一个值0: 谷歌:1 堆栈溢出:2 数学:3 编程:4 诺沃德:0 要运行k-means算法,我将以下词语关联起来: username google stackoverflow math programming user1 1 0 3 0 user2 1 2 0

我有一组用户和他们的关联词。以下是我对它们进行分组的方式:

我已将每个单词与一个数字关联,如果用户没有关联这些单词,我将给出一个值0:

谷歌:1 堆栈溢出:2 数学:3 编程:4 诺沃德:0

要运行k-means算法,我将以下词语关联起来:

username  google stackoverflow math programming
user1        1        0          3      0
user2        1        2          0      4
user3        0        2          3      0
user4        1        1          0      4
这是否正确地实现了对每个用户进行集群,并根据用户配置的单词检查他们之间的距离

我的实施基于:

特别是本节:
请注意,您的数据可以构造为二进制。例如,用户1要么与stackoverflow关联,要么不关联,即二进制值。因此,您应该将数据转换为以下格式:

username  google stackoverflow math programming
user1        1        0          1      0
user2        1        1          0      1
user3        0        1          1      0
user4        1        1          0      1
我建议不要对数据使用K-means,因为对于二进制数据来说,簇质心的概念是有问题的。有关更多详细信息,请参阅的前几段

但是,您仍然可以使用适当的方法(例如)计算任意两个用户之间的相似性,因为每个用户的单词关联可以写成二进制字符串,例如user1有1010。然后,您可以在所有用户对之间构建一个集群,并使用如下方法对它们进行集群


或者,您也可以使用类似的方法。

请注意,您的数据可以构造为二进制。例如,用户1要么与stackoverflow关联,要么不关联,即二进制值。因此,您应该将数据转换为以下格式:

username  google stackoverflow math programming
user1        1        0          1      0
user2        1        1          0      1
user3        0        1          1      0
user4        1        1          0      1
我建议不要对数据使用K-means,因为对于二进制数据来说,簇质心的概念是有问题的。有关更多详细信息,请参阅的前几段

但是,您仍然可以使用适当的方法(例如)计算任意两个用户之间的相似性,因为每个用户的单词关联可以写成二进制字符串,例如user1有1010。然后,您可以在所有用户对之间构建一个集群,并使用如下方法对它们进行集群


或者,您也可以使用类似的方法。

再看看您的答案,为什么像我所讨论的那样表示我的数据会有问题?ie:为每个单词指定一个唯一的数值简短的回答是因为你的目标是聚类,它会发现那些在距离上相似的用户。距离对于你如何使用它来说毫无意义。换句话说,您最初的构造意味着这些特征是名义上的,但大多数聚类方法(如K-means)都会隐式地假设数据在一条线上。再看看您的答案,为什么像我所讨论的那样表示我的数据会有问题?ie:为每个单词指定一个唯一的数值简短的回答是因为你的目标是聚类,它会发现那些在距离上相似的用户。距离对于你如何使用它来说毫无意义。换句话说,您的原始构造意味着这些特征是名义上的,但是大多数聚类方法(如K-means)都会隐式地假设数据在一个特定的位置上。