A K-means model is a set of cluster centers. We abstract the K-means model with the KMeansModel
trait with methods to map an arbitrary point (viz. Vector
, WeightedVector
, or BregmanPoint
) to the nearest cluster center and to compute the cost/distance to that center.
Copy package com.massivedatascience.clusterer
trait KMeansModel {
val pointOps: BregmanPointOps
def centers: IndexedSeq[BregmanCenter]
def predict(point: Vector): Int
def predictClusterAndDistance(point: Vector): (Int, Double)
def predict(points: RDD[Vector]): RDD[Int]
def predict(points: JavaRDD[Vector]): JavaRDD[java.lang.Integer]
def computeCost(data: RDD[Vector]): Double
def predictWeighted(point: WeightedVector): Int
def predictClusterAndDistanceWeighted(point: WeightedVector): (Int, Double)
def predictWeighted(points: RDD[WeightedVector]): RDD[Int]
def computeCostWeighted(data: RDD[WeightedVector]): Double
def predictBregman(point: BregmanPoint): Int
def predictClusterAndDistanceBregman(point: BregmanPoint): (Int, Double)
def predictBregman(points: RDD[BregmanPoint]): RDD[Int]
def computeCostBregman(data: RDD[BregmanPoint): Double
}