在字符串数据中查找集群

Finding clusters in string data

我调查了人们喜欢吃什么水果(见下面的数据),我想看看数据中是否有聚类。经常喜欢香蕉的人也喜欢罗甘莓吗?有 23 种不同类型的水果和 400 位受访者。

我想在Python和Pandas中进行分析,因为这是我最了解的。如果这是一个明智的选择,是否有解决此类问题的通用方法(似乎有很多相互矛盾的建议)?有人有推荐的方法吗?

Participant | Bananas |  Apples | Kumquats | Loganberries
------------|-------------------------------------------
1           |  Yes   |   No    |   Yes    |    Yes
2           |  Yes   |   Yes   |   No     |    Yes
3           |  Yes   |   No    |   Yes    |    No
4           |  No    |   No    |   No     |    Yes
5           |  Yes   |   No    |   Yes    |    Yes
6           |  Yes   |   Yes   |   No     |    No

使用corr得到相关矩阵:

out = df.set_index('Participant').replace({'Yes': 1, 'No': 0}).corr()
print(out)

# Output
               Bananas    Apples  Kumquats  Loganberries
Bananas       1.000000  0.316228  0.447214     -0.316228
Apples        0.316228  1.000000 -0.707107     -0.250000
Kumquats      0.447214 -0.707107  1.000000      0.000000
Loganberries -0.316228 -0.250000  0.000000      1.000000