【问题标题】:Learning clustering criteria from clusters specified by humans从人类指定的集群中学习集群标准
【发布时间】:2017-11-29 23:29:10
【问题描述】:

在我的公司,我们每天都有数据流,人工操作员会手动将数据聚集成小组,每组包含 4 到 10 个条目。 我想利用机器学习向操作员建议集群,以使他们的工作更轻松。

我有一个包含大约 700 个条目和 120 个维度的数据集,这些数据集分为大约 200 个组。数据集是分类特征和有序特征的混合体,大致分为两半。

作为一种有监督的聚类问题,有没有从已知聚类中学习距离度量或规则的方法?我目前没有他们遵循的规则来对数据进行聚类。了解他们遵循的一些规则会有多大帮助?我可以使用其他任何技术来使这个问题更容易处理吗?

我正在使用 Python 和 Pandas 库来处理数据。

提前致谢!

【问题讨论】:

    标签: python machine-learning cluster-analysis feature-extraction data-science


    【解决方案1】:

    我认为您描述的是分类问题(“监督聚类”)而不是聚类。

    似乎每个组可以有 4-10 行与之关联。您的运营商提供了样品,请确认。如果是这样,这就是你的训练集。

    操作员手动将数据聚类成小组,每组 4 到 10 个条目

    你有 700 行 120 列,其中一半是分类的:

    ...大约 700 个条目和 120 个维度的数据集 聚集成大约200个组。数据集是分类的混合 和序数特征,大致分成两半。

    如果您的每组限制为 4-10 个项目,(类/集群?)AFIK,则常规分类算法将无法运行 OOTB。 4-10 人的组是否彼此相似,并且这个大小不是基于数据?
    例如:

    • 每一行都是一个客户。
    • 您的操作员正在通过 DMA 对它们进行分段。 (120 列)
    • 10行的限制是因为agent只能处理4-10行,但实际上组更大,是手动划分的。

    如果是这样,您可以进行分类(例如随机森林),然后将分类后的组划分为易于消化的集合。 (您可以运行另一层分类来划分)。

    有没有学习距离度量的方法

    您可以使用训练集并计算组中心和平均距离。 像这样的:

    import numpy as np
    import pprint
    pp = pprint.PrettyPrinter(indent=4)
    
    # A sample Group - 3 members - with categorical indicators
    Group1=np.array([[1,3,4,5,3,3,1,1,1],[4,3,3,1,3,3,0,1,0],[4,3,3,1,3,3,0,1,0]])
    mu=np.mean(Group1,axis=0)
    print("Multi dimentional group center: ")
    pp.pprint(mu)
    print("Multi dimentional average distance from center: ")
    pp.pprint(
        np.mean(
            [np.linalg.norm(mu-point) for point in Group1]
        ))
    

    了解他们遵循的一些规则会有多大帮助?

    根据规则的类型,如果您知道它们,您可以创建一个决策树并完全跳过 ML。

    我可以使用任何其他技术来解决这个问题吗?

    如果组的大小是自然发生的而不是限制,您可以从分类开始。

    【讨论】:

      猜你喜欢
      • 2014-03-23
      • 1970-01-01
      • 1970-01-01
      • 2019-11-30
      • 2019-11-21
      • 2019-05-13
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      相关资源
      最近更新 更多