如何在 r 中对充满字符串变量的数据集进行 K-means 聚类
Posted
技术标签:
【中文标题】如何在 r 中对充满字符串变量的数据集进行 K-means 聚类【英文标题】:How to do K-means clustering on a dataset full of string variables in r 【发布时间】:2018-11-09 22:02:39 【问题描述】:现在我有一个充满字符串变量的数据集,但我想在上面做一个集群项目。在我将as.factor()
应用于所有变量后,nbclust()
仍然无法工作,我该怎么办?
【问题讨论】:
【参考方案1】:K-means 通常使用欧几里得距离(参见例如https://stats.stackexchange.com/questions/81481/why-does-k-means-clustering-algorithm-use-only-euclidean-distance-metric),因此您不能直接“在单词上进行聚类”。
如果您想根据单词对观察结果进行聚类,则必须生成数字(例如k-means for text clustering)例如,如果您尝试对客户资料进行聚类以进行细分,您可以计算代表他们个人资料中兴趣的单词,然后每个兴趣有一列,并计算该单词或 n-gram 在配置文件中出现的次数,然后在该数字矩阵上进行聚类。或者在聚类文档中,生成一个术语-文档矩阵(或文档-术语矩阵,或类似k-means clustering on term-term co-ocurrence matrix 的术语-术语出现)并使用这些数字进行聚类。
【讨论】:
【参考方案2】:不要对此类数据使用 k-means。
您无法仅通过“反复试验”获得有意义的统计分析。因为有很多方法可以获得看起来不错但完全没有根据的结果。
在使用任何这些方法之前,您需要了解它的作用。在 k-means 的情况下,它最小化了最小二乘,这显然只对 连续 变量有意义。他们还需要表现出线性。如果您有多个变量,它们也需要具有相同的量级。
这不是黑盒方法。如果你用得不好,你只会把垃圾扔出去。
【讨论】:
以上是关于如何在 r 中对充满字符串变量的数据集进行 K-means 聚类的主要内容,如果未能解决你的问题,请参考以下文章