クラスタセンターに関連付けられているIDは何ですか。 model.transform(dataset)
は予測されたクラスタIDをデータポイントに割り当て、model.clusterCenters.foreach(println)
はこれらのクラスタセンターを印刷しますが、クラスタセンターをIDに関連付ける方法はわかりません。 printlnの順序はIDでソートされているように私には思われないSpark 2.0 - クラスタセンターに関連付けられたクラスタIDを取得する方法
|I.D |cluster center |
==========================
|0 |[0.0,...,0.3] |
|2 |[1.0,...,1.3] |
|1 |[2.0,...,1.3] |
|3 |[3.0,...,1.3] |
:
import org.apache.spark.ml.clustering.KMeans
// Loads data.
val dataset = spark.read.format("libsvm").load("data/mllib/sample_kmeans_data.txt")
// Trains a k-means model.
val kmeans = new KMeans().setK(2).setSeed(1L)
val model = kmeans.fit(dataset)
val prediction = model.transform(dataset)
// Shows the result.
println("Cluster Centers: ")
model.clusterCenters.foreach(println)
は理想的には、私のような出力をしたいです。私はそれにtransform()
にDFへmodel.clusterCenters
を変換しようとしたが、私はあなたがそれをCLUSTER_IDとCluster_centerを書き込みますデータを保存したらArray[org.apache.spark.ml.linalg.Vector]
非常に簡単です!どうもありがとう! –
@BéatriceMoissinac、私たちは問題に直面し、ソースコードを調べて見つけました。 – Achyuth