K表示使用apache spark集群ml库
K means clustering ml library using apache spark
我正在尝试使用 2.0.2 中的 apache spark ml 版本实现 k 均值集群。找到聚类中心后,面临如何识别数据属于哪个聚类点的问题。请帮助我.. 在此先感谢。请找到我的代码:
val tokenFrameprocess = TokenizerProcessor.process("value", "tokenized")
val stopwordRemover = StopWordsProcessor.process("tokenized", "stopwords")
val stemmingProcess = StemmingProcessor.process("value", "stemmed")
val HashingProcess = HashingTFProcessor.process("stopwords" ,"features")
val pipeline = new Pipeline().setStages(Array(tokenFrameprocess,stopwordRemover,stemmingProcess,HashingProcess))
val finalFrameProcess = pipeline.fit(df)
val finalFramedata = finalFrameProcess.transform(df);
val kmeans = new KMeans().setK(4).setSeed(1L)
val model = kmeans.fit(finalFramedata)
val WSSSE = model.computeCost(finalFramedata)
// Shows the result.
println("Cluster Centers: ")
model.clusterCenters.foreach(println)
您必须设置用于在实例化 Kmeans 时进行预测的特征列,如下例所示:
val kmeans = new KMeans().setK(4).setSeed(1L).setFeaturesCol("features").setPredictionCol("prediction")
一旦你在 kmeans 上调用 .fit(),它 returns 一个 Transformer。在您的示例中,变量 "model" 是一个转换器。您可以调用 .transform() 以获得对给定数据的所需预测。例如,下面的行将为您提供带有预测列的数据框。
val model = kmeans.fit(finalFramedata)
val transformedDF = model.transform(finalFramedata)
transformedDF.show(false)
预测列表示聚类点。如果您将 k 值设为 3,则预测列将具有类似 0、1、2 的值。
我正在尝试使用 2.0.2 中的 apache spark ml 版本实现 k 均值集群。找到聚类中心后,面临如何识别数据属于哪个聚类点的问题。请帮助我.. 在此先感谢。请找到我的代码:
val tokenFrameprocess = TokenizerProcessor.process("value", "tokenized")
val stopwordRemover = StopWordsProcessor.process("tokenized", "stopwords")
val stemmingProcess = StemmingProcessor.process("value", "stemmed")
val HashingProcess = HashingTFProcessor.process("stopwords" ,"features")
val pipeline = new Pipeline().setStages(Array(tokenFrameprocess,stopwordRemover,stemmingProcess,HashingProcess))
val finalFrameProcess = pipeline.fit(df)
val finalFramedata = finalFrameProcess.transform(df);
val kmeans = new KMeans().setK(4).setSeed(1L)
val model = kmeans.fit(finalFramedata)
val WSSSE = model.computeCost(finalFramedata)
// Shows the result.
println("Cluster Centers: ")
model.clusterCenters.foreach(println)
您必须设置用于在实例化 Kmeans 时进行预测的特征列,如下例所示:
val kmeans = new KMeans().setK(4).setSeed(1L).setFeaturesCol("features").setPredictionCol("prediction")
一旦你在 kmeans 上调用 .fit(),它 returns 一个 Transformer。在您的示例中,变量 "model" 是一个转换器。您可以调用 .transform() 以获得对给定数据的所需预测。例如,下面的行将为您提供带有预测列的数据框。
val model = kmeans.fit(finalFramedata)
val transformedDF = model.transform(finalFramedata)
transformedDF.show(false)
预测列表示聚类点。如果您将 k 值设为 3,则预测列将具有类似 0、1、2 的值。