【问题标题】:clustering in python without number of clusters or thresholdpython中的聚类没有聚类数或阈值
【发布时间】:2018-09-05 08:29:50
【问题描述】:

是否可以在不提供数据以外的任何输入的情况下进行聚类?聚类方法/算法应该从数据中决定数据可以划分多少个逻辑组,即使不需要我输入构建聚类的阈值欧几里德距离,这也需要从数据中学习.

您能否建议我最接近我的问题的解决方案?

【问题讨论】:

  • 有一些聚类算法可以为你决定聚类的数量(例如遗传聚类)。但是,如果您是初学者,则可以从层次聚类开始,它将数据聚类到嵌套聚类中。之后,您可以修剪集群以仅保留有意义的大集群。

标签: python cluster-analysis


【解决方案1】:

聚类是一种探索性技术。

这意味着它必须始终能够根据用户的需要产生不同的结果。 拥有许多参数是一项功能。这意味着该方法可以轻松适应非常不同的数据和用户偏好。

永远不会有一种普遍有用的无参数技术。充其量,一些参数将具有默认值或启发式(例如欧几里得距离,例如在聚类之前标准化输入,例如选择 k 的间隙统计),这可能会在 80 中给出合理的第一次尝试 % 的案例。但在第一次尝试之后,您需要了解数据,并尝试其他参数以了解有关数据的更多信息。

声称“无参数”的方法通常只是设置了一些隐藏参数,因此它适用于演示它的少数玩具示例。

【讨论】:

    【解决方案2】:

    为什么不对您的算法进行编码以创建大小从 1 到 n 的集群列表(可以在配置文件中定义,这样您就可以避免硬编码,只需修复一次)。

    完成后,计算大小为 1 到 n 的集群。选择给您最小均方误差的值。

    这需要您的机器做一些额外的工作来确定数据可以划分的逻辑组的最佳数量(范围在 1 和 n 之间)。

    【讨论】:

      猜你喜欢
      • 2017-08-19
      • 2014-06-08
      • 1970-01-01
      • 2014-07-02
      • 2014-08-27
      • 2017-08-28
      • 1970-01-01
      • 2019-08-23
      • 1970-01-01
      相关资源
      最近更新 更多