2016-06-07 114 views
0

我试图做一些与此问题非常相似的事情: How to initialize cluster centers for K-means in Spark MLlib? 但是,我并不完全了解该解决方案。当我尝试加入更多的重心,我得到一个错误:在Spark中初始化群集中心

Exception in thread "main" java.lang.IllegalArgumentException: requirement failed: mismatched cluster count

我用

val initialModel = new KMeansModel(
    Array("[0.6, 0.6, 5.0]", "[8.0, 8.0, 1.0]", "[11, 9.0, 7.0]").map(Vectors.parse(_)) 
) 
val model = new KMeans() 
    .setInitialModel(initialModel) 
    .setK(3) 
    .run(data) 
+0

的可能的复制[如何初始化在星火MLlib K-均值聚类中心?(http://stackoverflow.com/questions/35426240/how-to-initialize-cluster-centers-for-k -means功能于火花mllib) – gsamaras

回答

0

默认情况下,KMEANS集K为2。这是因为设置初始前设置K容易模型(KMeansModel.k和KMeans.k必须重合)。

val initialModel = new KMeansModel(
    Array("[0.6, 0.6, 5.0]", "[8.0, 8.0, 1.0]", "[11, 9.0, 7.0]").map(Vectors.parse(_)) 
) 

val model = new KMeans() 
    .setK(3) 
    .setInitialModel(initialModel) 
    .run(data)