2016-02-16 121 views

回答

0

據我所知,不幸的是沒有辦法爲Apache Spark的K-Means的mllib實現提供自定義的距離函數。

如果你願意遠離mllib實現,有幾個選項可供選擇。一個是K-Means算法的Apache Math Commons' implementation,它允許您提供自己的距離函數作爲構造函數參數之一。

存在一個名爲Nak的斯卡拉本地庫,它提供了它自己的implementation。 Nak的實現還允許您提供自己的距離函數,並且還可以在任何類型的參數T上進行參數化,因此如果廣泛使用Spark,可能會爲您在翻譯類型時來回避免一些不便。不幸的是,Nak似乎遇到了一些維護問題,因爲使用它會將你鎖定到Scala Breeze的一個相當老的版本(0.9 vs 0.12),這對你來說可能有問題,也可能不是問題。