【问题标题】:Clustering in PythonPython中的聚类
【发布时间】: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,但我不知道如何使用我的集群信息。

有人可以帮我吗?

另外:如果我有更多列或更多集群,解决方案是否仍然有效?

编辑:我的原始数据集只有列。集群知道,但不在数据集中。工作就是将此集群信息准确地应用于数据集。我不知道该怎么做。

【问题讨论】:

    标签: python machine-learning jupyter-notebook artificial-intelligence cluster-analysis


    【解决方案1】:

    您可以尝试以下方法:

    1. 运行 K 均值,并使用 Elbow 方法或轮廓图找到最佳的 k 数。

    2. 使用集群标签作为一个类。 例如如果 4 是集群的最佳数量,则 class=0,1,2,3(这将是集群标签)

    3. 将类与原始数据集合并,并将其视为监督学习问题

    4. 尝试在训练测试拆分后运行任何分类模型。

    5. 查看分类报告以检查模型性能。

    PS

    • 尽量使用归一化的数据,因为许多聚类算法对异常值很敏感。

    • 请查看该类是否在某种程度上均匀分布,例如 1000,800,1150,890 而不是 1500,80,150,..等,因为它会导致分类器的数据不平衡。

    【讨论】:

    • 我的原始数据集只有列。集群知道,但不在数据集中。工作就是将此集群信息准确地应用于数据集。
    猜你喜欢
    • 2017-08-28
    • 1970-01-01
    • 2018-01-16
    • 2018-09-05
    • 2015-01-24
    • 2016-02-11
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多