Apache spark K表示使用ApacheSpark对ml库进行集群

Apache spark K表示使用ApacheSpark对ml库进行集群,apache-spark,k-means,Apache Spark,K Means,我试图在2.0.2中使用ApacheSparkML版本实现k均值集群。在找到集群中心后,面临如何识别数据属于哪个集群点的问题。请帮帮我。。提前谢谢。请查找我的代码: val tokenFrameprocess=TokenizerProcessor.process(“值”、“标记化”) 在实例化Kmeans时,必须设置用于预测的feature列,如以下示例所示: val kmeans = new KMeans().setK(4).setSeed(1L).setFeaturesCol("featur

我试图在2.0.2中使用ApacheSparkML版本实现k均值集群。在找到集群中心后,面临如何识别数据属于哪个集群点的问题。请帮帮我。。提前谢谢。请查找我的代码:

val tokenFrameprocess=TokenizerProcessor.process(“值”、“标记化”)


在实例化Kmeans时,必须设置用于预测的feature列,如以下示例所示:

val kmeans = new KMeans().setK(4).setSeed(1L).setFeaturesCol("features").setPredictionCol("prediction")
在kmeans上调用.fit()后,它将返回一个。在您的示例中,变量“model”是一个转换器。您可以调用.transform()来获得给定数据的所需预测。例如,下面的行将为您提供带有预测列的数据帧

val model = kmeans.fit(finalFramedata)
val transformedDF = model.transform(finalFramedata)
transformedDF.show(false)

预测列表示聚类点。如果将k值设为3,则预测列的值将类似于0,1,2

@rathika回答您的问题“预测列是否表示群集点?我给出的k值为3,预测列的值为0,1,2。”是的。预测列值表示属于特定数据点且以“0”开头的聚类中心。因此,如果您提供了3个群集中心,则预测列中只有三个值,即0,1,2。
val model = kmeans.fit(finalFramedata)
val transformedDF = model.transform(finalFramedata)
transformedDF.show(false)