machine-learning - 聚类实现异构组

标签 machine-learning scikit-learn cluster-analysis

我想根据分类变量(可以是低、中或高)对 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'])

分层确保给定分类值保持最大异质性。

# 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

train_test_split() Documentation

关于machine-learning - 聚类实现异构组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56283330/

相关文章:

machine-learning - Google Cloud AutoML 中的身份验证问题

python - 获取类型错误 : '(slice(None, None, None), 0)' is an invalid key

python - 排序后的数据未绘制在正确的数据点中

python - sklearn 中的 2D KDE 带宽与 scipy 中的带宽之间的关系

matrix - 排列矩阵的行和列以进行聚类

regex - 在python中将相似的字符串分组为单个组

machine-learning - 开放评分 + PMML

machine-learning - 在 Accord.Net 中训练神经网络后测试性能不一致/不同/错误

python - '值错误: could not convert string to float' in python sklearn

r - 如何聚类点和绘图