2017-01-24 17 views
0

我正在测试Vertica中的机器学习工具。我知道KMEANS是如何工作的,因为它只是将数据分配到群集中。但是我不明白APPLY_KMEANS如何处理新数据。 在我看来,它更像是一种分类方法。由于它对现有集群中的新数据进行分类。那么使用什么算法(K近邻)?从文档中不太清楚。APPLY_KMEANS如何在Vertica中工作

回答

1

ķ -means是聚类算法(未分类!),该迭代2步骤:

  • Assignement步骤:分配每个点的质心
  • 更新步骤:更新质心坐标

当你建立你的k-me ans模型,你首先初始化质心(不同的策略,可以是随机初始化),然后迭代直到你的聚类正常(你的错误低于给定的阈值)。

什么定义你的模型实际上是你的质心。

使用APPLY_KMEANS时,您将使用查询中的数据和模型中的质心运行分配步骤。然后根据它们相对于质心的距离将点分配给聚类。

希望它可以帮助 pltrdy


注意有关群集VS分类:
我们可以将其误以为集群是一种分类。尽管如此,分类只能参考supervised learning,而群集对应于unsupervised learning。因此,不要这样做:)

+0

你的方式,似乎APPLY_KMEANS是一个分类,因为它只是做分配的一步。所以K-means基本上是针对APPLY_KMEANS的培训。当使用K-means时,它本身比它是一个无监督聚类算法。将APPLY_KMEANS与新数据一起使用时,质心坐标不变,是否正确?这会使它成为一种分类算法,不是吗? – valenzio

+0

它确实有道理。 k-means是一种不属于分类的聚类算法。不过,“应用kmeans”实际上是另一种使用k-means模型质心对数据进行分类的算法。因此,可以看作是多标签分类算法。我仍然说“可以看到”,因为我觉得这个模棱两可,所以它不应该显示为“应用kmeans =分类”,因为它会导致误导。但你明白了。 – pltrdy