我想根据一个分类变量(可以是低、中、高)将100个用户分组,每组的大小应为3。我希望在假设用户分布均匀的情况下,组内实现最大异质性。我想知道是否可以使用某种聚类算法基于异质性进行分组?有什么建议吗?
回答:
我认为您不需要使用聚类算法来根据分类变量对数据进行分组。
根据您的问题,我认为这样做应该可以。
# Codefrom sklearn.model_selection import train_test_splitgroup1, group23 = train_test_split(data, test_size=2/3., stratify=data['lab'])group2, group3 = train_test_split(group23, test_size=1/2., stratify=group23['lab'])
Stratify
确保在给定的分类值
下保持最大异质性。
# Sample outputprint(data) val1 val2 lab0 1 1 L1 2 2 L2 3 3 L3 4 4 M4 5 5 M5 6 6 M6 7 7 H7 8 8 H8 9 9 Hprint(group1) val1 val2 lab4 5 5 M1 2 2 L6 7 7 Hprint(group2) val1 val2 lab8 9 9 H2 3 3 L3 4 4 Mprint(group3) val1 val2 lab0 1 1 L7 8 8 H5 6 6 M