【问题标题】:How to run clustering with categorical variables如何使用分类变量运行聚类
【发布时间】:2019-02-23 08:30:55
【问题描述】:

我正在尝试仅使用分类变量运行聚类。由于 Kmeans 仅适用于 Numeric 数据,是否有任何可用的聚类技术?

我有 30 个变量,例如邮政编码、年龄组、爱好、首选渠道、婚姻状况、信用风险(低、中、高)、教育状况等。如果我将这些变量中的每一个都转换为虚拟变量并运行 kmeans,我将有 90 列(30*3 - 假设每个变量有 4 个因子)。这是正确的吗?

【问题讨论】:

  • 当前措辞的问题是关于算法细节而不是编程,所以这里是题外话。你应该把这个发到stats.stackexchange.com
  • 附带说明一下,您是否尝试过对分类数据进行编码,然后应用通常的聚类技术?也许这些可以在您的数据上表现良好?
  • 看看 k-modes 算法或 Gower 距离矩阵。
  • @VivekKumar 肯定会在那里发帖
  • @user2974951 在 kmodes 中,如何确定可用集群的数量?你能解释一下如何计算高尔距离并将其用于聚类

标签: python python-3.x machine-learning cluster-analysis data-science


【解决方案1】:

基于重叠的相似性度量k-modes)、基于上下文的相似性度量以及更多在论文Categorical Data Clustering 中列出将是一个好的开始。由于您已经具备 k-means 的经验和知识,因此 k-modes 将很容易开始。

【讨论】:

  • 谢谢,有什么方法可以确定Kmodes中的簇数
  • 您是否有一个可以用作唯一标签来确定集群数量的标签?如果不是全部基于领域知识,或者您指定随机数量的集群以...
  • 其他方法是在分类主成分分析中使用层次聚类,这可以发现/提供有关您需要多少聚类的信息(这种方法也适用于文本数据)。希望对您有所帮助。
【解决方案2】:

或者,您可以使用多项分布的混合。

可以使用信息标准(例如,BIC、ICL...)选择集群的数量。

如果您可以使用 R,请使用实现此方法的 R 包 VarSelLCM。

【讨论】:

    猜你喜欢
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 2020-02-13
    • 2021-03-19
    相关资源
    最近更新 更多