我有一组来自单位间隔的数据点(即具有数值的一维数据集)。我在网上收到了一些额外的数据点,而且一些数据点的值可能会动态变化。我正在寻找一种可以有效处理这些问题的理想聚类算法。
我知道顺序 k-means 聚类可以处理新实例的添加,我想只需稍加修改,它就可以处理动态实例值(即首先从相应的集群中获取修改后的实例,然后更新集群的平均值,最后给出修改后的实例作为算法的输入,就像添加一个看不见的实例一样)。
我对使用 k-means 算法的担忧是需要提供集群的数量作为输入。我知道他们在时间和空间复杂度上击败了其他聚类算法(GA、MST、分层方法等)。老实说,我不确定,但也许我可以使用上述算法之一。即使我的数据集比较大,单一维度的存在也让我感到好奇。
更具体地说,我的一个典型测试用例将包含大约 10K-200K 的一维数据点。我想在一秒钟内完成聚类。假设值点的动态变化是平滑的,即相对较小。因此,能够使用现有的解决方案(即,当值改变或添加新的解决方案时能够继续对现有解决方案进行聚类)是非常优选的。
总而言之:
你能想到一种算法,它可以在计算效率和集群的准确性之间提供一个最佳点。上面定义的问题?
k-means 算法是否有一些很好的启发式方法可以预先自动计算 K 的值?