0
我要求重寫Kmeans的火花框架距離評估算法。我不想實現歐幾里得距離計算方法,但想定製它。我可以如何覆蓋它?如何覆蓋Kmeans算法的距離評估方法
我要求重寫Kmeans的火花框架距離評估算法。我不想實現歐幾里得距離計算方法,但想定製它。我可以如何覆蓋它?如何覆蓋Kmeans算法的距離評估方法
據我所知,不幸的是沒有辦法爲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),這對你來說可能有問題,也可能不是問題。