클러스터 센터와 관련된 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