Python中的聚类
Posted
技术标签:
【中文标题】Python中的聚类【英文标题】:Clustering in Python 【发布时间】:2021-07-25 13:27:15 【问题描述】:我有一个包含数千行的数据集。每行是一个人,我需要将其插入 4 个集群。我知道有很多方法可以做到这一点并找到最好的集群,但在这种情况下,我知道每个集群的特征。通常,使用 ML,使用 IA 找到集群。
例如,假设我有 4 列要查看:money_spending、salary、segment、days_to_buy。另外,我有:
集群 1 -> money_spending:350-700 工资:700-1000 细分市场:农场 days_to_buy: 12
第 2 组 -> money_spending:500-950 工资:1000-1300 细分:建筑材料 days_to_buy: 18
第 3 组 -> money_spending:900-1400 工资:1200-2000 细分市场:超市 days_to_buy: 20
第 4 组 -> money_spending:250-600 工资:550-1000 细分市场:农场 days_to_buy: 30
将此应用于我的数据集的最佳方法是什么?我会使用 k-nearest,但我不知道如何使用我的集群信息。
有人可以帮我吗?
另外:如果我有更多列或更多集群,解决方案是否仍然有效?
编辑:我的原始数据集只有列。集群知道,但不在数据集中。工作就是将此集群信息准确地应用于数据集。我不知道该怎么做。
【问题讨论】:
【参考方案1】:您可以尝试以下方法:
运行 K 均值,并使用 Elbow 方法或轮廓图找到最佳的 k 数。
使用集群标签作为一个类。 例如如果 4 是集群的最佳数量,则 class=0,1,2,3(这将是集群标签)
将类与原始数据集合并,并将其视为监督学习问题
尝试在训练测试拆分后运行任何分类模型。
查看分类报告以检查模型性能。
PS
尽量使用归一化的数据,因为许多聚类算法对异常值很敏感。
请查看该类是否在某种程度上均匀分布,例如 1000,800,1150,890 而不是 1500,80,150,..等,因为它会导致分类器的数据不平衡。
【讨论】:
我的原始数据集只有列。集群知道,但不在数据集中。工作就是将此集群信息准确地应用于数据集。以上是关于Python中的聚类的主要内容,如果未能解决你的问题,请参考以下文章