2017-01-24 18 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