在 python 中聚类,没有聚类数或阈值
clustering in python without number of clusters or threshold
是否可以在不提供除数据之外的任何输入的情况下进行聚类?聚类method/algorithm应该根据数据来决定数据可以划分多少个逻辑组,即使它不需要我输入构建聚类的阈值欧几里德距离,这也需要学习数据。
你能建议我最接近我的问题的解决方案吗?
为什么不对您的算法进行编码以创建大小从 1 到 n 的集群列表(可以在配置文件中定义,这样您就可以避免硬编码,只需修复一次)。
完成后,计算大小为 1 到 n 的簇。选择最小均方误差的值。
这将需要您的机器进行一些额外的工作来确定可以划分数据的最佳逻辑组数(介于 1 和 n 之间)。
聚类是一种探索性技术。
这意味着它必须始终能够根据用户的需要产生不同的结果。 有很多参数是一个特点。这意味着该方法可以轻松适应非常不同的数据和用户偏好。
永远不会有普遍有用的 parameter-free 技术。充其量,某些参数将具有默认值或启发式方法(例如欧几里德距离,例如在聚类之前标准化输入,例如选择 k 的间隙统计)可能会给出合理的 first try 在 80% 的情况下。但在第一次尝试之后,您需要了解数据,并尝试其他参数以了解有关数据的更多信息。
自称是 "parameter free" 的方法通常只设置了一些隐藏参数,因此它适用于它所演示的几个玩具示例。
是否可以在不提供除数据之外的任何输入的情况下进行聚类?聚类method/algorithm应该根据数据来决定数据可以划分多少个逻辑组,即使它不需要我输入构建聚类的阈值欧几里德距离,这也需要学习数据。
你能建议我最接近我的问题的解决方案吗?
为什么不对您的算法进行编码以创建大小从 1 到 n 的集群列表(可以在配置文件中定义,这样您就可以避免硬编码,只需修复一次)。
完成后,计算大小为 1 到 n 的簇。选择最小均方误差的值。
这将需要您的机器进行一些额外的工作来确定可以划分数据的最佳逻辑组数(介于 1 和 n 之间)。
聚类是一种探索性技术。
这意味着它必须始终能够根据用户的需要产生不同的结果。 有很多参数是一个特点。这意味着该方法可以轻松适应非常不同的数据和用户偏好。
永远不会有普遍有用的 parameter-free 技术。充其量,某些参数将具有默认值或启发式方法(例如欧几里德距离,例如在聚类之前标准化输入,例如选择 k 的间隙统计)可能会给出合理的 first try 在 80% 的情况下。但在第一次尝试之后,您需要了解数据,并尝试其他参数以了解有关数据的更多信息。
自称是 "parameter free" 的方法通常只设置了一些隐藏参数,因此它适用于它所演示的几个玩具示例。