如何在 Python 中对包含 TRUE/FALSE 值的数据集执行聚类?

Posted

技术标签:

【中文标题】如何在 Python 中对包含 TRUE/FALSE 值的数据集执行聚类?【英文标题】:How to perform clustering on a dataset containing TRUE/FALSE values in Python? 【发布时间】:2021-01-12 13:23:21 【问题描述】:

我的数据集包含描述某些角色能力的列,其中填充了True/False 值。没有空值。我的最终目标是制作具有相似能力的角色组。问题来了:

    我应该将True/False 值更改为10 吗?还是没有必要? 我应该使用什么聚类模型? KMeans 可以吗? 如何解释结果(输出)?我可以想象一下吗?

问题是我总是看到人们在数字数据集上执行聚类,你可以将其可视化,而且看起来更容易做到。对于True/False,我什至不知道如何处理它。

谢谢。

【问题讨论】:

【参考方案1】:
    一般情况下无需将 True/False 更改为 0/1。仅当您想应用无法处理布尔输入的特定聚类算法(如 K-means)时,才需要这样做。 K-means 不是首选选项。 K-means 需要连续特征作为输入,因为它基于计算距离,就像许多聚类算法一样。所以没有布尔输入。尽管二进制输入 (0-1) 有效,但它并不能以非常有意义的方式计算距离(许多点之间的距离相同)。如果只有 0-1 数据,我不会使用聚类,但建议将数据制成表格并查看哪些单元格经常出现。如果您有一个大型数据集,您可能会使用 Apriori 算法来查找频繁出现的单元格。 通常,聚类算法通常会为每个观测返回一个聚类编号。在低维中,此数字经常用于为散点图中的观察值赋予颜色。但是,在您使用布尔值的情况下,我只会列出最常出现的单元格。

【讨论】:

以上是关于如何在 Python 中对包含 TRUE/FALSE 值的数据集执行聚类?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中对每列的唯一值求和? [复制]

你将如何在 python 的数组中对这三个区域进行分组/聚类?

如何在python中对存储xy坐标的二维数组进行排序?

如何在python中对两列进行透视和排序?

如何在 Python 中对大量字典进行排序而不加载到内存中

在 Pandas 中对包含 Python `range` 或类似列表的列执行合并