聚类实现异构组
Clustering to achieve heterogeneous groups
我想根据分类变量(可以是低、中或高)对 100 个用户进行分组。组大小应为 3。假设用户分布均匀,我想获得组内的最大异质性。我想知道我是否可以使用一些聚类算法根据差异进行分组?有什么建议吗?
我认为您不需要聚类算法来根据分类变量对数据进行分组。
根据你的问题,我认为这应该可行。
# Code
from sklearn.model_selection import train_test_split
group1, 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
确保为给定的 categorical value
.
保持最大的异质性
# Sample output
print(data)
val1 val2 lab
0 1 1 L
1 2 2 L
2 3 3 L
3 4 4 M
4 5 5 M
5 6 6 M
6 7 7 H
7 8 8 H
8 9 9 H
print(group1)
val1 val2 lab
4 5 5 M
1 2 2 L
6 7 7 H
print(group2)
val1 val2 lab
8 9 9 H
2 3 3 L
3 4 4 M
print(group3)
val1 val2 lab
0 1 1 L
7 8 8 H
5 6 6 M
我想根据分类变量(可以是低、中或高)对 100 个用户进行分组。组大小应为 3。假设用户分布均匀,我想获得组内的最大异质性。我想知道我是否可以使用一些聚类算法根据差异进行分组?有什么建议吗?
我认为您不需要聚类算法来根据分类变量对数据进行分组。
根据你的问题,我认为这应该可行。
# Code
from sklearn.model_selection import train_test_split
group1, 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
确保为给定的 categorical value
.
# Sample output
print(data)
val1 val2 lab
0 1 1 L
1 2 2 L
2 3 3 L
3 4 4 M
4 5 5 M
5 6 6 M
6 7 7 H
7 8 8 H
8 9 9 H
print(group1)
val1 val2 lab
4 5 5 M
1 2 2 L
6 7 7 H
print(group2)
val1 val2 lab
8 9 9 H
2 3 3 L
3 4 4 M
print(group3)
val1 val2 lab
0 1 1 L
7 8 8 H
5 6 6 M